diff --git a/dbaccess/CppunitTest_dbaccess_firebird_test.mk b/dbaccess/CppunitTest_dbaccess_firebird_test.mk index 9b7af21ff31b..a8d4704eb1e9 100644 --- a/dbaccess/CppunitTest_dbaccess_firebird_test.mk +++ b/dbaccess/CppunitTest_dbaccess_firebird_test.mk @@ -18,6 +18,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,dbaccess_firebird_test, \ $(eval $(call gb_CppunitTest_use_libraries,dbaccess_firebird_test, \ comphelper \ cppu \ + cppuhelper \ dbaxml \ firebird_sdbc \ sal \ diff --git a/embeddedobj/CppunitTest_embeddedobj_general.mk b/embeddedobj/CppunitTest_embeddedobj_general.mk index eb794f38548c..6c4014e2fc89 100644 --- a/embeddedobj/CppunitTest_embeddedobj_general.mk +++ b/embeddedobj/CppunitTest_embeddedobj_general.mk @@ -22,6 +22,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,embeddedobj_general, \ $(eval $(call gb_CppunitTest_use_libraries,embeddedobj_general, \ comphelper \ cppu \ + cppuhelper \ embobj \ sal \ subsequenttest \ diff --git a/include/test/unoapi_test.hxx b/include/test/unoapi_test.hxx index 307d0f1a0589..0277131e31f7 100644 --- a/include/test/unoapi_test.hxx +++ b/include/test/unoapi_test.hxx @@ -14,7 +14,9 @@ #include +#include #include +#include #include #include #include @@ -28,24 +30,32 @@ class OOO_DLLPUBLIC_TEST UnoApiTest : public test::BootstrapFixture, public unot public: UnoApiTest(OUString path); - OUString createFileURL(std::u16string_view aFileBase); - OUString loadFromURL(std::u16string_view aFileBase); - virtual void setUp() override; virtual void tearDown() override; + OUString createFileURL(std::u16string_view aFileBase); + void load(const OUString& rURL, const char* pPassword = nullptr); + OUString loadFromURL(std::u16string_view aFileBase, const char* pPassword = nullptr); + css::uno::Any executeMacro(const OUString& rScriptURL, const css::uno::Sequence& rParams = {}); void save(const OUString& rFilter, const char* pPassword = nullptr); void saveAndClose(const OUString& rFilter); - void saveAndReload(const OUString& rFilter); + void saveAndReload(const OUString& rFilter, const char* pPassword = nullptr); std::unique_ptr parsePDFExport(const OString& rPassword = OString()); void skipValidation() { mbSkipValidation = true; } void setFilterOptions(const OUString& rFilterOptions) { maFilterOptions = rFilterOptions; } + void setImportFilterOptions(const OUString& rFilterOptions) + { + maImportFilterOptions = rFilterOptions; + } + + void setImportFilterName(const OUString& rFilterName) { maImportFilterName = rFilterName; } + protected: // reference to document component that we are testing css::uno::Reference mxComponent; @@ -54,10 +64,19 @@ protected: SvMemoryStream maMemory; // Underlying memory for parsed PDF files. + rtl::Reference xInteractionHandler; + private: + void + setTestInteractionHandler(const char* pPassword, + std::vector& rFilterOptions); + bool mbSkipValidation; OUString m_aBaseString; OUString maFilterOptions; + + OUString maImportFilterOptions; + OUString maImportFilterName; }; #endif // INCLUDED_TEST_UNOAPI_TEST_HXX diff --git a/oox/CppunitTest_oox_drawingml.mk b/oox/CppunitTest_oox_drawingml.mk index 1e47063cc3b6..0ad75df13870 100644 --- a/oox/CppunitTest_oox_drawingml.mk +++ b/oox/CppunitTest_oox_drawingml.mk @@ -22,6 +22,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,oox_drawingml, \ $(eval $(call gb_CppunitTest_use_libraries,oox_drawingml, \ comphelper \ cppu \ + cppuhelper \ oox \ sal \ subsequenttest \ diff --git a/oox/CppunitTest_oox_export.mk b/oox/CppunitTest_oox_export.mk index 68d4566cefc8..b3e832f3aeb8 100644 --- a/oox/CppunitTest_oox_export.mk +++ b/oox/CppunitTest_oox_export.mk @@ -23,6 +23,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,oox_export, \ $(eval $(call gb_CppunitTest_use_libraries,oox_export, \ comphelper \ cppu \ + cppuhelper \ oox \ sal \ subsequenttest \ diff --git a/oox/CppunitTest_oox_mathml.mk b/oox/CppunitTest_oox_mathml.mk index 133e66c8444d..58d04b1ad9f9 100644 --- a/oox/CppunitTest_oox_mathml.mk +++ b/oox/CppunitTest_oox_mathml.mk @@ -22,6 +22,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,oox_mathml, \ $(eval $(call gb_CppunitTest_use_libraries,oox_mathml, \ comphelper \ cppu \ + cppuhelper \ oox \ sal \ subsequenttest \ diff --git a/oox/CppunitTest_oox_shape.mk b/oox/CppunitTest_oox_shape.mk index 65bdacc8b236..2d3638763490 100644 --- a/oox/CppunitTest_oox_shape.mk +++ b/oox/CppunitTest_oox_shape.mk @@ -22,6 +22,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,oox_shape, \ $(eval $(call gb_CppunitTest_use_libraries,oox_shape, \ comphelper \ cppu \ + cppuhelper \ oox \ sal \ subsequenttest \ diff --git a/oox/CppunitTest_oox_vml.mk b/oox/CppunitTest_oox_vml.mk index 28ccb2a9c816..902f4acc43e8 100644 --- a/oox/CppunitTest_oox_vml.mk +++ b/oox/CppunitTest_oox_vml.mk @@ -22,6 +22,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,oox_vml, \ $(eval $(call gb_CppunitTest_use_libraries,oox_vml, \ comphelper \ cppu \ + cppuhelper \ oox \ sal \ subsequenttest \ diff --git a/sc/CppunitTest_sc_functionlistobj.mk b/sc/CppunitTest_sc_functionlistobj.mk index a190b1c9acef..ff4719d77b6b 100644 --- a/sc/CppunitTest_sc_functionlistobj.mk +++ b/sc/CppunitTest_sc_functionlistobj.mk @@ -21,6 +21,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sc_functionlistobj, \ $(eval $(call gb_CppunitTest_use_libraries,sc_functionlistobj, \ cppu \ + cppuhelper \ sal \ subsequenttest \ test \ diff --git a/sc/CppunitTest_sc_pdf_export.mk b/sc/CppunitTest_sc_pdf_export.mk index 6051b170d598..ddd856b2859e 100644 --- a/sc/CppunitTest_sc_pdf_export.mk +++ b/sc/CppunitTest_sc_pdf_export.mk @@ -28,6 +28,7 @@ endif $(eval $(call gb_CppunitTest_use_libraries,sc_pdf_export, \ comphelper \ cppu \ + cppuhelper \ editeng \ sal \ sax \ diff --git a/sc/common_unoapi_tests.mk b/sc/common_unoapi_tests.mk index 2f044599b2d9..025639a4de20 100644 --- a/sc/common_unoapi_tests.mk +++ b/sc/common_unoapi_tests.mk @@ -25,6 +25,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sc_$(1), \ $(eval $(call gb_CppunitTest_use_libraries,sc_$(1), \ comphelper \ cppu \ + cppuhelper \ sal \ salhelper \ sc \ diff --git a/sd/CppunitTest_sd_filter_eppt.mk b/sd/CppunitTest_sd_filter_eppt.mk index 7e304e419d76..2a570b5dcd92 100644 --- a/sd/CppunitTest_sd_filter_eppt.mk +++ b/sd/CppunitTest_sd_filter_eppt.mk @@ -23,6 +23,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sd_filter_eppt, \ $(eval $(call gb_CppunitTest_use_libraries,sd_filter_eppt, \ comphelper \ cppu \ + cppuhelper \ sd \ sal \ subsequenttest \ diff --git a/sfx2/CppunitTest_sfx2_doc.mk b/sfx2/CppunitTest_sfx2_doc.mk index 81ddc76e55f3..f1f404d13b2e 100644 --- a/sfx2/CppunitTest_sfx2_doc.mk +++ b/sfx2/CppunitTest_sfx2_doc.mk @@ -22,6 +22,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sfx2_doc, \ $(eval $(call gb_CppunitTest_use_libraries,sfx2_doc, \ comphelper \ cppu \ + cppuhelper \ sal \ subsequenttest \ test \ diff --git a/sfx2/CppunitTest_sfx2_view.mk b/sfx2/CppunitTest_sfx2_view.mk index f6f247ee7618..70ca709fe4b6 100644 --- a/sfx2/CppunitTest_sfx2_view.mk +++ b/sfx2/CppunitTest_sfx2_view.mk @@ -22,6 +22,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sfx2_view, \ $(eval $(call gb_CppunitTest_use_libraries,sfx2_view, \ comphelper \ cppu \ + cppuhelper \ sal \ subsequenttest \ test \ diff --git a/svx/CppunitTest_svx_styles.mk b/svx/CppunitTest_svx_styles.mk index b23984657a96..60f7e13d07d3 100644 --- a/svx/CppunitTest_svx_styles.mk +++ b/svx/CppunitTest_svx_styles.mk @@ -22,6 +22,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,svx_styles, \ $(eval $(call gb_CppunitTest_use_libraries,svx_styles, \ comphelper \ cppu \ + cppuhelper \ svx \ sal \ subsequenttest \ diff --git a/sw/qa/inc/swmodeltestbase.hxx b/sw/qa/inc/swmodeltestbase.hxx index 7bbd5c06d5bb..dbc78e893aac 100644 --- a/sw/qa/inc/swmodeltestbase.hxx +++ b/sw/qa/inc/swmodeltestbase.hxx @@ -24,7 +24,6 @@ #include "swqahelperdllapi.h" #include -#include #include #include @@ -94,13 +93,9 @@ class PDFiumDocument; class SWQAHELPER_DLLPUBLIC SwModelTestBase : public UnoApiXmlTest { private: - OUString maImportFilterOptions; - OUString maImportFilterName; bool mbExported; ///< Does maTempFile already contain something useful? protected: - rtl::Reference xInteractionHandler; - xmlBufferPtr mpXmlBuffer; const char* mpFilter; @@ -112,16 +107,6 @@ protected: void paste(std::u16string_view aFilename, css::uno::Reference const& xTextRange); public: - void setImportFilterOptions(const OUString &rFilterOptions) - { - maImportFilterOptions = rFilterOptions; - } - - void setImportFilterName(const OUString &rFilterName) - { - maImportFilterName = rFilterName; - } - SwModelTestBase(const OUString& pTestDocumentPath = OUString(), const char* pFilter = ""); protected: @@ -361,8 +346,6 @@ protected: bool isExported(){ return mbExported; } private: - void setTestInteractionHandler(const char* pPassword, std::vector& rFilterOptions); - void loadURL(OUString const& rURL, const char* pName, const char* pPassword); void load(const char* pName, const char* pPassword = nullptr) diff --git a/sw/qa/unit/swmodeltestbase.cxx b/sw/qa/unit/swmodeltestbase.cxx index 7a9e51f3d697..07ba9e28205e 100644 --- a/sw/qa/unit/swmodeltestbase.cxx +++ b/sw/qa/unit/swmodeltestbase.cxx @@ -20,7 +20,6 @@ #include #include -#include #include #include #include @@ -448,48 +447,10 @@ uno::Reference SwModelTestBase::getTextFrameByName(const OUStri return xShape; } -void SwModelTestBase::setTestInteractionHandler(const char* pPassword, - std::vector& rFilterOptions) -{ - OUString sPassword = OUString::createFromAscii(pPassword); - rFilterOptions.emplace_back(); - xInteractionHandler - = rtl::Reference(new TestInteractionHandler(sPassword)); - uno::Reference const xInteraction(xInteractionHandler); - rFilterOptions[0].Name = "InteractionHandler"; - rFilterOptions[0].Value <<= xInteraction; -} - void SwModelTestBase::header() {} void SwModelTestBase::loadURL(OUString const& rURL, const char* pName, const char* pPassword) { - if (mxComponent.is()) - mxComponent->dispose(); - - std::vector aFilterOptions; - - if (pPassword) - { - setTestInteractionHandler(pPassword, aFilterOptions); - } - - if (!maImportFilterOptions.isEmpty()) - { - beans::PropertyValue aValue; - aValue.Name = "FilterOptions"; - aValue.Value <<= maImportFilterOptions; - aFilterOptions.push_back(aValue); - } - - if (!maImportFilterName.isEmpty()) - { - beans::PropertyValue aValue; - aValue.Name = "FilterName"; - aValue.Value <<= maImportFilterName; - aFilterOptions.push_back(aValue); - } - // Output name at load time, so in the case of a hang, the name of the hanging input file is visible. if (!isExported()) { @@ -498,14 +459,7 @@ void SwModelTestBase::loadURL(OUString const& rURL, const char* pName, const cha mnStartTime = osl_getGlobalTimer(); } - mxComponent - = loadFromDesktop(rURL, OUString(), comphelper::containerToSequence(aFilterOptions)); - - if (pPassword) - { - CPPUNIT_ASSERT_MESSAGE("Password set but not requested", - xInteractionHandler->wasPasswordRequested()); - } + UnoApiXmlTest::load(rURL, pPassword); discardDumpedLayout(); if (pName && mustCalcLayoutOf(pName)) diff --git a/test/source/unoapi_test.cxx b/test/source/unoapi_test.cxx index bc9395246c8c..29d4020d5337 100644 --- a/test/source/unoapi_test.cxx +++ b/test/source/unoapi_test.cxx @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -56,7 +57,19 @@ OUString UnoApiTest::createFileURL(std::u16string_view aFileBase) return m_directories.getSrcRootURL() + m_aBaseString + "/" + aFileBase; } -OUString UnoApiTest::loadFromURL(std::u16string_view aFileBase) +void UnoApiTest::setTestInteractionHandler(const char* pPassword, + std::vector& rFilterOptions) +{ + OUString sPassword = OUString::createFromAscii(pPassword); + rFilterOptions.emplace_back(); + xInteractionHandler + = rtl::Reference(new TestInteractionHandler(sPassword)); + css::uno::Reference const xInteraction(xInteractionHandler); + rFilterOptions[0].Name = "InteractionHandler"; + rFilterOptions[0].Value <<= xInteraction; +} + +void UnoApiTest::load(OUString const& rURL, const char* pPassword) { if (mxComponent.is()) { @@ -64,8 +77,43 @@ OUString UnoApiTest::loadFromURL(std::u16string_view aFileBase) mxComponent.clear(); } + std::vector aFilterOptions; + + if (pPassword) + { + setTestInteractionHandler(pPassword, aFilterOptions); + } + + if (!maImportFilterOptions.isEmpty()) + { + beans::PropertyValue aValue; + aValue.Name = "FilterOptions"; + aValue.Value <<= maImportFilterOptions; + aFilterOptions.push_back(aValue); + } + + if (!maImportFilterName.isEmpty()) + { + beans::PropertyValue aValue; + aValue.Name = "FilterName"; + aValue.Value <<= maImportFilterName; + aFilterOptions.push_back(aValue); + } + + mxComponent + = loadFromDesktop(rURL, OUString(), comphelper::containerToSequence(aFilterOptions)); + + if (pPassword) + { + CPPUNIT_ASSERT_MESSAGE("Password set but not requested", + xInteractionHandler->wasPasswordRequested()); + } +} + +OUString UnoApiTest::loadFromURL(std::u16string_view aFileBase, const char* pPassword) +{ OUString aFileName = createFileURL(aFileBase); - mxComponent = loadFromDesktop(aFileName); + load(aFileName, pPassword); return aFileName; } @@ -139,17 +187,17 @@ void UnoApiTest::save(const OUString& rFilter, const char* pPassword) void UnoApiTest::saveAndClose(const OUString& rFilter) { - save(rFilter); + save(rFilter, nullptr); mxComponent->dispose(); mxComponent.clear(); } -void UnoApiTest::saveAndReload(const OUString& rFilter) +void UnoApiTest::saveAndReload(const OUString& rFilter, const char* pPassword) { - saveAndClose(rFilter); + save(rFilter, pPassword); - mxComponent = loadFromDesktop(maTempFile.GetURL()); + load(maTempFile.GetURL(), pPassword); } std::unique_ptr UnoApiTest::parsePDFExport(const OString& rPassword) diff --git a/writerfilter/CppunitTest_writerfilter_dmapper.mk b/writerfilter/CppunitTest_writerfilter_dmapper.mk index c54f3105b766..6dcfa52d6184 100644 --- a/writerfilter/CppunitTest_writerfilter_dmapper.mk +++ b/writerfilter/CppunitTest_writerfilter_dmapper.mk @@ -30,6 +30,7 @@ $(eval $(call gb_CppunitTest_use_libraries,writerfilter_dmapper, \ basegfx \ comphelper \ cppu \ + cppuhelper \ oox \ sal \ subsequenttest \ diff --git a/writerfilter/CppunitTest_writerfilter_rtftok.mk b/writerfilter/CppunitTest_writerfilter_rtftok.mk index e7e58d844797..990aa6596d3d 100644 --- a/writerfilter/CppunitTest_writerfilter_rtftok.mk +++ b/writerfilter/CppunitTest_writerfilter_rtftok.mk @@ -28,6 +28,7 @@ $(eval $(call gb_CppunitTest_use_libraries,writerfilter_rtftok, \ basegfx \ comphelper \ cppu \ + cppuhelper \ oox \ sal \ subsequenttest \ diff --git a/xmloff/CppunitTest_xmloff_draw.mk b/xmloff/CppunitTest_xmloff_draw.mk index 77f931e3eec7..8e842e6da32b 100644 --- a/xmloff/CppunitTest_xmloff_draw.mk +++ b/xmloff/CppunitTest_xmloff_draw.mk @@ -23,6 +23,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,xmloff_draw, \ $(eval $(call gb_CppunitTest_use_libraries,xmloff_draw, \ comphelper \ cppu \ + cppuhelper \ embobj \ sal \ subsequenttest \ diff --git a/xmloff/CppunitTest_xmloff_style.mk b/xmloff/CppunitTest_xmloff_style.mk index 9b58ee33e5bb..22d37dffaa83 100644 --- a/xmloff/CppunitTest_xmloff_style.mk +++ b/xmloff/CppunitTest_xmloff_style.mk @@ -23,6 +23,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,xmloff_style, \ $(eval $(call gb_CppunitTest_use_libraries,xmloff_style, \ comphelper \ cppu \ + cppuhelper \ subsequenttest \ embobj \ sal \ diff --git a/xmloff/CppunitTest_xmloff_text.mk b/xmloff/CppunitTest_xmloff_text.mk index 6734e852ac6e..a611aa428af7 100644 --- a/xmloff/CppunitTest_xmloff_text.mk +++ b/xmloff/CppunitTest_xmloff_text.mk @@ -23,6 +23,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,xmloff_text, \ $(eval $(call gb_CppunitTest_use_libraries,xmloff_text, \ comphelper \ cppu \ + cppuhelper \ embobj \ sal \ subsequenttest \