include/test/unoapi_test.hxx |   94 +++++++++++++++++++++++++++++++++++++++++++
 test/source/unoapi_test.cxx  |   18 ++++++++
 2 files changed, 112 insertions(+)

New commits:
commit edf311d564a828f186af5a91a053837460db9f3a
Author:     Justin Luth <[email protected]>
AuthorDate: Thu Nov 27 08:34:32 2025 -0500
Commit:     Miklos Vajna <[email protected]>
CommitDate: Fri Nov 28 16:53:19 2025 +0100

    UnoApiTest: Add enum for filter names (non-intrusive backport)
    
    This is a backport of 26.2 801dc48c6f7df686574c76e8ca67ac59dd1604f8
    and 6675e7893ebe8d59ed3975b1cbd4f3673e66e746
    to simplify backporting unit tests - allowing both new and old way.
    
    Change-Id: I4dad6f77853b53b74150dab0edaf41c5ff5b4f3d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194708
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Justin Luth <[email protected]>
    Reviewed-by: Miklos Vajna <[email protected]>

diff --git a/include/test/unoapi_test.hxx b/include/test/unoapi_test.hxx
index a7b12bc10263..ab680295a60f 100644
--- a/include/test/unoapi_test.hxx
+++ b/include/test/unoapi_test.hxx
@@ -23,6 +23,96 @@
 #include <unotools/tempfile.hxx>
 #include <vcl/filter/PDFiumLibrary.hxx>
 
+enum class TestFilter
+{
+    NONE,
+    CSV,
+    DOC,
+    DOCBOOK,
+    DOCM,
+    DOCX,
+    DOCX_2007,
+    DOTX,
+    FODG,
+    FODS,
+    FODT,
+    HTML_CALC,
+    HTML_CALC_WEBQUERY,
+    HTML_IMPRESS,
+    HTML_WRITER,
+    MD,
+    MML,
+    ODB,
+    ODG,
+    ODM,
+    ODP,
+    ODS,
+    ODT,
+    OTT,
+    PDF_WRITER,
+    POTX,
+    PPT,
+    PPTM,
+    PPTX,
+    PPTX_2007,
+    RTF,
+    SVG_DRAW,
+    SVG_IMPRESS,
+    TEXT,
+    TEXT_ENCODED,
+    XHTML_CALC,
+    XHTML_DRAW,
+    XHTML_WRITER,
+    XLS,
+    XLSM,
+    XLST,
+    XLSX,
+};
+
+const std::unordered_map<TestFilter, OUString> TestFilterNames{
+    { TestFilter::CSV, u"Text - txt - csv (StarCalc)"_ustr },
+    { TestFilter::DOC, u"MS Word 97"_ustr },
+    { TestFilter::DOCBOOK, u"DocBook File"_ustr },
+    { TestFilter::DOCM, u"MS Word 2007 XML VBA"_ustr },
+    { TestFilter::DOCX, u"Office Open XML Text"_ustr },
+    { TestFilter::DOCX_2007, u"MS Word 2007 XML"_ustr },
+    { TestFilter::DOTX, u"MS Word 2007 XML Template"_ustr },
+    { TestFilter::FODG, u"OpenDocument Drawing Flat XML"_ustr },
+    { TestFilter::FODS, u"OpenDocument Spreadsheet Flat XML"_ustr },
+    { TestFilter::FODT, u"OpenDocument Text Flat XML"_ustr },
+    { TestFilter::HTML_CALC, u"HTML (StarCalc)"_ustr },
+    { TestFilter::HTML_CALC_WEBQUERY, u"calc_HTML_WebQuery"_ustr },
+    { TestFilter::HTML_IMPRESS, u"impress_html_Export"_ustr },
+    { TestFilter::HTML_WRITER, u"HTML (StarWriter)"_ustr },
+    { TestFilter::MD, u"Markdown"_ustr },
+    { TestFilter::MML, u"MathML XML (Math)"_ustr },
+    { TestFilter::ODB, u"StarOffice XML (Base)"_ustr },
+    { TestFilter::ODG, u"draw8"_ustr },
+    { TestFilter::ODM, u"writerglobal8_writer"_ustr },
+    { TestFilter::ODP, u"impress8"_ustr },
+    { TestFilter::ODS, u"calc8"_ustr },
+    { TestFilter::ODT, u"writer8"_ustr },
+    { TestFilter::OTT, u"writer8_template"_ustr },
+    { TestFilter::PDF_WRITER, u"writer_pdf_Export"_ustr },
+    { TestFilter::POTX, u"Impress Office Open XML Template"_ustr },
+    { TestFilter::PPT, u"MS PowerPoint 97"_ustr },
+    { TestFilter::PPTM, u"Impress MS PowerPoint 2007 XML VBA"_ustr },
+    { TestFilter::PPTX, u"Impress Office Open XML"_ustr },
+    { TestFilter::PPTX_2007, u"Impress MS PowerPoint 2007 XML"_ustr },
+    { TestFilter::RTF, u"Rich Text Format"_ustr },
+    { TestFilter::SVG_DRAW, u"draw_svg_Export"_ustr },
+    { TestFilter::SVG_IMPRESS, u"impress_svg_Export"_ustr },
+    { TestFilter::TEXT, u"Text"_ustr },
+    { TestFilter::TEXT_ENCODED, u"Text (encoded)"_ustr },
+    { TestFilter::XHTML_CALC, u"XHTML Calc File"_ustr },
+    { TestFilter::XHTML_DRAW, u"XHTML Draw File"_ustr },
+    { TestFilter::XHTML_WRITER, u"XHTML Writer File"_ustr },
+    { TestFilter::XLS, u"MS Excel 97"_ustr },
+    { TestFilter::XLSM, u"Calc MS Excel 2007 VBA XML"_ustr },
+    { TestFilter::XLST, u"Calc MS Excel 2007 XML Template"_ustr },
+    { TestFilter::XLSX, u"Calc Office Open XML"_ustr },
+};
+
 // basic uno api test class
 
 class OOO_DLLPUBLIC_TEST UnoApiTest : public test::BootstrapFixture, public 
