[Libreoffice-commits] core.git: writerperfect/CppunitTest_writerperfect_epubexport.mk writerperfect/Module_writerperfect.mk writerperfect/qa

Miklos Vajna vmiklos at collabora.co.uk
Thu Aug 24 16:07:45 UTC 2017


 writerperfect/CppunitTest_writerperfect_epubexport.mk           |   41 ++++
 writerperfect/Module_writerperfect.mk                           |    1 
 writerperfect/qa/unit/EPUBExportTest.cxx                        |   88 ++++++++++
 writerperfect/qa/unit/data/writer/epubexport/outline-level.fodt |   15 +
 4 files changed, 145 insertions(+)

New commits:
commit ab8b8fb183067fd0bded089f513b614d35138e18
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Thu Aug 24 14:32:59 2017 +0200

    Add initial CppunitTest_writerperfect_epubexport
    
    Fails with the writerperfect/source/writer/exp/txtparai.cxx part of
    commit b6f39c47fb477f16c65631523b0c18b4f262fadf (EPUB export: initial
    index support, 2017-08-15) reverted.
    
    Change-Id: I56457b3e3b312682e4c83ea08dbd459ca42152ef
    Reviewed-on: https://gerrit.libreoffice.org/41518
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/writerperfect/CppunitTest_writerperfect_epubexport.mk b/writerperfect/CppunitTest_writerperfect_epubexport.mk
new file mode 100644
index 000000000000..ea5285730b31
--- /dev/null
+++ b/writerperfect/CppunitTest_writerperfect_epubexport.mk
@@ -0,0 +1,41 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_CppunitTest_CppunitTest,writerperfect_epubexport))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,writerperfect_epubexport, \
+    writerperfect/qa/unit/EPUBExportTest \
+))
+
+$(eval $(call gb_CppunitTest_use_sdk_api,writerperfect_epubexport))
+
+$(eval $(call gb_CppunitTest_use_libraries,writerperfect_epubexport, \
+	comphelper \
+	cppu \
+	cppuhelper \
+	sal \
+	test \
+	unotest \
+	utl \
+	tl \
+	$(gb_UWINAPI) \
+))
+
+$(eval $(call gb_CppunitTest_use_external,writerperfect_epubexport,boost_headers))
+
+$(eval $(call gb_CppunitTest_use_sdk_api,writerperfect_epubexport))
+
+$(eval $(call gb_CppunitTest_use_ure,writerperfect_epubexport))
+$(eval $(call gb_CppunitTest_use_vcl,writerperfect_epubexport))
+
+$(eval $(call gb_CppunitTest_use_rdb,writerperfect_epubexport,services))
+
+$(eval $(call gb_CppunitTest_use_configuration,writerperfect_epubexport))
+
+# vim: set noet sw=4 ts=4:
diff --git a/writerperfect/Module_writerperfect.mk b/writerperfect/Module_writerperfect.mk
index b2102c54b987..859f0cbe2507 100644
--- a/writerperfect/Module_writerperfect.mk
+++ b/writerperfect/Module_writerperfect.mk
@@ -40,6 +40,7 @@ $(eval $(call gb_Module_add_check_targets,writerperfect,\
 $(eval $(call gb_Module_add_slowcheck_targets,writerperfect,\
 	CppunitTest_writerperfect_calc \
 	CppunitTest_writerperfect_draw \
+	CppunitTest_writerperfect_epubexport \
 	CppunitTest_writerperfect_import \
 	CppunitTest_writerperfect_impress \
 	CppunitTest_writerperfect_writer \
diff --git a/writerperfect/qa/unit/EPUBExportTest.cxx b/writerperfect/qa/unit/EPUBExportTest.cxx
new file mode 100644
index 000000000000..ef65012daca9
--- /dev/null
+++ b/writerperfect/qa/unit/EPUBExportTest.cxx
@@ -0,0 +1,88 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <com/sun/star/frame/Desktop.hpp>
+#include <com/sun/star/frame/XStorable.hpp>
+#include <com/sun/star/packages/zip/ZipFileAccess.hpp>
+
+#include <comphelper/processfactory.hxx>
+#include <cppuhelper/implbase.hxx>
+#include <test/bootstrapfixture.hxx>
+#include <unotest/macros_test.hxx>
+#include <unotools/mediadescriptor.hxx>
+#include <unotools/tempfile.hxx>
+
+using namespace ::com::sun::star;
+
+namespace
+{
+
+char const DATA_DIRECTORY[] = "/writerperfect/qa/unit/data/writer/epubexport/";
+
+/// Tests the EPUB export filter.
+class EPUBExportTest : public test::BootstrapFixture, public unotest::MacrosTest
+{
+    uno::Reference<uno::XComponentContext> mxComponentContext;
+    uno::Reference<lang::XComponent> mxComponent;
+
+public:
+    virtual void setUp() override;
+    virtual void tearDown() override;
+    void testOutlineLevel();
+
+    CPPUNIT_TEST_SUITE(EPUBExportTest);
+    CPPUNIT_TEST(testOutlineLevel);
+    CPPUNIT_TEST_SUITE_END();
+};
+
+void EPUBExportTest::setUp()
+{
+    test::BootstrapFixture::setUp();
+
+    mxComponentContext.set(comphelper::getComponentContext(getMultiServiceFactory()));
+    mxDesktop.set(frame::Desktop::create(mxComponentContext));
+}
+
+void EPUBExportTest::tearDown()
+{
+    if (mxComponent.is())
+        mxComponent->dispose();
+
+    test::BootstrapFixture::tearDown();
+}
+
+void EPUBExportTest::testOutlineLevel()
+{
+    // Import the bugdoc and export as EPUB.
+    OUString aURL = m_directories.getURLFromSrc(DATA_DIRECTORY) + "outline-level.fodt";
+    mxComponent = loadFromDesktop(aURL);
+    CPPUNIT_ASSERT(mxComponent.is());
+
+    uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY);
+    utl::TempFile aTempFile;
+    aTempFile.EnableKillingFile();
+    utl::MediaDescriptor aMediaDescriptor;
+    aMediaDescriptor["FilterName"] <<= OUString("EPUB");
+    xStorable->storeToURL(aTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList());
+
+    // Make sure that the output is split into two.
+    uno::Reference<packages::zip::XZipFileAccess2> xNameAccess = packages::zip::ZipFileAccess::createWithURL(mxComponentContext, aTempFile.GetURL());
+    CPPUNIT_ASSERT(xNameAccess->hasByName("OEBPS/sections/section0001.xhtml"));
+    // This failed, output was a single section.
+    CPPUNIT_ASSERT(xNameAccess->hasByName("OEBPS/sections/section0002.xhtml"));
+    CPPUNIT_ASSERT(!xNameAccess->hasByName("OEBPS/sections/section0003.xhtml"));
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(EPUBExportTest);
+
+}
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/writerperfect/qa/unit/data/writer/epubexport/outline-level.fodt b/writerperfect/qa/unit/data/writer/epubexport/outline-level.fodt
new file mode 100644
index 000000000000..11cbf3dc22a1
--- /dev/null
+++ b/writerperfect/qa/unit/data/writer/epubexport/outline-level.fodt
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<office:document office:mimetype="application/vnd.oasis.opendocument.text" office:version="1.2" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0">
+  <office:body>
+    <office:text>
+      <text:h text:outline-level="1">Chapter 1</text:h>
+      <text:p>foo</text:p>
+      <text:h text:outline-level="2">Chapter 1.1</text:h>
+      <text:p>foo</text:p>
+      <text:h text:outline-level="1">Chapter 2</text:h>
+      <text:p>bar</text:p>
+      <text:h text:outline-level="2">Chapter 2.1</text:h>
+      <text:p>bar</text:p>
+    </office:text>
+  </office:body>
+</office:document>


More information about the Libreoffice-commits mailing list