summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVarun <varun.dhall@studentpartner.com>2015-07-02 16:06:41 +0530
committerMichael Stahl <mstahl@redhat.com>2015-07-02 16:53:38 +0000
commitf8db2d7533785b89a149e7879d7a3c1909d41e6b (patch)
tree1d105deee272570b2dc7b61eaa43fc8de9551f4d
parent897694d2bd499a42bf8df2cffa8fee4fb1841917 (diff)
Add test for tdf#90808 duplicate CrossRefBookmarks
Change-Id: I4aad0cbb07c07cfcb80bccbbd55d9a26fae88f73 Reviewed-on: https://gerrit.libreoffice.org/16689 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
-rw-r--r--sw/qa/extras/uiwriter/uiwriter.cxx48
1 files changed, 48 insertions, 0 deletions
diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx
index 0339860beb67..6138ed2968fd 100644
--- a/sw/qa/extras/uiwriter/uiwriter.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter.cxx
@@ -54,6 +54,7 @@
#include "com/sun/star/util/SearchAlgorithms.hpp"
#include "com/sun/star/i18n/TransliterationModulesExtra.hpp"
#include "com/sun/star/sdbcx/XTablesSupplier.hpp"
+#include "com/sun/star/text/XParagraphCursor.hpp"
#include <osl/file.hxx>
static const char* DATA_DIRECTORY = "/sw/qa/extras/uiwriter/data/";
@@ -101,6 +102,7 @@ public:
void testTdf69282();
void testTdf69282WithMirror();
void testSearchWithTransliterate();
+ void testTdf90808();
void testTdf75137();
void testTdf83798();
void testTableBackgroundColor();
@@ -150,6 +152,7 @@ public:
CPPUNIT_TEST(testTdf69282);
CPPUNIT_TEST(testTdf69282WithMirror);
CPPUNIT_TEST(testSearchWithTransliterate);
+ CPPUNIT_TEST(testTdf90808);
CPPUNIT_TEST(testTdf75137);
CPPUNIT_TEST(testTdf83798);
CPPUNIT_TEST(testTableBackgroundColor);
@@ -1180,6 +1183,51 @@ void SwUiWriterTest::testSearchWithTransliterate()
CPPUNIT_ASSERT_EQUAL(1,(int)case2);
}
+void SwUiWriterTest::testTdf90808()
+{
+ createDoc();
+ uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
+ uno::Reference<text::XTextRange> xTextRange(xTextDocument->getText(), uno::UNO_QUERY);
+ uno::Reference<text::XText> xText(xTextRange->getText(), uno::UNO_QUERY);
+ uno::Reference<text::XParagraphCursor> xCrsr(xText->createTextCursor(), uno::UNO_QUERY);
+ //inserting text into document so that the paragraph is not empty
+ xText->setString(OUString("Hello World!"));
+ uno::Reference<lang::XMultiServiceFactory> xFact(mxComponent, uno::UNO_QUERY);
+ //creating bookmark 1
+ uno::Reference<text::XTextContent> type1bookmark1(xFact->createInstance("com.sun.star.text.Bookmark"), uno::UNO_QUERY);
+ uno::Reference<container::XNamed> xName1(type1bookmark1, uno::UNO_QUERY);
+ xName1->setName("__RefHeading__1");
+ //moving cursor to the starting of paragraph
+ xCrsr->gotoStartOfParagraph(false);
+ //inserting the bookmark in paragraph
+ xText->insertTextContent(xCrsr, type1bookmark1, true);
+ //creating bookmark 2
+ uno::Reference<text::XTextContent> type1bookmark2(xFact->createInstance("com.sun.star.text.Bookmark"), uno::UNO_QUERY);
+ uno::Reference<container::XNamed> xName2(type1bookmark2, uno::UNO_QUERY);
+ xName2->setName("__RefHeading__2");
+ //inserting the bookmark in same paragraph, at the end
+ //only one bookmark of this type is allowed in each paragraph an exception of com.sun.star.lang.IllegalArgumentException must be thrown when inserting the other bookmark in same paragraph
+ xCrsr->gotoEndOfParagraph(true);
+ CPPUNIT_ASSERT_THROW(xText->insertTextContent(xCrsr, type1bookmark2, true), com::sun::star::lang::IllegalArgumentException);
+ //now testing for __RefNumPara__
+ //creating bookmark 1
+ uno::Reference<text::XTextContent> type2bookmark1(xFact->createInstance("com.sun.star.text.Bookmark"), uno::UNO_QUERY);
+ uno::Reference<container::XNamed> xName3(type2bookmark1, uno::UNO_QUERY);
+ xName3->setName("__RefNumPara__1");
+ //moving cursor to the starting of paragraph
+ xCrsr->gotoStartOfParagraph(false);
+ //inserting the bookmark in paragraph
+ xText->insertTextContent(xCrsr, type2bookmark1, true);
+ //creating bookmark 2
+ uno::Reference<text::XTextContent> type2bookmark2(xFact->createInstance("com.sun.star.text.Bookmark"), uno::UNO_QUERY);
+ uno::Reference<container::XNamed> xName4(type2bookmark2, uno::UNO_QUERY);
+ xName4->setName("__RefNumPara__2");
+ //inserting the bookmark in same paragraph, at the end
+ //only one bookmark of this type is allowed in each paragraph an exception of com.sun.star.lang.IllegalArgumentException must be thrown when inserting the other bookmark in same paragraph
+ xCrsr->gotoEndOfParagraph(true);
+ CPPUNIT_ASSERT_THROW(xText->insertTextContent(xCrsr, type2bookmark2, true), com::sun::star::lang::IllegalArgumentException);
+}
+
void SwUiWriterTest::testTdf75137()
{
SwDoc* pDoc = createDoc();