unotest::MacrosTest
@@ -44,8 +134,10 @@ public:
                                const css::uno::Sequence<css::uno::Any>& 
rParams = {});
 
     void save(const OUString& rFilter, const char* pPassword = nullptr);
+    void save(TestFilter eFilter, const char* pPassword = nullptr);
     void saveWithParams(const css::uno::Sequence<css::beans::PropertyValue>& 
rParams);
     void saveAndReload(const OUString& rFilter, const char* pPassword = 
nullptr);
+    void saveAndReload(TestFilter eFilter, const char* pPassword = nullptr);
 
     std::unique_ptr<vcl::pdf::PDFiumDocument> parsePDFExport(const OString& 
rPassword = OString());
 
@@ -60,6 +152,7 @@ public:
     }
 
     void setImportFilterName(const OUString& rFilterName) { maImportFilterName 
= rFilterName; }
+    void setImportFilterName(TestFilter eFilterName) { meImportFilterName = 
eFilterName; }
 
 protected:
     // reference to document component that we are testing
@@ -83,6 +176,7 @@ private:
     OUString maFilterOptions;
 
     OUString maImportFilterOptions;
+    TestFilter meImportFilterName;
     OUString maImportFilterName;
 };
 
diff --git a/test/source/unoapi_test.cxx b/test/source/unoapi_test.cxx
index 035bf8c1f5fb..d5ac7fad00f9 100644
--- a/test/source/unoapi_test.cxx
+++ b/test/source/unoapi_test.cxx
@@ -27,6 +27,7 @@ using namespace css::uno;
 UnoApiTest::UnoApiTest(OUString path)
     : mbSkipValidation(false)
     , m_aBaseString(std::move(path))
+    , meImportFilterName(TestFilter::NONE)
 {
     maTempFile.EnableKillingFile();
 }
@@ -104,6 +105,13 @@ void UnoApiTest::loadFromURL(OUString const& rURL, const 
char* pPassword)
         aValue.Value <<= maImportFilterName;
         aFilterOptions.push_back(aValue);
     }
+    else if (meImportFilterName != TestFilter::NONE)
+    {
+        beans::PropertyValue aValue;
+        aValue.Name = "FilterName";
+        aValue.Value <<= TestFilterNames.at(meImportFilterName);
+        aFilterOptions.push_back(aValue);
+    }
 
     loadWithParams(rURL, comphelper::containerToSequence(aFilterOptions));
 
@@ -148,6 +156,11 @@ uno::Any UnoApiTest::executeMacro(const OUString& 
rScriptURL,
     return aRet;
 }
 
+void UnoApiTest::save(TestFilter eFilter, const char* pPassword)
+{
+    save(TestFilterNames.at(eFilter), pPassword);
+}
+
 void UnoApiTest::save(const OUString& rFilter, const char* pPassword)
 {
     utl::MediaDescriptor aMediaDescriptor;
@@ -201,6 +214,11 @@ void UnoApiTest::saveAndReload(const OUString& rFilter, 
const char* pPassword)
     loadFromURL(maTempFile.GetURL(), pPassword);
 }
 
+void UnoApiTest::saveAndReload(TestFilter eFilter, const char* pPassword)
+{
+    saveAndReload(TestFilterNames.at(eFilter), pPassword);
+}
+
 std::unique_ptr<vcl::pdf::PDFiumDocument> UnoApiTest::parsePDFExport(const 
OString& rPassword)
 {
     SvFileStream aFile(maTempFile.GetURL(), StreamMode::READ);

Reply via email to