sw/qa/extras/odfexport/odfexport.cxx | 5 --- sw/qa/extras/odfexport/odfexport2.cxx | 6 --- sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 15 --------- sw/qa/extras/ooxmlexport/ooxmlexport2.cxx | 25 ++++------------ sw/qa/extras/ww8export/ww8export.cxx | 33 --------------------- sw/qa/inc/swmodeltestbase.hxx | 13 -------- sw/qa/unit/swmodeltestbase.cxx | 46 +++--------------------------- test/source/unoapi_test.cxx | 7 +++- 8 files changed, 20 insertions(+), 130 deletions(-)
New commits: commit 58ab2f002fd27974b474151b01287dac221dc102 Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Wed May 31 13:17:09 2023 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Wed May 31 18:56:31 2023 +0200 SwModelTestBase: get rid of mustValidate and remove duplicated save method Change-Id: I9bdf0e28d59ae281fccbafd266b86cdf89c112da Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152421 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sw/qa/extras/odfexport/odfexport.cxx b/sw/qa/extras/odfexport/odfexport.cxx index f8f972d20a46..4acb18d36025 100644 --- a/sw/qa/extras/odfexport/odfexport.cxx +++ b/sw/qa/extras/odfexport/odfexport.cxx @@ -69,11 +69,6 @@ class Test : public SwModelTestBase { public: Test() : SwModelTestBase("/sw/qa/extras/odfexport/data/", "writer8") {} - - bool mustValidate(const char* /*filename*/) const override - { - return true; - } }; CPPUNIT_TEST_FIXTURE(Test, testMathObjectFlatExport) diff --git a/sw/qa/extras/odfexport/odfexport2.cxx b/sw/qa/extras/odfexport/odfexport2.cxx index 7c3d7fb9b841..f101dbd5a19f 100644 --- a/sw/qa/extras/odfexport/odfexport2.cxx +++ b/sw/qa/extras/odfexport/odfexport2.cxx @@ -38,12 +38,6 @@ class Test : public SwModelTestBase { public: Test() : SwModelTestBase("/sw/qa/extras/odfexport/data/", "writer8") {} - - bool mustValidate(const char* /*filename*/) const override - { - return true; - } - }; CPPUNIT_TEST_FIXTURE(Test, testEmbeddedFontProps) diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx index a0dd296e5e32..5207f3a8aa4d 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx @@ -37,20 +37,6 @@ class Test : public SwModelTestBase { public: Test() : SwModelTestBase("/sw/qa/extras/ooxmlexport/data/", "Office Open XML Text") {} - -protected: - /** - * Validation handling - */ - bool mustValidate(const char* filename) const override - { - const char* aAllowlist[] = { - "paragraph-mark-nonempty.odt" - }; - std::vector<const char*> vAllowlist(aAllowlist, aAllowlist + SAL_N_ELEMENTS(aAllowlist)); - - return std::find(vAllowlist.begin(), vAllowlist.end(), filename) != vAllowlist.end(); - } }; CPPUNIT_TEST_FIXTURE(Test, testfdo81381) @@ -693,6 +679,7 @@ DECLARE_OOXMLEXPORT_TEST(testParagraphMark2, "paragraph-mark2.docx") CPPUNIT_TEST_FIXTURE(Test, testParagraphMarkNonempty) { loadAndSave("paragraph-mark-nonempty.odt"); + validate(maTempFile.GetFileName(), test::OOXML); CPPUNIT_ASSERT_EQUAL(1, getPages()); xmlDocUniquePtr pXmlDoc = parseExport("word/document.xml"); // There were two <w:sz> elements, make sure the 40 one is dropped and the 20 one is kept. diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx index 2335caa6f17c..607feea76ac7 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx @@ -38,29 +38,12 @@ class Test : public SwModelTestBase { public: Test() : SwModelTestBase("/sw/qa/extras/ooxmlexport/data/", "Office Open XML Text") {} - -protected: - /** - * Validation handling - */ - bool mustValidate(const char* filename) const override - { - const char* aAllowlist[] = { - "page-graphic-background.odt", - "zoom.docx", - "empty.odt", - "fdo38244.docx", - "comments-nested.odt" - }; - std::vector<const char*> vAllowlist(aAllowlist, aAllowlist + SAL_N_ELEMENTS(aAllowlist)); - - return std::find(vAllowlist.begin(), vAllowlist.end(), filename) != vAllowlist.end(); - } }; CPPUNIT_TEST_FIXTURE(Test, testPageGraphicBackground) { loadAndReload("page-graphic-background.odt"); + validate(maTempFile.GetFileName(), test::OOXML); CPPUNIT_ASSERT_EQUAL(1, getPages()); // No idea how the graphic background should be exported (seems there is no // way to do a non-tiling export to OOXML), but at least the background @@ -176,6 +159,7 @@ DECLARE_OOXMLEXPORT_TEST(testZoom, "zoom.docx") // Validation test: order of elements were wrong. if (!isExported()) return; + validate(maTempFile.GetFileName(), test::OOXML); xmlDocUniquePtr pXmlDoc = parseExport("word/styles.xml"); // Order was: rsid, next. int nNext = getXPathPosition(pXmlDoc, "/w:styles/w:style[3]", "next"); @@ -191,6 +175,7 @@ DECLARE_OOXMLEXPORT_TEST(testZoom, "zoom.docx") CPPUNIT_TEST_FIXTURE(Test, defaultTabStopNotInStyles) { loadAndReload("empty.odt"); + validate(maTempFile.GetFileName(), test::OOXML); CPPUNIT_ASSERT_EQUAL(1, getPages()); // The default tab stop was mistakenly exported to a style. // xray ThisComponent.StyleFamilies(1)(0).ParaTabStop @@ -255,11 +240,15 @@ DECLARE_OOXMLEXPORT_TEST(testFdo38244, "fdo38244.docx") xParaEnum = xParaEnumAccess->createEnumeration(); xParaEnum->nextElement(); CPPUNIT_ASSERT(!xParaEnum->hasMoreElements()); + + if (isExported()) + validate(maTempFile.GetFileName(), test::OOXML); } CPPUNIT_TEST_FIXTURE(Test, testCommentsNested) { loadAndReload("comments-nested.odt"); + validate(maTempFile.GetFileName(), test::OOXML); CPPUNIT_ASSERT_EQUAL(1, getPages()); uno::Reference<beans::XPropertySet> xOuter = getProperty< uno::Reference<beans::XPropertySet> >(getRun(getParagraph(1), 2), "TextField"); CPPUNIT_ASSERT_EQUAL(OUString("Outer"), getProperty<OUString>(xOuter, "Content")); diff --git a/sw/qa/extras/ww8export/ww8export.cxx b/sw/qa/extras/ww8export/ww8export.cxx index 0253778f1ec6..03b7de1a5d51 100644 --- a/sw/qa/extras/ww8export/ww8export.cxx +++ b/sw/qa/extras/ww8export/ww8export.cxx @@ -67,39 +67,6 @@ class Test : public SwModelTestBase { public: Test() : SwModelTestBase("/sw/qa/extras/ww8export/data/", "MS Word 97") {} - - /** - * Validation handling - */ - bool mustValidate(const char* filename) const override - { - const std::vector<const char*> aDenylist = - { - // the following doc exports currently don't pass binary validation - "tdf56321_flipImage_both.doc", - "cjklist30.doc", - "cjklist31.doc", - "cjklist34.doc", - "cjklist35.doc", - "fdo77454.doc", - "new-page-styles.doc", - "tdf36117_verticalAdjustment.doc", - "bnc636128.doc", - "tdf92281.doc", - "fdo59530.doc", - "fdo56513.doc", - "tscp.doc", - "zoom.doc", - "comments-nested.doc", - "commented-table.doc", - "zoomtype.doc", - "n325936.doc", - "first-header-footer.doc" - }; - - // Don't bother with non-.doc files; weed out denylisted .doc files - return (o3tl::ends_with(filename, ".doc") && std::find(aDenylist.begin(), aDenylist.end(), filename) == aDenylist.end()); - } }; DECLARE_WW8EXPORT_TEST(testN757910, "n757910.doc") diff --git a/sw/qa/inc/swmodeltestbase.hxx b/sw/qa/inc/swmodeltestbase.hxx index c08a9f55552c..36fd389416ae 100644 --- a/sw/qa/inc/swmodeltestbase.hxx +++ b/sw/qa/inc/swmodeltestbase.hxx @@ -167,14 +167,6 @@ protected: return true; } - /** - * Override this function if validation is wanted - */ - virtual bool mustValidate(const char* /*filename*/) const - { - return false; - } - void dumpLayout(const css::uno::Reference< css::lang::XComponent > & rComponent); void discardDumpedLayout(); @@ -279,11 +271,8 @@ protected: void reload(const char* pFilter, const char* pName, const char* pPassword = nullptr); - /// Save the loaded document to a tempfile. Can be used to check the resulting docx/odt directly as a ZIP file. - void save(const OUString& aFilterName, const char* pName = nullptr, const char* pPassword = nullptr); - /// Combines load() and save(). - void loadAndSave(const char* pName); + void loadAndSave(const char* pName, const char* pPassword = nullptr); /// Combines load() and reload(). void loadAndReload(const char* pName); diff --git a/sw/qa/unit/swmodeltestbase.cxx b/sw/qa/unit/swmodeltestbase.cxx index a604c972b7ff..85b0e1ed0c59 100644 --- a/sw/qa/unit/swmodeltestbase.cxx +++ b/sw/qa/unit/swmodeltestbase.cxx @@ -105,8 +105,7 @@ void SwModelTestBase::executeImportExport(const char* filename, const char* pPas maTempFile.EnableKillingFile(false); header(); std::unique_ptr<Resetter> const pChanges(preTest(filename)); - load(filename, pPassword); - save(OUString::createFromAscii(mpFilter)); + loadAndSave(filename, pPassword); maTempFile.EnableKillingFile(false); verify(); finish(); @@ -478,50 +477,17 @@ void SwModelTestBase::loadURL(OUString const& rURL, const char* pName, const cha void SwModelTestBase::reload(const char* pFilter, const char* pName, const char* pPassword) { - save(OUString::createFromAscii(pFilter), pName, pPassword); + save(OUString::createFromAscii(pFilter), pPassword); + mbExported = true; loadURL(maTempFile.GetURL(), pName, pPassword); } -void SwModelTestBase::save(const OUString& aFilterName, const char* pName, const char* pPassword) -{ - // FIXME: Merge skipValidation and mustValidate - skipValidation(); - - UnoApiXmlTest::save(aFilterName, pPassword); - - // TODO: for now, validate only ODF here - if (mustValidate(pName) || aFilterName == "writer8" - || aFilterName == "OpenDocument Text Flat XML") - { - if (aFilterName == "Office Open XML Text") - { - // too many validation errors right now - validate(maTempFile.GetFileName(), test::OOXML); - } - else if (aFilterName == "writer8" || aFilterName == "OpenDocument Text Flat XML") - { - validate(maTempFile.GetFileName(), test::ODF); - } - else if (aFilterName == "MS Word 97") - { - validate(maTempFile.GetFileName(), test::MSBINARY); - } - else - { - OString aMessage - = OString::Concat("validation requested, but don't know how to validate ") + pName - + " (" + OUStringToOString(aFilterName, RTL_TEXTENCODING_UTF8) + ")"; - CPPUNIT_FAIL(aMessage.getStr()); - } - } - mbExported = true; -} - -void SwModelTestBase::loadAndSave(const char* pName) +void SwModelTestBase::loadAndSave(const char* pName, const char* pPassword) { - load(pName); + load(pName, pPassword); save(OUString::createFromAscii(mpFilter)); + mbExported = true; } void SwModelTestBase::loadAndReload(const char* pName) diff --git a/test/source/unoapi_test.cxx b/test/source/unoapi_test.cxx index e8198876537a..5c689bfe5354 100644 --- a/test/source/unoapi_test.cxx +++ b/test/source/unoapi_test.cxx @@ -175,10 +175,13 @@ void UnoApiTest::save(const OUString& rFilter, const char* pPassword) if (!mbSkipValidation) { - if (rFilter == "Office Open XML Text") + if (rFilter == "Calc Office Open XML") validate(maTempFile.GetFileName(), test::OOXML); - else if (rFilter == "Calc Office Open XML") + /* + // too many validation errors right now + else if (rFilter == "Office Open XML Text") validate(maTempFile.GetFileName(), test::OOXML); + */ else if (rFilter == "Impress Office Open XML") validate(maTempFile.GetFileName(), test::OOXML); else if (rFilter == "writer8")