diff options
author | Mark Hung <marklh9@gmail.com> | 2018-02-20 18:40:38 +0800 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2018-04-10 09:33:51 +0200 |
commit | c6d3d0642e0f5d24cab402a8a7c6f81406d044cf (patch) | |
tree | 849e29a0ef41b537e3d7038f6542ecf807dd729c /writerperfect/qa | |
parent | 8cbf84ed33014339cfc9741c1371cd065110060f (diff) |
tdf#115623: invoke openPageSpan / closePageSpan
* For paragraphs or tables whose styles specify style:master-page-name,
it indicate starting a new page style and should invoke
openPageSpan / closePageSapn properly.
* closePageSpan at the end of text body is invoked.
Change-Id: Ic85157c9b1a43c94a027b464ad9105e9072afcf7
Reviewed-on: https://gerrit.libreoffice.org/52082
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'writerperfect/qa')
-rw-r--r-- | writerperfect/qa/unit/EPUBExportTest.cxx | 55 | ||||
-rw-r--r-- | writerperfect/qa/unit/data/writer/epubexport/tdf115623-many-pagespans.odt | bin | 0 -> 8591 bytes | |||
-rw-r--r-- | writerperfect/qa/unit/data/writer/epubexport/tdf115623-single-writing-mode.odt | bin | 0 -> 8562 bytes | |||
-rw-r--r-- | writerperfect/qa/unit/data/writer/epubexport/tdf115623-split-by-chapter.odt | bin | 0 -> 9346 bytes |
4 files changed, 55 insertions, 0 deletions
diff --git a/writerperfect/qa/unit/EPUBExportTest.cxx b/writerperfect/qa/unit/EPUBExportTest.cxx index 81d70591a0da..231c63252efd 100644 --- a/writerperfect/qa/unit/EPUBExportTest.cxx +++ b/writerperfect/qa/unit/EPUBExportTest.cxx @@ -98,6 +98,9 @@ public: void testPopupAPI(); void testPageSize(); void testSVG(); + void testTdf115623SingleWritingMode(); + void testTdf115623SplitByChapter(); + void testTdf115623ManyPageSpans(); CPPUNIT_TEST_SUITE(EPUBExportTest); CPPUNIT_TEST(testOutlineLevel); @@ -144,6 +147,9 @@ public: CPPUNIT_TEST(testPopupAPI); CPPUNIT_TEST(testPageSize); CPPUNIT_TEST(testSVG); + CPPUNIT_TEST(testTdf115623SingleWritingMode); + CPPUNIT_TEST(testTdf115623SplitByChapter); + CPPUNIT_TEST(testTdf115623ManyPageSpans); CPPUNIT_TEST_SUITE_END(); }; @@ -881,6 +887,55 @@ void EPUBExportTest::testSVG() assertXPathNSDef(mpXmlDoc, "/svg:svg", "xlink", "http://www.w3.org/1999/xlink"); } + +void EPUBExportTest::testTdf115623SingleWritingMode() +{ + // Simple page that has single writing mode should work. + createDoc("tdf115623-single-writing-mode.odt", {}); + std::map< OUString, std::vector<OUString> > aCssDoc = parseCss("OEBPS/styles/stylesheet.css"); + mpXmlDoc = parseExport("OEBPS/sections/section0001.xhtml"); + OUString aClass = getXPath(mpXmlDoc, "//xhtml:body", "class"); + CPPUNIT_ASSERT_EQUAL(OUString("vertical-rl"), EPUBExportTest::getCss(aCssDoc, aClass, "writing-mode")); +} + +void EPUBExportTest::testTdf115623SplitByChapter() +{ + createDoc("tdf115623-split-by-chapter.odt", {}); + std::map< OUString, std::vector<OUString> > aCssDoc = parseCss("OEBPS/styles/stylesheet.css"); + { + mpXmlDoc = parseExport("OEBPS/sections/section0001.xhtml"); + OUString aClass = getXPath(mpXmlDoc, "//xhtml:body", "class"); + CPPUNIT_ASSERT_EQUAL(OUString("vertical-rl"), EPUBExportTest::getCss(aCssDoc, aClass, "writing-mode")); + xmlFreeDoc(mpXmlDoc); + mpXmlDoc = nullptr; + } + // Splitted HTML should keep the same writing-mode. + { + mpXmlDoc = parseExport("OEBPS/sections/section0002.xhtml"); + OUString aClass = getXPath(mpXmlDoc, "//xhtml:body", "class"); + CPPUNIT_ASSERT_EQUAL(OUString("vertical-rl"), EPUBExportTest::getCss(aCssDoc, aClass, "writing-mode")); + } +} + +void EPUBExportTest::testTdf115623ManyPageSpans() +{ + createDoc("tdf115623-many-pagespans.odt", {}); + std::map< OUString, std::vector<OUString> > aCssDoc = parseCss("OEBPS/styles/stylesheet.css"); + // Two pages should have different writing modes. + { + mpXmlDoc = parseExport("OEBPS/sections/section0001.xhtml"); + OUString aClass = getXPath(mpXmlDoc, "//xhtml:body", "class"); + CPPUNIT_ASSERT_EQUAL(OUString("vertical-rl"), EPUBExportTest::getCss(aCssDoc, aClass, "writing-mode")); + xmlFreeDoc(mpXmlDoc); + mpXmlDoc = nullptr; + } + { + mpXmlDoc = parseExport("OEBPS/sections/section0002.xhtml"); + OUString aClass = getXPath(mpXmlDoc, "//xhtml:body", "class"); + CPPUNIT_ASSERT_EQUAL(OUString("horizontal-tb"), EPUBExportTest::getCss(aCssDoc, aClass, "writing-mode")); + } +} + CPPUNIT_TEST_SUITE_REGISTRATION(EPUBExportTest); } diff --git a/writerperfect/qa/unit/data/writer/epubexport/tdf115623-many-pagespans.odt b/writerperfect/qa/unit/data/writer/epubexport/tdf115623-many-pagespans.odt Binary files differnew file mode 100644 index 000000000000..3e7c291aa197 --- /dev/null +++ b/writerperfect/qa/unit/data/writer/epubexport/tdf115623-many-pagespans.odt diff --git a/writerperfect/qa/unit/data/writer/epubexport/tdf115623-single-writing-mode.odt b/writerperfect/qa/unit/data/writer/epubexport/tdf115623-single-writing-mode.odt Binary files differnew file mode 100644 index 000000000000..4c374a1bd478 --- /dev/null +++ b/writerperfect/qa/unit/data/writer/epubexport/tdf115623-single-writing-mode.odt diff --git a/writerperfect/qa/unit/data/writer/epubexport/tdf115623-split-by-chapter.odt b/writerperfect/qa/unit/data/writer/epubexport/tdf115623-split-by-chapter.odt Binary files differnew file mode 100644 index 000000000000..ee6d48296ff4 --- /dev/null +++ b/writerperfect/qa/unit/data/writer/epubexport/tdf115623-split-by-chapter.odt |