[Libreoffice-commits] core.git: include/test sc/CppunitTest_sc_styleloaderobj.mk sc/Module_sc.mk sc/qa solenv/clang-format test/Library_subsequenttest.mk test/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Jan 16 17:58:16 UTC 2019


 include/test/sheet/xstyleloader.hxx |   45 ----------------
 include/test/style/xstyleloader.hxx |   50 ++++++++++++++++++
 sc/CppunitTest_sc_styleloaderobj.mk |   43 ---------------
 sc/Module_sc.mk                     |    1 
 sc/qa/extras/scstylefamiliesobj.cxx |   37 +++++++++++++
 sc/qa/extras/scstyleloaderobj.cxx   |   99 ------------------------------------
 solenv/clang-format/blacklist       |    3 -
 test/Library_subsequenttest.mk      |    2 
 test/source/sheet/xstyleloader.cxx  |   97 -----------------------------------
 test/source/style/xstyleloader.cxx  |   93 +++++++++++++++++++++++++++++++++
 10 files changed, 180 insertions(+), 290 deletions(-)

New commits:
commit 7b7cc20d83f48a0d114f3e726c9d5710aabc1a4c
Author:     Jens Carl <j.carl43 at gmx.de>
AuthorDate: Wed Jan 16 02:22:58 2019 +0000
Commit:     Jens Carl <j.carl43 at gmx.de>
CommitDate: Wed Jan 16 18:57:49 2019 +0100

    Move XStyleLoader2 tests to ScStyleFamiliesObj
    
    Change-Id: Ibba0464d17a9517eb48f3f33b46db2455093ac52
    Reviewed-on: https://gerrit.libreoffice.org/66413
    Tested-by: Jenkins
    Reviewed-by: Jens Carl <j.carl43 at gmx.de>

