[Libreoffice-commits] core.git: include/test sw/CppunitTest_sw_apitests.mk sw/qa test/Library_subsequenttest.mk test/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Tue Mar 19 07:38:57 UTC 2019
include/test/text/baseindex.hxx | 28 +++++
include/test/text/textdocumentindex.hxx | 31 +++++
include/test/text/textdocumentsettings.hxx | 29 +++++
include/test/text/textprintersettings.hxx | 31 +++++
include/test/text/textsettings.hxx | 26 ++++
include/test/text/xdocumentindex.hxx | 36 ++++++
sw/CppunitTest_sw_apitests.mk | 2
sw/qa/api/ApiTestBase.hxx | 57 ----------
sw/qa/api/BaseIndexTest.hxx | 161 -----------------------------
sw/qa/api/DocumentIndexTest.hxx | 47 --------
sw/qa/api/DocumentSettingsTest.hxx | 47 --------
sw/qa/api/PrinterSettingsTest.hxx | 79 --------------
sw/qa/api/SettingsTest.hxx | 137 ------------------------
sw/qa/api/SwXDocumentIndex.cxx | 50 +++++----
sw/qa/api/SwXDocumentSettings.cxx | 31 ++---
sw/qa/api/XDocumentIndexTest.hxx | 85 ---------------
sw/qa/api/XTextContentTest.hxx | 61 ----------
test/Library_subsequenttest.mk | 6 +
test/source/text/baseindex.cxx | 153 +++++++++++++++++++++++++++
test/source/text/textdocumentindex.cxx | 36 ++++++
test/source/text/textdocumentsettings.cxx | 42 +++++++
test/source/text/textprintersettings.cxx | 39 +++++++
test/source/text/textsettings.cxx | 153 +++++++++++++++++++++++++++
test/source/text/xdocumentindex.cxx | 67 ++++++++++++
24 files changed, 724 insertions(+), 710 deletions(-)
New commits:
commit 3428ca9c3b98c275bbcd852e733aa42eef89bdd2
Author: Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>
AuthorDate: Sat Mar 16 15:21:43 2019 +0100
Commit: Björn Michaelsen <bjoern.michaelsen at libreoffice.org>
CommitDate: Tue Mar 19 08:38:34 2019 +0100
name apitest suites consistently while we still can
- writer test apitest suites are now called like the UNO implementation they
are testing
- also mark them final for good measure
- move tests to module test and try to match its conventions
* BaseIndex
* TextDocumentIndex
* TextDocumentSettings
* TextPrinterSettings
* TextSettings
* XDocumentIndex
- also remove anonymous namespace in header, as that is a bad idea
- also remove now obsolete ApiBaseTest
- also remove dead code in TextPrinterSettings
- remove writer xtextcontent test as it duplicates the impl in module test
Change-Id: I71aa5f3755d5c90726f4ff4394117fa2391495d7
Reviewed-on: https://gerrit.libreoffice.org/69374
Tested-by: Jenkins
Reviewed-by: Björn Michaelsen <bjoern.michaelsen at libreoffice.org>
diff --git a/include/test/text/baseindex.hxx b/include/test/text/baseindex.hxx
new file mode 100644
index 000000000000..2c8d2734fa57
--- /dev/null
+++ b/include/test/text/baseindex.hxx
@@ -0,0 +1,28 @@
+/* -*- 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_TEXT_BASEINDEXTEST_HXX
+#define INCLUDED_TEST_TEXT_BASEINDEXTEST_HXX
+
+#include <test/testdllapi.hxx>
+
+namespace apitest
+{
+class OOO_DLLPUBLIC_TEST BaseIndex
+{
+public:
+ virtual css::uno::Reference<css::uno::XInterface> init() = 0;
+ virtual ~BaseIndex();
+ void testBaseIndexProperties();
+};
+}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/test/text/textdocumentindex.hxx b/include/test/text/textdocumentindex.hxx
new file mode 100644
index 000000000000..d045954018d2
--- /dev/null
+++ b/include/test/text/textdocumentindex.hxx
@@ -0,0 +1,31 @@
+/* -*- 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_TEXT_DOCUMENTINDEXTEST_HXX
+#define INCLUDED_TEST_TEXT_DOCUMENTINDEXTEST_HXX
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+
+#include <test/unoapi_property_testers.hxx>
+#include <test/testdllapi.hxx>
+
+namespace apitest
+{
+class OOO_DLLPUBLIC_TEST TextDocumentIndex
+{
+public:
+ virtual css::uno::Reference<css::uno::XInterface> init() = 0;
+ virtual ~TextDocumentIndex();
+ void testDocumentIndexProperties();
+};
+}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/test/text/textdocumentsettings.hxx b/include/test/text/textdocumentsettings.hxx
new file mode 100644
index 000000000000..e7a28a2f158f
--- /dev/null
+++ b/include/test/text/textdocumentsettings.hxx
@@ -0,0 +1,29 @@
+/* -*- 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_TEXT_TEXTDOCUMENTSETTINGS_HXX
+#define INCLUDED_TEST_TEXT_TEXTDOCUMENTSETTINGS_HXX
+
+#include <com/sun/star/uno/Reference.hxx>
+#include <test/testdllapi.hxx>
+
+namespace apitest
+{
+class OOO_DLLPUBLIC_TEST TextDocumentSettings
+{
+public:
+ virtual css::uno::Reference<css::uno::XInterface> init() = 0;
+ virtual ~TextDocumentSettings();
+ void testDocumentSettingsProperties();
+};
+} // end namespace apitest
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/test/text/textprintersettings.hxx b/include/test/text/textprintersettings.hxx
new file mode 100644
index 000000000000..a0508aa6b304
--- /dev/null
+++ b/include/test/text/textprintersettings.hxx
@@ -0,0 +1,31 @@
+/* -*- 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_TEXT_TEXTPRINTERSETTINGS_HXX
+#define INCLUDED_TEST_TEXT_TEXTPRINTERSETTINGS_HXX
+
+#include <test/unoapi_property_testers.hxx>
+#include <test/testdllapi.hxx>
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+
+namespace apitest
+{
+class OOO_DLLPUBLIC_TEST TextPrinterSettings
+{
+public:
+ virtual css::uno::Reference<css::uno::XInterface> init() = 0;
+ virtual ~TextPrinterSettings();
+ void testPrinterSettingsProperties();
+};
+} // end namespace apitest
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/test/text/textsettings.hxx b/include/test/text/textsettings.hxx
new file mode 100644
index 000000000000..960692040ae7
--- /dev/null
+++ b/include/test/text/textsettings.hxx
@@ -0,0 +1,26 @@
+/* -*- 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_TEXT_TEXTSETTINGS_HXX
+#define INCLUDED_TEST_TEXT_TEXTSETTINGS_HXX
+
+namespace apitest
+{
+class OOO_DLLPUBLIC_TEST TextSettings
+{
+public:
+ virtual css::uno::Reference<css::uno::XInterface> init() = 0;
+ virtual ~TextSettings();
+ void testSettingsProperties();
+};
+} // end namespace apitest
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/test/text/xdocumentindex.hxx b/include/test/text/xdocumentindex.hxx
new file mode 100644
index 000000000000..4efdaeeec68a
--- /dev/null
+++ b/include/test/text/xdocumentindex.hxx
@@ -0,0 +1,36 @@
+/* -*- 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_TEST_XDOCUMENTINDEX_HXX
+#define INCLUDED_TEST_TEST_XDOCUMENTINDEX_HXX
+
+#include <com/sun/star/text/XTextDocument.hpp>
+
+#include <test/testdllapi.hxx>
+
+namespace apitest
+{
+/**
+ * Testing <code>com.sun.star.text.XDocumentIndex</code>
+ *
+ * @see com.sun.star.text.XDocumentIndex
+ */
+class OOO_DLLPUBLIC_TEST XDocumentIndex
+{
+public:
+ virtual css::uno::Reference<css::uno::XInterface> init() = 0;
+ virtual css::uno::Reference<css::text::XTextDocument> getTextDocument() = 0;
+ virtual ~XDocumentIndex();
+ void testUpdate();
+};
+}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/CppunitTest_sw_apitests.mk b/sw/CppunitTest_sw_apitests.mk
index 1f850da50efc..ca2c919e0aa6 100644
--- a/sw/CppunitTest_sw_apitests.mk
+++ b/sw/CppunitTest_sw_apitests.mk
@@ -15,7 +15,7 @@ $(eval $(call gb_CppunitTest_use_external,sw_apitests,boost_headers))
$(eval $(call gb_CppunitTest_add_exception_objects,sw_apitests, \
sw/qa/api/SwXDocumentIndex \
- sw/qa/api/DocumentSettings \
+ sw/qa/api/SwXDocumentSettings \
sw/qa/api/SwXTextTable \
))
diff --git a/sw/qa/api/ApiTestBase.hxx b/sw/qa/api/ApiTestBase.hxx
deleted file mode 100644
index 4abf53eb2462..000000000000
--- a/sw/qa/api/ApiTestBase.hxx
+++ /dev/null
@@ -1,57 +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_SW_QA_CORE_APITESTBASE_HXX
-#define INCLUDED_SW_QA_CORE_APITESTBASE_HXX
-
-#include <com/sun/star/uno/XInterface.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/XPropertySetInfo.hpp>
-#include <com/sun/star/beans/PropertyAttribute.hpp>
-
-namespace apitest
-{
-class ApiTestBase
-{
-protected:
- static bool extstsProperty(css::uno::Reference<css::beans::XPropertySet> const& rxPropertySet,
- OUString const& rPropertyName)
- {
- css::uno::Reference<css::beans::XPropertySetInfo> xPropertySetInfo(
- rxPropertySet->getPropertySetInfo());
- return xPropertySetInfo->hasPropertyByName(rPropertyName);
- }
-
- static bool
- isPropertyReadOnly(css::uno::Reference<css::beans::XPropertySet> const& rxPropertySet,
- OUString const& rPropertyName)
- {
- css::uno::Reference<css::beans::XPropertySetInfo> xPropertySetInfo(
- rxPropertySet->getPropertySetInfo());
- css::uno::Sequence<css::beans::Property> xProperties = xPropertySetInfo->getProperties();
-
- for (auto const& rProperty : xProperties)
- {
- if (rProperty.Name == rPropertyName)
- return (rProperty.Attributes & com::sun::star::beans::PropertyAttribute::READONLY)
- != 0;
- }
-
- return false;
- }
-
- virtual ~ApiTestBase() {}
-
- virtual css::uno::Reference<css::uno::XInterface> init() = 0;
-};
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/qa/api/BaseIndexTest.hxx b/sw/qa/api/BaseIndexTest.hxx
deleted file mode 100644
index cfad380ca493..000000000000
--- a/sw/qa/api/BaseIndexTest.hxx
+++ /dev/null
@@ -1,161 +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_SW_QA_API_BASEINDEXTEST_HXX
-#define INCLUDED_SW_QA_API_BASEINDEXTEST_HXX
-
-#include "ApiTestBase.hxx"
-
-#include <cppunit/TestAssert.h>
-#include <test/unoapi_property_testers.hxx>
-
-#include <com/sun/star/beans/XPropertySet.hpp>
-
-#include <com/sun/star/text/XTextColumns.hpp>
-#include <com/sun/star/text/XTextSection.hpp>
-#include <com/sun/star/graphic/XGraphic.hpp>
-
-#include <vcl/BitmapTools.hxx>
-#include <vcl/graph.hxx>
-#include <vcl/pngwrite.hxx>
-#include <unotools/tempfile.hxx>
-#include <tools/stream.hxx>
-
-namespace apitest
-{
-namespace
-{
-BitmapEx createExampleBitmap()
-{
- vcl::bitmap::RawBitmap aRawBitmap(Size(4, 4), 24);
- aRawBitmap.SetPixel(0, 0, COL_LIGHTBLUE);
- aRawBitmap.SetPixel(0, 1, COL_LIGHTGREEN);
- aRawBitmap.SetPixel(1, 0, COL_LIGHTRED);
- aRawBitmap.SetPixel(1, 1, COL_LIGHTMAGENTA);
- return vcl::bitmap::CreateFromData(std::move(aRawBitmap));
-}
-
-void writerFileWithBitmap(OUString const& rURL)
-{
- BitmapEx aBitmapEx = createExampleBitmap();
- SvFileStream aFileStream(rURL, StreamMode::READ | StreamMode::WRITE);
- vcl::PNGWriter aWriter(aBitmapEx);
- aWriter.Write(aFileStream);
- aFileStream.Seek(STREAM_SEEK_TO_BEGIN);
- aFileStream.Close();
-}
-
-} // end anonymous namespace
-
-class BaseIndexTest : public ApiTestBase
-{
-public:
- void testBaseIndexProperties()
- {
- css::uno::Reference<css::beans::XPropertySet> xBaseIndex(init(), css::uno::UNO_QUERY_THROW);
- testStringProperty(xBaseIndex, "Title", "Value");
- testBooleanProperty(xBaseIndex, "IsProtected");
-
- testStringProperty(xBaseIndex, "ParaStyleHeading", "Value");
- testStringProperty(xBaseIndex, "ParaStyleLevel1", "Value");
- testStringOptionalProperty(xBaseIndex, "ParaStyleLevel2");
- testStringOptionalProperty(xBaseIndex, "ParaStyleLevel3");
- testStringOptionalProperty(xBaseIndex, "ParaStyleLevel4");
- testStringOptionalProperty(xBaseIndex, "ParaStyleLevel5");
- testStringOptionalProperty(xBaseIndex, "ParaStyleLevel6");
- testStringOptionalProperty(xBaseIndex, "ParaStyleLevel7");
- testStringOptionalProperty(xBaseIndex, "ParaStyleLevel8");
- testStringOptionalProperty(xBaseIndex, "ParaStyleLevel9");
- testStringOptionalProperty(xBaseIndex, "ParaStyleLevel10");
- testStringOptionalProperty(xBaseIndex, "ParaStyleSeparator");
-
- // [property] XTextColumns TextColumns;
- {
- OUString name = "TextColumns";
-
- css::uno::Reference<css::text::XTextColumns> xGetTextColumns;
- CPPUNIT_ASSERT(xBaseIndex->getPropertyValue(name) >>= xGetTextColumns);
-
- xGetTextColumns->setColumnCount(xGetTextColumns->getColumnCount() + 1);
- xBaseIndex->setPropertyValue(name, css::uno::makeAny(xGetTextColumns));
-
- css::uno::Reference<css::text::XTextColumns> xSetTextColumns;
- CPPUNIT_ASSERT(xBaseIndex->getPropertyValue(name) >>= xSetTextColumns);
-
- //CPPUNIT_ASSERT_EQUAL(xGetTextColumns->getColumnCount(), xSetTextColumns->getColumnCount());
- }
-
- // [property] com::sun::star::graphic::XGraphic BackGraphic;
- // [property] string BackGraphicURL;
- {
- OUString name = "BackGraphicURL";
- bool bOK = false;
- try
- {
- xBaseIndex->getPropertyValue(name);
- }
- catch (css::uno::RuntimeException const& /*ex*/)
- {
- bOK = true;
- }
- // BackGraphicURL is "set-only" attribute
- CPPUNIT_ASSERT_MESSAGE("Expected RuntimeException wasn't thrown", bOK);
-
- utl::TempFile aTempFile;
- aTempFile.EnableKillingFile();
- writerFileWithBitmap(aTempFile.GetURL());
-
- css::uno::Reference<css::graphic::XGraphic> xGraphic;
- CPPUNIT_ASSERT(xBaseIndex->getPropertyValue("BackGraphic") >>= xGraphic);
- CPPUNIT_ASSERT(!xGraphic.is());
-
- xBaseIndex->setPropertyValue(name, css::uno::makeAny(aTempFile.GetURL()));
-
- CPPUNIT_ASSERT(xBaseIndex->getPropertyValue("BackGraphic") >>= xGraphic);
- CPPUNIT_ASSERT(xGraphic.is());
- }
-
- testStringProperty(xBaseIndex, "BackGraphicFilter", "Value");
-
- // [property] com::sun::star::style::GraphicLocation BackGraphicLocation;
-
- testColorProperty(xBaseIndex, "BackColor");
- testBooleanProperty(xBaseIndex, "BackTransparent");
-
- // [optional, property] com::sun::star::container::XIndexReplace LevelFormat;
-
- testBooleanOptionalProperty(xBaseIndex, "CreateFromChapter");
-
- // [property] com::sun::star::text::XTextSection ContentSection;
- {
- OUString name = "ContentSection";
-
- css::uno::Reference<css::text::XTextSection> xGetTextSection;
- CPPUNIT_ASSERT_MESSAGE(name.toUtf8().getStr(),
- xBaseIndex->getPropertyValue(name) >>= xGetTextSection);
- CPPUNIT_ASSERT_EQUAL_MESSAGE(name.toUtf8().getStr(), OUString(""),
- xGetTextSection->getAnchor()->getString());
- }
-
- // [property] com::sun::star::text::XTextSection HeaderSection;
- {
- OUString name = "HeaderSection";
-
- css::uno::Reference<css::text::XTextSection> xGetTextSection;
- if (xBaseIndex->getPropertyValue(name).hasValue())
- CPPUNIT_ASSERT_MESSAGE(name.toUtf8().getStr(),
- xBaseIndex->getPropertyValue(name) >>= xGetTextSection);
- }
- }
-};
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/qa/api/DocumentIndexTest.hxx b/sw/qa/api/DocumentIndexTest.hxx
deleted file mode 100644
index 67804388c47d..000000000000
--- a/sw/qa/api/DocumentIndexTest.hxx
+++ /dev/null
@@ -1,47 +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_SW_QA_API_DOCUMENTINDEXTEST_HXX
-#define INCLUDED_SW_QA_API_DOCUMENTINDEXTEST_HXX
-
-#include "ApiTestBase.hxx"
-
-#include <cppunit/TestAssert.h>
-#include <test/unoapi_property_testers.hxx>
-
-#include <com/sun/star/beans/XPropertySet.hpp>
-
-namespace apitest
-{
-class DocumentIndexTest : public ApiTestBase
-{
-public:
- void testDocumentIndexProperties()
- {
- css::uno::Reference<css::beans::XPropertySet> xDocumnetIndex(init(),
- css::uno::UNO_QUERY_THROW);
-
- testBooleanProperty(xDocumnetIndex, "UseAlphabeticalSeparators");
- testBooleanProperty(xDocumnetIndex, "UseKeyAsEntry");
- testBooleanProperty(xDocumnetIndex, "UseCombinedEntries");
- testBooleanProperty(xDocumnetIndex, "IsCaseSensitive");
- testBooleanProperty(xDocumnetIndex, "UsePP");
- testBooleanProperty(xDocumnetIndex, "UseDash");
- testBooleanProperty(xDocumnetIndex, "UseUpperCase");
- testStringOptionalProperty(xDocumnetIndex, "MainEntryCharacterStyleName");
- // [readonly, property] sequence <com::sun::star::text::XDocumentIndexMark> DocumentIndexMarks;
- // [property] com::sun::star::lang::Locale Locale;
- testStringProperty(xDocumnetIndex, "SortAlgorithm", "Value");
- }
-};
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/qa/api/DocumentSettingsTest.hxx b/sw/qa/api/DocumentSettingsTest.hxx
deleted file mode 100644
index 4abd8d197d35..000000000000
--- a/sw/qa/api/DocumentSettingsTest.hxx
+++ /dev/null
@@ -1,47 +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_SW_QA_API_DOCUMENTSETTINGSTEST_HXX
-#define INCLUDED_SW_QA_API_DOCUMENTSETTINGSTEST_HXX
-
-#include "ApiTestBase.hxx"
-
-#include <cppunit/TestAssert.h>
-#include <test/unoapi_property_testers.hxx>
-
-#include <com/sun/star/beans/XPropertySet.hpp>
-
-namespace apitest
-{
-class DocumentSettingsTest : public ApiTestBase
-{
-public:
- void testDocumentSettingsProperties()
- {
- css::uno::Reference<css::beans::XPropertySet> xDocumentSettings(init(),
- css::uno::UNO_QUERY_THROW);
-
- testBooleanOptionalProperty(xDocumentSettings, "ChartAutoUpdate");
- testBooleanOptionalProperty(xDocumentSettings, "AddParaTableSpacing");
- testBooleanOptionalProperty(xDocumentSettings, "AddParaTableSpacingAtStart");
- testBooleanOptionalProperty(xDocumentSettings, "AlignTabStopPosition");
- testBooleanOptionalProperty(xDocumentSettings, "SaveGlobalDocumentLinks");
- testBooleanOptionalProperty(xDocumentSettings, "IsLabelDocument");
- testBooleanOptionalProperty(xDocumentSettings, "UseFormerLineSpacing");
- testBooleanOptionalProperty(xDocumentSettings, "AddParaSpacingToTableCells");
- testBooleanOptionalProperty(xDocumentSettings, "UseFormerObjectPositioning");
- testBooleanOptionalProperty(xDocumentSettings, "ConsiderTextWrapOnObjPos");
- testBooleanOptionalProperty(xDocumentSettings, "MathBaselineAlignment");
- }
-};
-} // end namespace apitest
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/qa/api/PrinterSettingsTest.hxx b/sw/qa/api/PrinterSettingsTest.hxx
deleted file mode 100644
index 8d93564c20ea..000000000000
--- a/sw/qa/api/PrinterSettingsTest.hxx
+++ /dev/null
@@ -1,79 +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_SW_QA_API_PRINTERSETTINGSTEST_HXX
-#define INCLUDED_SW_QA_API_PRINTERSETTINGSTEST_HXX
-
-#include "ApiTestBase.hxx"
-
-#include <cppunit/TestAssert.h>
-#include <test/unoapi_property_testers.hxx>
-
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/text/NotePrintMode.hpp>
-
-namespace apitest
-{
-class PrinterSettingsTest : public ApiTestBase
-{
- static void
- testPrintAnnotationMode(css::uno::Reference<css::beans::XPropertySet> const& rxPrinterSettings)
- {
- const OUString rPropertyName = "PrintAnnotationMode";
-
- // This property is not optional but it's not set in some cases
- if (!extstsProperty(rxPrinterSettings, rPropertyName))
- return;
-
- /*css::text::NotePrintMode aNotePrintMode_Get;
-
- CPPUNIT_ASSERT_MESSAGE("Unable to get PropertyValue",
- rxPrinterSettings->getPropertyValue(rPropertyName)
- >>= aNotePrintMode_Get);
-
- css::text::NotePrintMode aNotePrintMode_Set;
- css::uno::Any aNewValue;
- aNewValue <<= css::text::NotePrintMode_ONLY;
- rxPrinterSettings->setPropertyValue(rPropertyName, aNewValue);
-
- CPPUNIT_ASSERT_MESSAGE("Unable to get PropertyValue",
- rxPrinterSettings->getPropertyValue(rPropertyName)
- >>= aNotePrintMode_Set);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Unable to set PropertyValue", css::text::NotePrintMode_ONLY,
- aNotePrintMode_Set);*/
- }
-
-public:
- void testPrinterSettingsProperties()
- {
- css::uno::Reference<css::beans::XPropertySet> xPrinterSettings(init(),
- css::uno::UNO_QUERY_THROW);
-
- testBooleanProperty(xPrinterSettings, "PrintGraphics");
- testBooleanProperty(xPrinterSettings, "PrintTables");
- testBooleanProperty(xPrinterSettings, "PrintDrawings");
- testBooleanProperty(xPrinterSettings, "PrintLeftPages");
- testBooleanProperty(xPrinterSettings, "PrintRightPages");
- testBooleanProperty(xPrinterSettings, "PrintControls");
- testBooleanProperty(xPrinterSettings, "PrintReversed");
- testBooleanProperty(xPrinterSettings, "PrintControls");
- testStringProperty(xPrinterSettings, "PrintFaxName", "FaxName");
- testPrintAnnotationMode(
- xPrinterSettings); // it's not set in this case but it's not optional - bug?
- testBooleanProperty(xPrinterSettings, "PrintProspect");
- testBooleanProperty(xPrinterSettings, "PrintPageBackground");
- testBooleanProperty(xPrinterSettings, "PrintBlackFonts");
- testBooleanOptionalProperty(xPrinterSettings, "PrintEmptyPages");
- }
-};
-} // end namespace apitest
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/qa/api/SettingsTest.hxx b/sw/qa/api/SettingsTest.hxx
deleted file mode 100644
index 48e236d6160f..000000000000
--- a/sw/qa/api/SettingsTest.hxx
+++ /dev/null
@@ -1,137 +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_SW_QA_API_SETTINGSTEST_HXX
-#define INCLUDED_SW_QA_API_SETTINGSTEST_HXX
-
-#include "ApiTestBase.hxx"
-
-#include <cppunit/TestAssert.h>
-#include <test/unoapi_property_testers.hxx>
-
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/i18n/XForbiddenCharacters.hpp>
-
-namespace apitest
-{
-class SettingsTest : public ApiTestBase
-{
- // [property] string PrinterName;
- static void testPrinterName(css::uno::Reference<css::beans::XPropertySet> const& rxSettings)
- {
- const OUString rPropertyName("PrinterName");
-
- if (!extstsProperty(rxSettings, rPropertyName))
- return; // Property is sometimes not set - bug? it is not defined as optional
-
- OUString aPrinterName_Get;
-
- CPPUNIT_ASSERT_MESSAGE("Unable to get PropertyValue",
- rxSettings->getPropertyValue(rPropertyName) >>= aPrinterName_Get);
-
- OUString aPrinterName_Set;
- css::uno::Any aNewValue;
- aNewValue <<= aPrinterName_Get;
- rxSettings->setPropertyValue(rPropertyName, aNewValue);
-
- CPPUNIT_ASSERT_MESSAGE("Unable to get PropertyValue",
- rxSettings->getPropertyValue(rPropertyName) >>= aPrinterName_Set);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Unable to set PropertyValue", aPrinterName_Get,
- aPrinterName_Set);
- }
-
- // [optional, property] short PrinterIndependentLayout;
- static void
- testPrinterIndependentLayout(css::uno::Reference<css::beans::XPropertySet> const& rxSettings)
- {
- const OUString rPropertyName("PrinterIndependentLayout");
-
- if (!extstsProperty(rxSettings, rPropertyName))
- return; // Property is optional
-
- sal_Int16 aValue_Get;
-
- CPPUNIT_ASSERT_MESSAGE("Unable to get PropertyValue",
- rxSettings->getPropertyValue(rPropertyName) >>= aValue_Get);
-
- sal_Int16 aValue_New;
- aValue_New = (aValue_Get == 1 ? 3 : 1);
- rxSettings->setPropertyValue(rPropertyName, css::uno::Any(aValue_New));
-
- sal_Int16 aValue_Set;
-
- CPPUNIT_ASSERT_MESSAGE("Unable to get PropertyValue",
- rxSettings->getPropertyValue(rPropertyName) >>= aValue_Set);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Unable to set PropertyValue", aValue_New, aValue_Set);
- }
-
- // [optional, property] com::sun::star::i18n::XForbiddenCharacters ForbiddenCharacters;
- static void
- testForbiddenCharacters(css::uno::Reference<css::beans::XPropertySet> const& rxSettings)
- {
- const OUString rPropertyName("ForbiddenCharacters");
-
- if (!extstsProperty(rxSettings, rPropertyName))
- return; // Property is optional
-
- CPPUNIT_ASSERT_MESSAGE("Property is read-only but shouldn't be",
- !isPropertyReadOnly(rxSettings, rPropertyName));
-
- css::uno::Reference<css::i18n::XForbiddenCharacters> aValue_Get;
-
- CPPUNIT_ASSERT_MESSAGE("Unable to get PropertyValue",
- rxSettings->getPropertyValue(rPropertyName) >>= aValue_Get);
- CPPUNIT_ASSERT_MESSAGE("Empty reference to XForbiddenCharacters", aValue_Get.is());
- }
-
-public:
- void testSettingsProperties()
- {
- css::uno::Reference<css::beans::XPropertySet> xSettings(init(), css::uno::UNO_QUERY_THROW);
-
- testForbiddenCharacters(xSettings);
- //testShortOptionalProperty(xSettings, "LinkUpdateMode");
- testPrinterName(xSettings);
- // [property] sequence< byte > PrinterSetup;
- testBooleanOptionalProperty(xSettings, "IsKernAsianPunctuation");
- //testShortOptionalProperty(xSettings, "CharacterCompressionType");
- testBooleanOptionalProperty(xSettings, "ApplyUserData");
- testBooleanOptionalProperty(xSettings, "SaveVersionOnClose");
- testBooleanOptionalProperty(xSettings, "UpdateFromTemplate");
- testBooleanOptionalProperty(xSettings, "FieldAutoUpdate");
- testStringOptionalProperty(xSettings, "CurrentDatabaseDataSource");
- testStringOptionalProperty(xSettings, "CurrentDatabaseCommand");
- testLongOptionalProperty(xSettings, "CurrentDatabaseCommandType");
- testLongOptionalProperty(xSettings, "DefaultTabStop");
- testBooleanOptionalProperty(xSettings, "IsPrintBooklet");
- testBooleanOptionalProperty(xSettings, "IsPrintBookletFront");
- testBooleanOptionalProperty(xSettings, "IsPrintBookletBack");
- testLongOptionalProperty(xSettings, "PrintQuality");
- testStringOptionalProperty(xSettings, "ColorTableURL");
- testStringOptionalProperty(xSettings, "DashTableURL");
- testStringOptionalProperty(xSettings, "LineEndTableURL");
- testStringOptionalProperty(xSettings, "HatchTableURL");
- testStringOptionalProperty(xSettings, "GradientTableURL");
- testStringOptionalProperty(xSettings, "BitmapTableURL");
- testBooleanOptionalProperty(xSettings, "AutoCalculate");
- testPrinterIndependentLayout(xSettings);
- testBooleanOptionalProperty(xSettings, "AddExternalLeading");
- testBooleanOptionalProperty(xSettings, "EmbedFonts");
- testBooleanOptionalProperty(xSettings, "EmbedSystemFonts");
- testBooleanOptionalProperty(xSettings, "EmbedOnlyUsedFonts");
- testBooleanOptionalProperty(xSettings, "EmbedLatinScriptFonts");
- testBooleanOptionalProperty(xSettings, "EmbedAsianScriptFonts");
- testBooleanOptionalProperty(xSettings, "EmbedComplexScriptFonts");
- }
-};
-} // end namespace apitest
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/qa/api/SwXDocumentIndex.cxx b/sw/qa/api/SwXDocumentIndex.cxx
index 74530d4712f4..b04ba82875cb 100644
--- a/sw/qa/api/SwXDocumentIndex.cxx
+++ b/sw/qa/api/SwXDocumentIndex.cxx
@@ -7,14 +7,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
-#include "BaseIndexTest.hxx"
-#include "DocumentIndexTest.hxx"
-#include "XDocumentIndexTest.hxx"
-#include "XTextContentTest.hxx"
-
#include <test/bootstrapfixture.hxx>
#include <test/lang/xserviceinfo.hxx>
#include <test/lang/xcomponent.hxx>
+#include <test/text/baseindex.hxx>
+#include <test/text/textdocumentindex.hxx>
+#include <test/text/xdocumentindex.hxx>
+#include <test/text/xtextcontent.hxx>
#include <unotest/macros_test.hxx>
#include <com/sun/star/frame/Desktop.hpp>
@@ -26,6 +25,7 @@
#include <com/sun/star/text/XTextContent.hpp>
#include <com/sun/star/text/XText.hpp>
#include <com/sun/star/text/XTextCursor.hpp>
+#include <com/sun/star/text/XTextRange.hpp>
#include <com/sun/star/text/XDocumentIndex.hpp>
#include <comphelper/processfactory.hxx>
@@ -37,29 +37,34 @@ namespace
/**
* Test for Java API test of file com.sun.star.comp.office.SwXDocumentIndex.csv
*/
-class SwXDocumentIndexTest : public test::BootstrapFixture,
- public unotest::MacrosTest,
- public apitest::XDocumentIndexTest,
- public apitest::BaseIndexTest,
- public apitest::DocumentIndexTest,
- public apitest::XTextContentTest,
- public apitest::XServiceInfo,
- public apitest::XComponent
+class SwXDocumentIndex final : public test::BootstrapFixture,
+ public unotest::MacrosTest,
+ public apitest::XDocumentIndex,
+ public apitest::BaseIndex,
+ public apitest::TextDocumentIndex,
+ public apitest::XTextContent,
+ public apitest::XServiceInfo,
+ public apitest::XComponent
{
uno::Reference<uno::XComponentContext> mxComponentContext;
uno::Reference<text::XTextDocument> mxTextDocument;
+ uno::Reference<text::XTextRange> mxTextRange;
+ uno::Reference<text::XTextContent> mxTextContent;
public:
virtual void setUp() override;
virtual void tearDown() override;
- SwXDocumentIndexTest()
+ SwXDocumentIndex()
: apitest::XServiceInfo("SwXDocumentIndex", "com.sun.star.text.BaseIndex"){};
uno::Reference<uno::XInterface> init() override;
+ uno::Reference<text::XTextRange> getTextRange() override;
+ uno::Reference<text::XTextContent> getTextContent() override;
+ bool isAttachSupported() override { return true; }
uno::Reference<text::XTextDocument> getTextDocument() override { return mxTextDocument; }
void triggerDesktopTerminate() override {}
- CPPUNIT_TEST_SUITE(SwXDocumentIndexTest);
+ CPPUNIT_TEST_SUITE(SwXDocumentIndex);
CPPUNIT_TEST(testGetImplementationName);
CPPUNIT_TEST(testGetSupportedServiceNames);
CPPUNIT_TEST(testSupportsService);
@@ -73,7 +78,7 @@ public:
CPPUNIT_TEST_SUITE_END();
};
-void SwXDocumentIndexTest::setUp()
+void SwXDocumentIndex::setUp()
{
test::BootstrapFixture::setUp();
@@ -85,7 +90,7 @@ void SwXDocumentIndexTest::setUp()
CPPUNIT_ASSERT(mxTextDocument.is());
}
-void SwXDocumentIndexTest::tearDown()
+void SwXDocumentIndex::tearDown()
{
if (mxTextDocument.is())
mxTextDocument->dispose();
@@ -93,7 +98,7 @@ void SwXDocumentIndexTest::tearDown()
test::BootstrapFixture::tearDown();
}
-uno::Reference<uno::XInterface> SwXDocumentIndexTest::init()
+uno::Reference<uno::XInterface> SwXDocumentIndex::init()
{
uno::Reference<lang::XMultiServiceFactory> xMSF(mxTextDocument, uno::UNO_QUERY_THROW);
uno::Reference<text::XDocumentIndex> xDocumentIndex(
@@ -103,10 +108,17 @@ uno::Reference<uno::XInterface> SwXDocumentIndexTest::init()
CPPUNIT_ASSERT(xTextCursor.is());
xText->insertTextContent(xTextCursor, xDocumentIndex, false);
xTextCursor->gotoEnd(false);
+ mxTextRange = uno::Reference<text::XTextRange>(xTextCursor, uno::UNO_QUERY_THROW);
+ mxTextContent = uno::Reference<text::XTextContent>(
+ xMSF->createInstance("com.sun.star.text.DocumentIndex"), uno::UNO_QUERY_THROW);
return xDocumentIndex;
}
-CPPUNIT_TEST_SUITE_REGISTRATION(SwXDocumentIndexTest);
+uno::Reference<text::XTextRange> SwXDocumentIndex::getTextRange() { return mxTextRange; }
+
+uno::Reference<text::XTextContent> SwXDocumentIndex::getTextContent() { return mxTextContent; }
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SwXDocumentIndex);
}
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/qa/api/DocumentSettings.cxx b/sw/qa/api/SwXDocumentSettings.cxx
similarity index 75%
rename from sw/qa/api/DocumentSettings.cxx
rename to sw/qa/api/SwXDocumentSettings.cxx
index f2b48cc675f9..7a2bce7b35e7 100644
--- a/sw/qa/api/DocumentSettings.cxx
+++ b/sw/qa/api/SwXDocumentSettings.cxx
@@ -9,6 +9,9 @@
#include <test/bootstrapfixture.hxx>
#include <test/lang/xserviceinfo.hxx>
+#include <test/text/textdocumentsettings.hxx>
+#include <test/text/textprintersettings.hxx>
+#include <test/text/textsettings.hxx>
#include <unotest/macros_test.hxx>
#include <com/sun/star/frame/Desktop.hpp>
@@ -21,10 +24,6 @@
#include <comphelper/processfactory.hxx>
-#include "DocumentSettingsTest.hxx"
-#include "SettingsTest.hxx"
-#include "PrinterSettingsTest.hxx"
-
using namespace css;
namespace
@@ -32,12 +31,12 @@ namespace
/**
* Test for Java API test of file com.sun.star.comp.Writer.DocumentSettings.csv
*/
-class DocumentSettingsTest : public test::BootstrapFixture,
- public unotest::MacrosTest,
- public apitest::DocumentSettingsTest,
- public apitest::SettingsTest,
- public apitest::PrinterSettingsTest,
- public apitest::XServiceInfo
+class SwXDocumentSettings final : public test::BootstrapFixture,
+ public unotest::MacrosTest,
+ public apitest::TextDocumentSettings,
+ public apitest::TextSettings,
+ public apitest::TextPrinterSettings,
+ public apitest::XServiceInfo
{
private:
uno::Reference<uno::XComponentContext> mxComponentContext;
@@ -47,11 +46,11 @@ public:
virtual void setUp() override;
virtual void tearDown() override;
- DocumentSettingsTest()
+ SwXDocumentSettings()
: apitest::XServiceInfo("SwXDocumentSettings", "com.sun.star.text.DocumentSettings"){};
uno::Reference<uno::XInterface> init() override;
- CPPUNIT_TEST_SUITE(DocumentSettingsTest);
+ CPPUNIT_TEST_SUITE(SwXDocumentSettings);
CPPUNIT_TEST(testGetImplementationName);
CPPUNIT_TEST(testGetSupportedServiceNames);
CPPUNIT_TEST(testSupportsService);
@@ -61,7 +60,7 @@ public:
CPPUNIT_TEST_SUITE_END();
};
-void DocumentSettingsTest::setUp()
+void SwXDocumentSettings::setUp()
{
test::BootstrapFixture::setUp();
@@ -69,7 +68,7 @@ void DocumentSettingsTest::setUp()
mxDesktop.set(frame::Desktop::create(mxComponentContext));
}
-void DocumentSettingsTest::tearDown()
+void SwXDocumentSettings::tearDown()
{
if (mxComponent.is())
mxComponent->dispose();
@@ -77,7 +76,7 @@ void DocumentSettingsTest::tearDown()
test::BootstrapFixture::tearDown();
}
-uno::Reference<uno::XInterface> DocumentSettingsTest::init()
+uno::Reference<uno::XInterface> SwXDocumentSettings::init()
{
mxComponent = loadFromDesktop("private:factory/swriter", "com.sun.star.text.TextDocument");
CPPUNIT_ASSERT(mxComponent.is());
@@ -91,7 +90,7 @@ uno::Reference<uno::XInterface> DocumentSettingsTest::init()
return xDocumentSettings;
}
-CPPUNIT_TEST_SUITE_REGISTRATION(DocumentSettingsTest);
+CPPUNIT_TEST_SUITE_REGISTRATION(SwXDocumentSettings);
} // end anonymous namespace
diff --git a/sw/qa/api/XDocumentIndexTest.hxx b/sw/qa/api/XDocumentIndexTest.hxx
deleted file mode 100644
index cb3eab3ce9bf..000000000000
--- a/sw/qa/api/XDocumentIndexTest.hxx
+++ /dev/null
@@ -1,85 +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_SW_QA_API_XDOCUMENTINDEXTEST_HXX
-#define INCLUDED_SW_QA_API_XDOCUMENTINDEXTEST_HXX
-
-#include "ApiTestBase.hxx"
-
-#include <cppunit/TestAssert.h>
-
-#include <test/unoapi_property_testers.hxx>
-
-#include <com/sun/star/text/XTextDocument.hpp>
-#include <com/sun/star/text/XTextContent.hpp>
-#include <com/sun/star/text/XText.hpp>
-#include <com/sun/star/text/XDocumentIndex.hpp>
-
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
-namespace apitest
-{
-/**
- * Testing <code>com.sun.star.text.XDocumentIndex</code>
- *
- * @see com.sun.star.text.XDocumentIndex
- */
-class XDocumentIndexTest : public ApiTestBase
-{
-public:
- virtual css::uno::Reference<css::text::XTextDocument> getTextDocument() = 0;
-
- /**
- * Gets the document from relation and insert a new index mark.
- * Then it stores the text content of document index before
- * update and after.<p>
- *
- * Has <b> OK </b> status if index content is changed and
- * new index contains index mark inserted. <p>
- */
- void testUpdate()
- {
- css::uno::Reference<css::text::XDocumentIndex> xDocumentIndex(init(),
- css::uno::UNO_QUERY_THROW);
-
- bool bOK = true;
- try
- {
- auto xText = getTextDocument()->getText();
- auto xTextRange = xText->getEnd();
- xTextRange->setString("IndexMark");
- css::uno::Reference<css::lang::XMultiServiceFactory> xFactory(
- getTextDocument(), css::uno::UNO_QUERY_THROW);
- css::uno::Reference<css::text::XTextContent> xTextContentMark(
- xFactory->createInstance("com.sun.star.text.DocumentIndexMark"),
- css::uno::UNO_QUERY_THROW);
- xText->insertTextContent(xTextRange, xTextContentMark, true);
- }
- catch (css::uno::Exception /*exception*/)
- {
- bOK = false;
- }
-
- CPPUNIT_ASSERT_MESSAGE("Couldn't create the document index mark", bOK);
-
- OUString sContentBefore = xDocumentIndex->getAnchor()->getString();
- xDocumentIndex->update();
- OUString sContentAfter = xDocumentIndex->getAnchor()->getString();
-
- CPPUNIT_ASSERT_MESSAGE("Before and after shouldn't be equal",
- sContentBefore != sContentAfter);
- CPPUNIT_ASSERT_MESSAGE("Content after should contain string 'IndexMark'",
- sContentAfter.indexOf("IndexMark") >= 0);
- }
-};
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/qa/api/XTextContentTest.hxx b/sw/qa/api/XTextContentTest.hxx
deleted file mode 100644
index e8bf94fbce9c..000000000000
--- a/sw/qa/api/XTextContentTest.hxx
+++ /dev/null
@@ -1,61 +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_SW_QA_API_XTEXTCONTENTTEST_HXX
-#define INCLUDED_SW_QA_API_XTEXTCONTENTTEST_HXX
-
-#include "ApiTestBase.hxx"
-
-#include <cppunit/TestAssert.h>
-
-#include <test/unoapi_property_testers.hxx>
-
-#include <com/sun/star/text/XTextContent.hpp>
-#include <com/sun/star/text/XTextRange.hpp>
-
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
-namespace apitest
-{
-class XTextContentTest : public ApiTestBase
-{
-public:
- virtual css::uno::Reference<css::text::XTextDocument> getTextDocument() = 0;
- /**
- * Tries to attach the text content to the test range
- * gotten with getAnchor(). If relations are found
- * then they are used for testing. <p>
- *
- * The test is OK if the method works without error.
- */
- void testAttach()
- {
- css::uno::Reference<css::text::XTextContent> xTextContent(init(),
- css::uno::UNO_QUERY_THROW);
- auto xTextCursor = getTextDocument()->getText()->createTextCursor();
- xTextCursor->gotoEnd(false);
- css::uno::Reference<css::lang::XMultiServiceFactory> xMSF(getTextDocument(),
- css::uno::UNO_QUERY_THROW);
- css::uno::Reference<css::text::XDocumentIndex> xDocumentIndex(
- xMSF->createInstance("com.sun.star.text.DocumentIndex"), css::uno::UNO_QUERY_THROW);
- xDocumentIndex->attach(xTextCursor);
- }
-
- void testGetAnchor()
- {
- css::uno::Reference<css::text::XTextContent> xTextContent(init(),
- css::uno::UNO_QUERY_THROW);
- CPPUNIT_ASSERT_EQUAL(OUString(""), xTextContent->getAnchor()->getString());
- }
-};
-}
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/Library_subsequenttest.mk b/test/Library_subsequenttest.mk
index a1ea3349978f..7fca94314977 100644
--- a/test/Library_subsequenttest.mk
+++ b/test/Library_subsequenttest.mk
@@ -169,11 +169,17 @@ $(eval $(call gb_Library_add_exception_objects,subsequenttest,\
test/source/table/xtablechartssupplier \
test/source/table/xtablecolumns \
test/source/table/xtablerows \
+ test/source/text/baseindex \
test/source/text/xsimpletext \
test/source/text/xtext \
test/source/text/xtextcontent \
test/source/text/xtextfield \
test/source/text/xtextrange \
+ test/source/text/xdocumentindex \
+ test/source/text/textdocumentsettings \
+ test/source/text/textprintersettings \
+ test/source/text/textsettings \
+ test/source/text/textdocumentindex \
test/source/util/xindent \
test/source/util/xmergeable \
test/source/util/xrefreshable \
diff --git a/test/source/text/baseindex.cxx b/test/source/text/baseindex.cxx
new file mode 100644
index 000000000000..f65028b49977
--- /dev/null
+++ b/test/source/text/baseindex.cxx
@@ -0,0 +1,153 @@
+/* -*- 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 <cppunit/extensions/HelperMacros.h>
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/graphic/XGraphic.hpp>
+#include <com/sun/star/text/XTextColumns.hpp>
+#include <com/sun/star/text/XTextSection.hpp>
+
+#include <vcl/BitmapTools.hxx>
+#include <vcl/graph.hxx>
+#include <vcl/pngwrite.hxx>
+#include <unotools/tempfile.hxx>
+#include <tools/stream.hxx>
+
+#include <test/unoapi_property_testers.hxx>
+#include <test/text/baseindex.hxx>
+#include <test/testdllapi.hxx>
+
+namespace
+{
+BitmapEx createExampleBitmap()
+{
+ vcl::bitmap::RawBitmap aRawBitmap(Size(4, 4), 24);
+ aRawBitmap.SetPixel(0, 0, COL_LIGHTBLUE);
+ aRawBitmap.SetPixel(0, 1, COL_LIGHTGREEN);
+ aRawBitmap.SetPixel(1, 0, COL_LIGHTRED);
+ aRawBitmap.SetPixel(1, 1, COL_LIGHTMAGENTA);
+ return vcl::bitmap::CreateFromData(std::move(aRawBitmap));
+}
+
+void writerFileWithBitmap(OUString const& rURL)
+{
+ BitmapEx aBitmapEx = createExampleBitmap();
+ SvFileStream aFileStream(rURL, StreamMode::READ | StreamMode::WRITE);
+ vcl::PNGWriter aWriter(aBitmapEx);
+ aWriter.Write(aFileStream);
+ aFileStream.Seek(STREAM_SEEK_TO_BEGIN);
+ aFileStream.Close();
+}
+}
+
+namespace apitest
+{
+BaseIndex::~BaseIndex() {}
+
+void BaseIndex::testBaseIndexProperties()
+{
+ css::uno::Reference<css::beans::XPropertySet> xBaseIndex(init(), css::uno::UNO_QUERY_THROW);
+ testStringProperty(xBaseIndex, "Title", "Value");
+ testBooleanProperty(xBaseIndex, "IsProtected");
+
+ testStringProperty(xBaseIndex, "ParaStyleHeading", "Value");
+ testStringProperty(xBaseIndex, "ParaStyleLevel1", "Value");
+ testStringOptionalProperty(xBaseIndex, "ParaStyleLevel2");
+ testStringOptionalProperty(xBaseIndex, "ParaStyleLevel3");
+ testStringOptionalProperty(xBaseIndex, "ParaStyleLevel4");
+ testStringOptionalProperty(xBaseIndex, "ParaStyleLevel5");
+ testStringOptionalProperty(xBaseIndex, "ParaStyleLevel6");
+ testStringOptionalProperty(xBaseIndex, "ParaStyleLevel7");
+ testStringOptionalProperty(xBaseIndex, "ParaStyleLevel8");
+ testStringOptionalProperty(xBaseIndex, "ParaStyleLevel9");
+ testStringOptionalProperty(xBaseIndex, "ParaStyleLevel10");
+ testStringOptionalProperty(xBaseIndex, "ParaStyleSeparator");
+
+ // [property] XTextColumns TextColumns;
+ {
+ OUString name = "TextColumns";
+
+ css::uno::Reference<css::text::XTextColumns> xGetTextColumns;
+ CPPUNIT_ASSERT(xBaseIndex->getPropertyValue(name) >>= xGetTextColumns);
+
+ xGetTextColumns->setColumnCount(xGetTextColumns->getColumnCount() + 1);
+ xBaseIndex->setPropertyValue(name, css::uno::makeAny(xGetTextColumns));
+
+ css::uno::Reference<css::text::XTextColumns> xSetTextColumns;
+ CPPUNIT_ASSERT(xBaseIndex->getPropertyValue(name) >>= xSetTextColumns);
+
+ //CPPUNIT_ASSERT_EQUAL(xGetTextColumns->getColumnCount(), xSetTextColumns->getColumnCount());
+ }
+
+ // [property] com::sun::star::graphic::XGraphic BackGraphic;
+ // [property] string BackGraphicURL;
+ {
+ OUString name = "BackGraphicURL";
+ bool bOK = false;
+ try
+ {
+ xBaseIndex->getPropertyValue(name);
+ }
+ catch (css::uno::RuntimeException const& /*ex*/)
+ {
+ bOK = true;
+ }
+ // BackGraphicURL is "set-only" attribute
+ CPPUNIT_ASSERT_MESSAGE("Expected RuntimeException wasn't thrown", bOK);
+
+ utl::TempFile aTempFile;
+ aTempFile.EnableKillingFile();
+ writerFileWithBitmap(aTempFile.GetURL());
+
+ css::uno::Reference<css::graphic::XGraphic> xGraphic;
+ CPPUNIT_ASSERT(xBaseIndex->getPropertyValue("BackGraphic") >>= xGraphic);
+ CPPUNIT_ASSERT(!xGraphic.is());
+
+ xBaseIndex->setPropertyValue(name, css::uno::makeAny(aTempFile.GetURL()));
+
+ CPPUNIT_ASSERT(xBaseIndex->getPropertyValue("BackGraphic") >>= xGraphic);
+ CPPUNIT_ASSERT(xGraphic.is());
+ }
+
+ testStringProperty(xBaseIndex, "BackGraphicFilter", "Value");
+
+ // [property] com::sun::star::style::GraphicLocation BackGraphicLocation;
+
+ testColorProperty(xBaseIndex, "BackColor");
+ testBooleanProperty(xBaseIndex, "BackTransparent");
+
+ // [optional, property] com::sun::star::container::XIndexReplace LevelFormat;
+
+ testBooleanOptionalProperty(xBaseIndex, "CreateFromChapter");
+
+ // [property] com::sun::star::text::XTextSection ContentSection;
+ {
+ OUString name = "ContentSection";
+
+ css::uno::Reference<css::text::XTextSection> xGetTextSection;
+ CPPUNIT_ASSERT_MESSAGE(name.toUtf8().getStr(),
+ xBaseIndex->getPropertyValue(name) >>= xGetTextSection);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(name.toUtf8().getStr(), OUString(""),
+ xGetTextSection->getAnchor()->getString());
+ }
+
+ // [property] com::sun::star::text::XTextSection HeaderSection;
+ {
+ OUString name = "HeaderSection";
+
+ css::uno::Reference<css::text::XTextSection> xGetTextSection;
+ if (xBaseIndex->getPropertyValue(name).hasValue())
+ CPPUNIT_ASSERT_MESSAGE(name.toUtf8().getStr(),
+ xBaseIndex->getPropertyValue(name) >>= xGetTextSection);
+ }
+}
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/source/text/textdocumentindex.cxx b/test/source/text/textdocumentindex.cxx
new file mode 100644
index 000000000000..63873e2b4742
--- /dev/null
+++ b/test/source/text/textdocumentindex.cxx
@@ -0,0 +1,36 @@
+/* -*- 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/beans/XPropertySet.hpp>
+
+#include <test/unoapi_property_testers.hxx>
+#include <test/text/textdocumentindex.hxx>
+
+namespace apitest
+{
+TextDocumentIndex::~TextDocumentIndex() {}
+
+void TextDocumentIndex::testDocumentIndexProperties()
+{
+ css::uno::Reference<css::beans::XPropertySet> xDocumnetIndex(init(), css::uno::UNO_QUERY_THROW);
+
+ testBooleanProperty(xDocumnetIndex, "UseAlphabeticalSeparators");
+ testBooleanProperty(xDocumnetIndex, "UseKeyAsEntry");
+ testBooleanProperty(xDocumnetIndex, "UseCombinedEntries");
+ testBooleanProperty(xDocumnetIndex, "IsCaseSensitive");
+ testBooleanProperty(xDocumnetIndex, "UsePP");
+ testBooleanProperty(xDocumnetIndex, "UseDash");
+ testBooleanProperty(xDocumnetIndex, "UseUpperCase");
+ testStringOptionalProperty(xDocumnetIndex, "MainEntryCharacterStyleName");
+ // [readonly, property] sequence <com::sun::star::text::XDocumentIndexMark> DocumentIndexMarks;
+ // [property] com::sun::star::lang::Locale Locale;
+ testStringProperty(xDocumnetIndex, "SortAlgorithm", "Value");
+}
+}
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/source/text/textdocumentsettings.cxx b/test/source/text/textdocumentsettings.cxx
new file mode 100644
index 000000000000..9ef0518b05ca
--- /dev/null
+++ b/test/source/text/textdocumentsettings.cxx
@@ -0,0 +1,42 @@
+/* -*- 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/text/textdocumentsettings.hxx>
+#include <test/unoapi_property_testers.hxx>
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/uno/Reference.hxx>
+
+using namespace css::uno;
+
+namespace apitest
+{
+TextDocumentSettings::~TextDocumentSettings() {}
+
+void TextDocumentSettings::testDocumentSettingsProperties()
+{
+ css::uno::Reference<css::beans::XPropertySet> xDocumentSettings(init(),
+ css::uno::UNO_QUERY_THROW);
+
+ testBooleanOptionalProperty(xDocumentSettings, "ChartAutoUpdate");
+ testBooleanOptionalProperty(xDocumentSettings, "AddParaTableSpacing");
+ testBooleanOptionalProperty(xDocumentSettings, "AddParaTableSpacingAtStart");
+ testBooleanOptionalProperty(xDocumentSettings, "AlignTabStopPosition");
+ testBooleanOptionalProperty(xDocumentSettings, "SaveGlobalDocumentLinks");
+ testBooleanOptionalProperty(xDocumentSettings, "IsLabelDocument");
+ testBooleanOptionalProperty(xDocumentSettings, "UseFormerLineSpacing");
+ testBooleanOptionalProperty(xDocumentSettings, "AddParaSpacingToTableCells");
+ testBooleanOptionalProperty(xDocumentSettings, "UseFormerObjectPositioning");
+ testBooleanOptionalProperty(xDocumentSettings, "ConsiderTextWrapOnObjPos");
+ testBooleanOptionalProperty(xDocumentSettings, "MathBaselineAlignment");
+}
+
+} // end namespace apitest
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/source/text/textprintersettings.cxx b/test/source/text/textprintersettings.cxx
new file mode 100644
index 000000000000..b28c652413e5
--- /dev/null
+++ b/test/source/text/textprintersettings.cxx
@@ -0,0 +1,39 @@
+/* -*- 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/beans/XPropertySet.hpp>
+
+#include <test/unoapi_property_testers.hxx>
+#include <test/text/textprintersettings.hxx>
+
+namespace apitest
+{
+TextPrinterSettings::~TextPrinterSettings() {}
+void TextPrinterSettings::testPrinterSettingsProperties()
+{
+ css::uno::Reference<css::beans::XPropertySet> xPrinterSettings(init(),
+ css::uno::UNO_QUERY_THROW);
+
+ testBooleanProperty(xPrinterSettings, "PrintGraphics");
+ testBooleanProperty(xPrinterSettings, "PrintTables");
+ testBooleanProperty(xPrinterSettings, "PrintDrawings");
+ testBooleanProperty(xPrinterSettings, "PrintLeftPages");
+ testBooleanProperty(xPrinterSettings, "PrintRightPages");
+ testBooleanProperty(xPrinterSettings, "PrintControls");
+ testBooleanProperty(xPrinterSettings, "PrintReversed");
+ testBooleanProperty(xPrinterSettings, "PrintControls");
+ testStringProperty(xPrinterSettings, "PrintFaxName", "FaxName");
+ testBooleanProperty(xPrinterSettings, "PrintProspect");
+ testBooleanProperty(xPrinterSettings, "PrintPageBackground");
+ testBooleanProperty(xPrinterSettings, "PrintBlackFonts");
+ testBooleanOptionalProperty(xPrinterSettings, "PrintEmptyPages");
+}
+} // end namespace apitest
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/source/text/textsettings.cxx b/test/source/text/textsettings.cxx
new file mode 100644
index 000000000000..8371ed54c38d
--- /dev/null
+++ b/test/source/text/textsettings.cxx
@@ -0,0 +1,153 @@
+/* -*- 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 <cppunit/extensions/HelperMacros.h>
+
+#include <com/sun/star/beans/PropertyAttribute.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/i18n/XForbiddenCharacters.hpp>
+
+#include <test/unoapi_property_testers.hxx>
+#include <test/text/textsettings.hxx>
+
+namespace
+{
+bool extstsProperty(css::uno::Reference<css::beans::XPropertySet> const& rxPropertySet,
+ OUString const& rPropertyName)
+{
+ css::uno::Reference<css::beans::XPropertySetInfo> xPropertySetInfo(
+ rxPropertySet->getPropertySetInfo());
+ return xPropertySetInfo->hasPropertyByName(rPropertyName);
+}
+
+bool isPropertyReadOnly(css::uno::Reference<css::beans::XPropertySet> const& rxPropertySet,
+ OUString const& rPropertyName)
+{
+ css::uno::Reference<css::beans::XPropertySetInfo> xPropertySetInfo(
+ rxPropertySet->getPropertySetInfo());
+ css::uno::Sequence<css::beans::Property> xProperties = xPropertySetInfo->getProperties();
+
+ for (auto const& rProperty : xProperties)
+ {
+ if (rProperty.Name == rPropertyName)
+ return (rProperty.Attributes & com::sun::star::beans::PropertyAttribute::READONLY) != 0;
+ }
+
+ return false;
+}
+// [property] string PrinterName;
+void testPrinterName(css::uno::Reference<css::beans::XPropertySet> const& rxSettings)
+{
+ const OUString rPropertyName("PrinterName");
+
+ if (!extstsProperty(rxSettings, rPropertyName))
+ return; // Property is sometimes not set - bug? it is not defined as optional
+
+ OUString aPrinterName_Get;
+
+ CPPUNIT_ASSERT_MESSAGE("Unable to get PropertyValue",
+ rxSettings->getPropertyValue(rPropertyName) >>= aPrinterName_Get);
+
+ OUString aPrinterName_Set;
+ css::uno::Any aNewValue;
+ aNewValue <<= aPrinterName_Get;
+ rxSettings->setPropertyValue(rPropertyName, aNewValue);
+
+ CPPUNIT_ASSERT_MESSAGE("Unable to get PropertyValue",
+ rxSettings->getPropertyValue(rPropertyName) >>= aPrinterName_Set);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Unable to set PropertyValue", aPrinterName_Get, aPrinterName_Set);
+}
+
+// [optional, property] short PrinterIndependentLayout;
+void testPrinterIndependentLayout(css::uno::Reference<css::beans::XPropertySet> const& rxSettings)
+{
+ const OUString rPropertyName("PrinterIndependentLayout");
+
+ if (!extstsProperty(rxSettings, rPropertyName))
+ return; // Property is optional
+
+ sal_Int16 aValue_Get;
+
+ CPPUNIT_ASSERT_MESSAGE("Unable to get PropertyValue",
+ rxSettings->getPropertyValue(rPropertyName) >>= aValue_Get);
+
+ sal_Int16 aValue_New;
+ aValue_New = (aValue_Get == 1 ? 3 : 1);
+ rxSettings->setPropertyValue(rPropertyName, css::uno::Any(aValue_New));
+
+ sal_Int16 aValue_Set;
+
+ CPPUNIT_ASSERT_MESSAGE("Unable to get PropertyValue",
+ rxSettings->getPropertyValue(rPropertyName) >>= aValue_Set);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Unable to set PropertyValue", aValue_New, aValue_Set);
+}
+
+// [optional, property] com::sun::star::i18n::XForbiddenCharacters ForbiddenCharacters;
+void testForbiddenCharacters(css::uno::Reference<css::beans::XPropertySet> const& rxSettings)
+{
+ const OUString rPropertyName("ForbiddenCharacters");
+
+ if (!extstsProperty(rxSettings, rPropertyName))
+ return; // Property is optional
+
+ CPPUNIT_ASSERT_MESSAGE("Property is read-only but shouldn't be",
+ !isPropertyReadOnly(rxSettings, rPropertyName));
+
+ css::uno::Reference<css::i18n::XForbiddenCharacters> aValue_Get;
+
+ CPPUNIT_ASSERT_MESSAGE("Unable to get PropertyValue",
+ rxSettings->getPropertyValue(rPropertyName) >>= aValue_Get);
+ CPPUNIT_ASSERT_MESSAGE("Empty reference to XForbiddenCharacters", aValue_Get.is());
+}
+}
+
+namespace apitest
+{
+TextSettings::~TextSettings() {}
+void TextSettings::testSettingsProperties()
+{
+ css::uno::Reference<css::beans::XPropertySet> xSettings(init(), css::uno::UNO_QUERY_THROW);
+
+ testForbiddenCharacters(xSettings);
+ //testShortOptionalProperty(xSettings, "LinkUpdateMode");
+ testPrinterName(xSettings);
+ // [property] sequence< byte > PrinterSetup;
+ testBooleanOptionalProperty(xSettings, "IsKernAsianPunctuation");
+ //testShortOptionalProperty(xSettings, "CharacterCompressionType");
+ testBooleanOptionalProperty(xSettings, "ApplyUserData");
+ testBooleanOptionalProperty(xSettings, "SaveVersionOnClose");
+ testBooleanOptionalProperty(xSettings, "UpdateFromTemplate");
+ testBooleanOptionalProperty(xSettings, "FieldAutoUpdate");
+ testStringOptionalProperty(xSettings, "CurrentDatabaseDataSource");
+ testStringOptionalProperty(xSettings, "CurrentDatabaseCommand");
+ testLongOptionalProperty(xSettings, "CurrentDatabaseCommandType");
+ testLongOptionalProperty(xSettings, "DefaultTabStop");
+ testBooleanOptionalProperty(xSettings, "IsPrintBooklet");
+ testBooleanOptionalProperty(xSettings, "IsPrintBookletFront");
+ testBooleanOptionalProperty(xSettings, "IsPrintBookletBack");
+ testLongOptionalProperty(xSettings, "PrintQuality");
+ testStringOptionalProperty(xSettings, "ColorTableURL");
+ testStringOptionalProperty(xSettings, "DashTableURL");
+ testStringOptionalProperty(xSettings, "LineEndTableURL");
+ testStringOptionalProperty(xSettings, "HatchTableURL");
+ testStringOptionalProperty(xSettings, "GradientTableURL");
+ testStringOptionalProperty(xSettings, "BitmapTableURL");
+ testBooleanOptionalProperty(xSettings, "AutoCalculate");
+ testPrinterIndependentLayout(xSettings);
+ testBooleanOptionalProperty(xSettings, "AddExternalLeading");
+ testBooleanOptionalProperty(xSettings, "EmbedFonts");
+ testBooleanOptionalProperty(xSettings, "EmbedSystemFonts");
+ testBooleanOptionalProperty(xSettings, "EmbedOnlyUsedFonts");
+ testBooleanOptionalProperty(xSettings, "EmbedLatinScriptFonts");
+ testBooleanOptionalProperty(xSettings, "EmbedAsianScriptFonts");
+ testBooleanOptionalProperty(xSettings, "EmbedComplexScriptFonts");
+}
+} // end namespace apitest
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/source/text/xdocumentindex.cxx b/test/source/text/xdocumentindex.cxx
new file mode 100644
index 000000000000..0cae3a2986c6
--- /dev/null
+++ b/test/source/text/xdocumentindex.cxx
@@ -0,0 +1,67 @@
+/* -*- 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 <cppunit/extensions/HelperMacros.h>
+
+#include <com/sun/star/text/XTextDocument.hpp>
+#include <com/sun/star/text/XTextContent.hpp>
+#include <com/sun/star/text/XText.hpp>
+#include <com/sun/star/text/XDocumentIndex.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+
+#include <test/unoapi_property_testers.hxx>
+#include <test/text/xdocumentindex.hxx>
+
+namespace apitest
+{
+XDocumentIndex::~XDocumentIndex() {}
+/**
+ * Gets the document from relation and insert a new index mark.
+ * Then it stores the text content of document index before
+ * update and after.<p>
+ *
+ * Has <b> OK </b> status if index content is changed and
+ * new index contains index mark inserted. <p>
+ */
+void XDocumentIndex::testUpdate()
+{
+ css::uno::Reference<css::text::XDocumentIndex> xDocumentIndex(init(),
+ css::uno::UNO_QUERY_THROW);
+
+ bool bOK = true;
+ try
+ {
+ auto xText = getTextDocument()->getText();
+ auto xTextRange = xText->getEnd();
+ xTextRange->setString("IndexMark");
+ css::uno::Reference<css::lang::XMultiServiceFactory> xFactory(getTextDocument(),
+ css::uno::UNO_QUERY_THROW);
+ css::uno::Reference<css::text::XTextContent> xTextContentMark(
+ xFactory->createInstance("com.sun.star.text.DocumentIndexMark"),
+ css::uno::UNO_QUERY_THROW);
+ xText->insertTextContent(xTextRange, xTextContentMark, true);
+ }
+ catch (css::uno::Exception /*exception*/)
+ {
+ bOK = false;
+ }
+
+ CPPUNIT_ASSERT_MESSAGE("Couldn't create the document index mark", bOK);
+
+ OUString sContentBefore = xDocumentIndex->getAnchor()->getString();
+ xDocumentIndex->update();
+ OUString sContentAfter = xDocumentIndex->getAnchor()->getString();
+
+ CPPUNIT_ASSERT_MESSAGE("Before and after shouldn't be equal", sContentBefore != sContentAfter);
+ CPPUNIT_ASSERT_MESSAGE("Content after should contain string 'IndexMark'",
+ sContentAfter.indexOf("IndexMark") >= 0);
+}
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list