diff --git a/include/test/sheet/xstyleloader.hxx b/include/test/sheet/xstyleloader.hxx
deleted file mode 100644
index 02ec28e5bf0e..000000000000
--- a/include/test/sheet/xstyleloader.hxx
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- 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/.
- */
-
-#ifndef INCLUDED_TEST_SHEET_XSTYLELOADER_HXX
-#define INCLUDED_TEST_SHEET_XSTYLELOADER_HXX
-
-#include <rtl/ustring.hxx>
-#include <com/sun/star/style/XStyleLoader2.hpp>
-#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
-
-#include <test/testdllapi.hxx>
-
-namespace apitest {
-
-class OOO_DLLPUBLIC_TEST XStyleLoader
-{
-public:
-    virtual css::uno::Reference< css::uno::XInterface > init() = 0;
-
-    virtual OUString getTestURL() = 0;
-    virtual css::uno::Reference< css::lang::XComponent  > getTargetComponent() = 0;
-    virtual css::uno::Reference< css::lang::XComponent > getSourceComponent() = 0;
-
-    // XStyleLoader
-    void testLoadStylesFromURL();
-    // XStyleLoader2
-    void testLoadStylesFromDocument();
-
-private:
-    static void checkStyleProperties(css::uno::Reference< css::style::XStyleFamiliesSupplier > const & xFamilySupplier);
-
-protected:
-    ~XStyleLoader() {}
-
-};
-
-}
-
-#endif // INCLUDED_TEST_SHEET_XSTYLELOADER_HXX
diff --git a/include/test/style/xstyleloader.hxx b/include/test/style/xstyleloader.hxx
new file mode 100644
index 000000000000..4077d30327d0
--- /dev/null
+++ b/include/test/style/xstyleloader.hxx
@@ -0,0 +1,50 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * 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/.
+ */
+
+#ifndef INCLUDED_TEST_STYLE_XSTYLELOADER_HXX
+#define INCLUDED_TEST_STYLE_XSTYLELOADER_HXX
+
+#include <com/sun/star/lang/XComponent.hpp>
+#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
+#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
+#include <com/sun/star/uno/XInterface.hpp>
+
+#include <com/sun/star/uno/Reference.hxx>
+
+#include <rtl/ustring.hxx>
+#include <test/testdllapi.hxx>
+
+namespace apitest
+{
+class OOO_DLLPUBLIC_TEST XStyleLoader
+{
+public:
+    virtual css::uno::Reference<css::uno::XInterface> init() = 0;
+    virtual css::uno::Reference<css::sheet::XSpreadsheetDocument> getTargetDoc() = 0;
+    virtual css::uno::Reference<css::lang::XComponent> getSourceComponent() = 0;
+    virtual OUString getTestURL() = 0;
+
+    // XStyleLoader
+    void testLoadStylesFromURL();
+    // XStyleLoader2
+    void testLoadStylesFromDocument();
+
+private:
+    static void checkStyleProperties(
+        css::uno::Reference<css::style::XStyleFamiliesSupplier> const& xFamilySupplier);
+
+protected:
+    ~XStyleLoader() {}
+};
+
+} // namespace apitest
+
+#endif // INCLUDED_TEST_STYLE_XSTYLELOADER_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/sc/CppunitTest_sc_styleloaderobj.mk b/sc/CppunitTest_sc_styleloaderobj.mk
deleted file mode 100644
index 61e1bdb552bf..000000000000
--- a/sc/CppunitTest_sc_styleloaderobj.mk
+++ /dev/null
@@ -1,43 +0,0 @@
-# -*- 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,sc_styleloaderobj))
-
-$(eval $(call gb_CppunitTest_use_external,sc_styleloaderobj,boost_headers))
-
-$(eval $(call gb_CppunitTest_add_exception_objects,sc_styleloaderobj, \
-	sc/qa/extras/scstyleloaderobj \
-))
-
-$(eval $(call gb_CppunitTest_use_libraries,sc_styleloaderobj, \
-	cppu \
-	sal \
-	subsequenttest \
-	test \
-	unotest \
-))
-
-$(eval $(call gb_CppunitTest_set_include,sc_styleloaderobj,\
-	$$(INCLUDE) \
-))
-
-$(eval $(call gb_CppunitTest_use_sdk_api,sc_styleloaderobj))
-
-$(eval $(call gb_CppunitTest_use_ure,sc_styleloaderobj))
-$(eval $(call gb_CppunitTest_use_vcl,sc_styleloaderobj))
-
-$(eval $(call gb_CppunitTest_use_components,sc_styleloaderobj,\
-	$(sc_unoapi_common_components) \
-))
-
-$(eval $(call gb_CppunitTest_use_configuration,sc_styleloaderobj))
-
-# vim: set noet sw=4 ts=4:
diff --git a/sc/Module_sc.mk b/sc/Module_sc.mk
index dab235dbf863..6ee193103f70 100644
--- a/sc/Module_sc.mk
+++ b/sc/Module_sc.mk
@@ -178,7 +178,6 @@ $(eval $(call gb_Module_add_subsequentcheck_targets,sc,\
 	CppunitTest_sc_spreadsheetsettings \
 	CppunitTest_sc_spreadsheetsettingsobj \
 	CppunitTest_sc_stylefamiliesobj \
-	CppunitTest_sc_styleloaderobj \
 	CppunitTest_sc_subtotaldescriptorbaseobj \
 	CppunitTest_sc_subtotalfieldobj \
 	CppunitTest_sc_tableconditionalentryobj \
diff --git a/sc/qa/extras/scstylefamiliesobj.cxx b/sc/qa/extras/scstylefamiliesobj.cxx
index 2cbed4673dd4..d972fe6a6148 100644
--- a/sc/qa/extras/scstylefamiliesobj.cxx
+++ b/sc/qa/extras/scstylefamiliesobj.cxx
@@ -12,6 +12,7 @@
 #include <test/container/xindexaccess.hxx>
 #include <test/container/xnameaccess.hxx>
 #include <test/lang/xserviceinfo.hxx>
+#include <test/style/xstyleloader.hxx>
 
 #include <com/sun/star/container/XNameAccess.hpp>
 #include <com/sun/star/container/XNameContainer.hpp>
@@ -33,12 +34,17 @@ class ScStyleFamiliesObj : public CalcUnoApiTest,
                            public apitest::XElementAccess,
                            public apitest::XIndexAccess,
                            public apitest::XNameAccess,
-                           public apitest::XServiceInfo
+                           public apitest::XServiceInfo,
+                           public apitest::XStyleLoader
 {
 public:
     ScStyleFamiliesObj();
 
     virtual uno::Reference<uno::XInterface> init() override;
+    virtual uno::Reference<sheet::XSpreadsheetDocument> getTargetDoc() override;
+    virtual uno::Reference<lang::XComponent> getSourceComponent() override;
+    virtual OUString getTestURL() override;
+
     virtual void setUp() override;
     virtual void tearDown() override;
 
@@ -62,10 +68,15 @@ public:
     CPPUNIT_TEST(testGetSupportedServiceNames);
     CPPUNIT_TEST(testSupportsService);
 
+    // XStyleLoader
+    CPPUNIT_TEST(testLoadStylesFromDocument);
+    CPPUNIT_TEST(testLoadStylesFromURL);
+
     CPPUNIT_TEST_SUITE_END();
 
 private:
     uno::Reference<lang::XComponent> m_xComponent;
+    uno::Reference<lang::XComponent> m_xSrcComponent;
 };
 
 ScStyleFamiliesObj::ScStyleFamiliesObj()
@@ -88,17 +99,41 @@ uno::Reference<uno::XInterface> ScStyleFamiliesObj::init()
     return xNA;
 }
 
+uno::Reference<sheet::XSpreadsheetDocument> ScStyleFamiliesObj::getTargetDoc()
+{
+    uno::Reference<sheet::XSpreadsheetDocument> xDoc(m_xComponent, uno::UNO_QUERY_THROW);
+    CPPUNIT_ASSERT_MESSAGE("no calc document", xDoc.is());
+
+    return xDoc;
+}
+
+uno::Reference<lang::XComponent> ScStyleFamiliesObj::getSourceComponent()
+{
+    return m_xSrcComponent;
+}
+
+OUString ScStyleFamiliesObj::getTestURL()
+{
+    OUString aFileURL;
+    createFileURL("ScStyleFamiliesObj.ods", aFileURL);
+    return aFileURL;
+}
+
 void ScStyleFamiliesObj::setUp()
 {
     CalcUnoApiTest::setUp();
     // create a calc document
     m_xComponent = loadFromDesktop("private:factory/scalc");
     CPPUNIT_ASSERT_MESSAGE("no component", m_xComponent.is());
+
+    m_xSrcComponent = loadFromDesktop(getTestURL());
+    CPPUNIT_ASSERT_MESSAGE("no src component", m_xSrcComponent.is());
 }
 
 void ScStyleFamiliesObj::tearDown()
 {
     closeDocument(m_xComponent);
+    closeDocument(m_xSrcComponent);
     CalcUnoApiTest::tearDown();
 }
 
diff --git a/sc/qa/extras/scstyleloaderobj.cxx b/sc/qa/extras/scstyleloaderobj.cxx
deleted file mode 100644
index ef4e9d5e9bfe..000000000000
--- a/sc/qa/extras/scstyleloaderobj.cxx
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- 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 <test/calc_unoapi_test.hxx>
-#include <test/sheet/xstyleloader.hxx>
-
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-
-using namespace css;
-using namespace css::uno;
-
-namespace sc_apitest {
-
-class ScStyleLoaderObj : public CalcUnoApiTest, public apitest::XStyleLoader
-{
-public:
-    ScStyleLoaderObj();
-
-    virtual void setUp() override;
-    virtual void tearDown() override;
-
-    virtual uno::Reference< uno::XInterface > init() override;
-    virtual uno::Reference< lang::XComponent > getTargetComponent() override;
-    virtual uno::Reference< lang::XComponent > getSourceComponent() override;
-    virtual OUString getTestURL() override;
-
-    CPPUNIT_TEST_SUITE(ScStyleLoaderObj);
-
-    // XStyleLoader
-    CPPUNIT_TEST(testLoadStylesFromURL);
-    CPPUNIT_TEST(testLoadStylesFromDocument);
-
-    CPPUNIT_TEST_SUITE_END();
-private:
-    uno::Reference< lang::XComponent > mxSourceComponent;
-    uno::Reference< lang::XComponent > mxTargetComponent;
-};
-
-ScStyleLoaderObj::ScStyleLoaderObj()
-    : CalcUnoApiTest("sc/qa/extras/testdocuments")
-{
-}
-
-uno::Reference< uno::XInterface > ScStyleLoaderObj::init()
-{
-    return getTargetComponent();
-}
-
-uno::Reference< lang::XComponent > ScStyleLoaderObj::getTargetComponent()
-{
-    // target is always an empty document
-    return mxTargetComponent;
-}
-
-uno::Reference< lang::XComponent > ScStyleLoaderObj::getSourceComponent()
-{
-    CPPUNIT_ASSERT_MESSAGE("Component not loaded",mxSourceComponent.is());
-    return mxSourceComponent;
-}
-
-OUString ScStyleLoaderObj::getTestURL()
-{
-      OUString aFileURL;
-      createFileURL("ScStyleLoaderObj.ods", aFileURL);
-      return aFileURL;
-}
-
-void ScStyleLoaderObj::setUp()
-{
-    CalcUnoApiTest::setUp();
-
-    mxTargetComponent = loadFromDesktop("private:factory/scalc");
-    // get the test file url
-    OUString aFileURL = getTestURL();
-    mxSourceComponent = loadFromDesktop(aFileURL);
-}
-
-void ScStyleLoaderObj::tearDown()
-{
-    closeDocument(mxSourceComponent);
-    closeDocument(mxTargetComponent);
-    CalcUnoApiTest::tearDown();
-}
-
-CPPUNIT_TEST_SUITE_REGISTRATION(ScStyleLoaderObj);
-
-}
-
-CPPUNIT_PLUGIN_IMPLEMENT();
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/qa/extras/testdocuments/ScStyleLoaderObj.ods b/sc/qa/extras/testdocuments/ScStyleFamiliesObj.ods
similarity index 100%
rename from sc/qa/extras/testdocuments/ScStyleLoaderObj.ods
rename to sc/qa/extras/testdocuments/ScStyleFamiliesObj.ods
diff --git a/solenv/clang-format/blacklist b/solenv/clang-format/blacklist
index 87f88d633832..d582d0a1d68e 100644
--- a/solenv/clang-format/blacklist
+++ b/solenv/clang-format/blacklist
@@ -7615,7 +7615,6 @@ include/test/sheet/xspreadsheet.hxx
 include/test/sheet/xspreadsheetdocument.hxx
 include/test/sheet/xspreadsheets.hxx
 include/test/sheet/xspreadsheets2.hxx
-include/test/sheet/xstyleloader.hxx
 include/test/sheet/xsubtotalcalculatable.hxx
 include/test/sheet/xsubtotaldescriptor.hxx
 include/test/sheet/xsubtotalfield.hxx
@@ -10152,7 +10151,6 @@ sc/qa/extras/scmodelobj.cxx
 sc/qa/extras/scnamedrangeobj.cxx
 sc/qa/extras/scnamedrangesobj.cxx
 sc/qa/extras/scoutlineobj.cxx
-sc/qa/extras/scstyleloaderobj.cxx
 sc/qa/extras/scsubtotaldescriptorbaseobj.cxx
 sc/qa/extras/scsubtotalfieldobj.cxx
 sc/qa/extras/sctablesheetobj.cxx
@@ -16609,7 +16607,6 @@ test/source/sheet/xspreadsheet.cxx
 test/source/sheet/xspreadsheetdocument.cxx
 test/source/sheet/xspreadsheets.cxx
 test/source/sheet/xspreadsheets2.cxx
-test/source/sheet/xstyleloader.cxx
 test/source/sheet/xsubtotalcalculatable.cxx
 test/source/sheet/xsubtotaldescriptor.cxx
 test/source/sheet/xsubtotalfield.cxx
diff --git a/test/Library_subsequenttest.mk b/test/Library_subsequenttest.mk
index 8895df3e24a0..081763980f95 100644
--- a/test/Library_subsequenttest.mk
+++ b/test/Library_subsequenttest.mk
@@ -144,7 +144,6 @@ $(eval $(call gb_Library_add_exception_objects,subsequenttest,\
 	test/source/sheet/xspreadsheets \
 	test/source/sheet/xspreadsheets2 \
 	test/source/sheet/xspreadsheetview \
-	test/source/sheet/xstyleloader \
 	test/source/sheet/xsubtotalcalculatable \
 	test/source/sheet/xsubtotaldescriptor \
 	test/source/sheet/xsubtotalfield \
@@ -153,6 +152,7 @@ $(eval $(call gb_Library_add_exception_objects,subsequenttest,\
 	test/source/sheet/xviewfreezable \
 	test/source/sheet/xviewpane \
 	test/source/sheet/xviewsplitable \
+	test/source/style/xstyleloader \
 	test/source/table/xcell \
 	test/source/table/xcellcursor \
 	test/source/table/xcolumnrowrange \
diff --git a/test/source/sheet/xstyleloader.cxx b/test/source/sheet/xstyleloader.cxx
deleted file mode 100644
index ce019a9e7c5f..000000000000
--- a/test/source/sheet/xstyleloader.cxx
+++ /dev/null
@@ -1,97 +0,0 @@
-/* -*- 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 <test/sheet/xstyleloader.hxx>
-
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
-
-#include <com/sun/star/container/XNameContainer.hpp>
-
-#include <com/sun/star/style/XStyleLoader.hpp>
-#include <com/sun/star/style/XStyleLoader2.hpp>
-
-#include <com/sun/star/style/XStyle.hpp>
-
-#include <rtl/ustring.hxx>
-#include <cppunit/extensions/HelperMacros.h>
-
-using namespace css;
-using namespace css::uno;
-
-namespace apitest {
-
-
-void XStyleLoader::testLoadStylesFromURL()
-{
-
-  uno::Reference< sheet::XSpreadsheetDocument > xTargetDoc(init(), UNO_QUERY_THROW);
-
-  OUString aFileURL = getTestURL();
-
-  uno::Reference< style::XStyleFamiliesSupplier > xFamilySupplier (xTargetDoc, UNO_QUERY_THROW);
-  uno::Reference< style::XStyleLoader > xTargetStyleLoader (xFamilySupplier->getStyleFamilies(), UNO_QUERY_THROW);
-
-  uno::Sequence< beans::PropertyValue > aOptions = xTargetStyleLoader->getStyleLoaderOptions();
-
-  xTargetStyleLoader->loadStylesFromURL(aFileURL, aOptions);
-
-  checkStyleProperties(xFamilySupplier);
-
-}
-
-void XStyleLoader::testLoadStylesFromDocument()
-{
-
-  uno::Reference< sheet::XSpreadsheetDocument > xTargetDoc(init(), UNO_QUERY_THROW);
-
-  uno::Reference< lang::XComponent > xSourceDoc (getSourceComponent(), UNO_QUERY_THROW);
-
-  uno::Reference< style::XStyleFamiliesSupplier > xFamilySupplier (xTargetDoc, UNO_QUERY_THROW);
-  uno::Reference< style::XStyleLoader2 > xTargetStyleLoader (xFamilySupplier->getStyleFamilies(), UNO_QUERY_THROW);
-
-  uno::Sequence< beans::PropertyValue > aOptions = xTargetStyleLoader->getStyleLoaderOptions();
-
-  xTargetStyleLoader->loadStylesFromDocument(xSourceDoc, aOptions);
-
-  checkStyleProperties(xFamilySupplier);
-
-}
-
-void XStyleLoader::checkStyleProperties( uno::Reference< style::XStyleFamiliesSupplier > const & xFamilySupplier)
-{
-    // check if targetDocument has myStyle
-  uno::Reference< container::XNameAccess > xFamilies(xFamilySupplier->getStyleFamilies(), UNO_QUERY_THROW);
-  uno::Reference< container::XNameContainer > xCellStyles(xFamilies->getByName("CellStyles"), UNO_QUERY_THROW);
-
-  CPPUNIT_ASSERT_MESSAGE("Style not imported", xCellStyles->hasByName("myStyle"));
-
-  // test the backgroundcolor is correctly imported
-  uno::Reference< style::XStyle > xMyStyle (xCellStyles->getByName("myStyle"), UNO_QUERY_THROW);
-  uno::Reference< beans::XPropertySet > xPropSet (xMyStyle, UNO_QUERY_THROW);
-
-  uno::Any aBackColor = xPropSet->getPropertyValue("CellBackColor");
-  uno::Any expectedBackColor(sal_Int32(16724787));
-
-  CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong CellBackColor" , expectedBackColor, aBackColor);
-
-  // test default pageStyle
-
-  uno::Reference< container::XNameContainer > xPageStyles(xFamilies->getByName("PageStyles"), UNO_QUERY_THROW);
-  uno::Reference<beans::XPropertySet> xPagePropSet(xPageStyles->getByName("Default"), UNO_QUERY_THROW);
-
-  uno::Any aPageBackColor = xPagePropSet->getPropertyValue("BackColor");
-  uno::Any expectedPageBackColor(sal_Int32(13434879));
-
-  CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong page style BackColor" , expectedPageBackColor, aPageBackColor);
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/source/style/xstyleloader.cxx b/test/source/style/xstyleloader.cxx
new file mode 100644
index 000000000000..5b684eab16a8
--- /dev/null
+++ b/test/source/style/xstyleloader.cxx
@@ -0,0 +1,93 @@
+/* -*- 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 <test/style/xstyleloader.hxx>
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
+#include <com/sun/star/style/XStyle.hpp>
+#include <com/sun/star/style/XStyleLoader2.hpp>
+
+#include <com/sun/star/uno/Reference.hxx>
+#include <com/sun/star/uno/Sequence.hxx>
+
+#include <rtl/ustring.hxx>
+#include <cppunit/extensions/HelperMacros.h>
+
+using namespace css;
+using namespace css::uno;
+
+namespace apitest
+{
+void XStyleLoader::testLoadStylesFromURL()
+{
+    uno::Reference<style::XStyleLoader2> xStyleLoader(init(), uno::UNO_QUERY_THROW);
+
+    uno::Reference<sheet::XSpreadsheetDocument> xDoc(getTargetDoc(), uno::UNO_QUERY_THROW);
+    const OUString aFileURL = getTestURL();
+
+    uno::Sequence<beans::PropertyValue> aOptions = xStyleLoader->getStyleLoaderOptions();
+    xStyleLoader->loadStylesFromURL(aFileURL, aOptions);
+
+    uno::Reference<style::XStyleFamiliesSupplier> xFamilySupplier(xDoc, UNO_QUERY_THROW);
+    checkStyleProperties(xFamilySupplier);
+}
+
+void XStyleLoader::testLoadStylesFromDocument()
+{
+    uno::Reference<style::XStyleLoader2> xStyleLoader(init(), uno::UNO_QUERY_THROW);
+
+    uno::Reference<sheet::XSpreadsheetDocument> xDoc(getTargetDoc(), uno::UNO_QUERY_THROW);
+    uno::Reference<lang::XComponent> xSrcComponent(getSourceComponent(), UNO_QUERY_THROW);
+
+    uno::Sequence<beans::PropertyValue> aOptions = xStyleLoader->getStyleLoaderOptions();
+    xStyleLoader->loadStylesFromDocument(xSrcComponent, aOptions);
+
+    uno::Reference<style::XStyleFamiliesSupplier> xFamilySupplier(xDoc, UNO_QUERY_THROW);
+    checkStyleProperties(xFamilySupplier);
+}
+
+void XStyleLoader::checkStyleProperties(
+    uno::Reference<style::XStyleFamiliesSupplier> const& xFamilySupplier)
+{
+    // check if targetDocument has myStyle
+    uno::Reference<container::XNameAccess> xFamilies(xFamilySupplier->getStyleFamilies(),
+                                                     UNO_QUERY_THROW);
+    uno::Reference<container::XNameContainer> xCellStyles(xFamilies->getByName("CellStyles"),
+                                                          UNO_QUERY_THROW);
+
+    CPPUNIT_ASSERT_MESSAGE("Style not imported", xCellStyles->hasByName("myStyle"));
+
+    // test the backgroundcolor is correctly imported
+    uno::Reference<style::XStyle> xMyStyle(xCellStyles->getByName("myStyle"), UNO_QUERY_THROW);
+    uno::Reference<beans::XPropertySet> xPropSet(xMyStyle, UNO_QUERY_THROW);
+
+    uno::Any aBackColor = xPropSet->getPropertyValue("CellBackColor");
+    uno::Any expectedBackColor(sal_Int32(16724787));
+
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong CellBackColor", expectedBackColor, aBackColor);
+
+    // test default pageStyle
+
+    uno::Reference<container::XNameContainer> xPageStyles(xFamilies->getByName("PageStyles"),
+                                                          UNO_QUERY_THROW);
+    uno::Reference<beans::XPropertySet> xPagePropSet(xPageStyles->getByName("Default"),
+                                                     UNO_QUERY_THROW);
+
+    uno::Any aPageBackColor = xPagePropSet->getPropertyValue("BackColor");
+    uno::Any expectedPageBackColor(sal_Int32(13434879));
+
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong page style BackColor", expectedPageBackColor,
+                                 aPageBackColor);
+}
+
+} // namespace apitest
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list