diff options
Diffstat (limited to 'sw/qa/extras')
-rw-r--r-- | sw/qa/extras/uiwriter/data/uno-cycle.odt | bin | 0 -> 9118 bytes | |||
-rw-r--r-- | sw/qa/extras/uiwriter/uiwriter.cxx | 17 |
2 files changed, 17 insertions, 0 deletions
diff --git a/sw/qa/extras/uiwriter/data/uno-cycle.odt b/sw/qa/extras/uiwriter/data/uno-cycle.odt Binary files differnew file mode 100644 index 000000000000..51e798f84f8e --- /dev/null +++ b/sw/qa/extras/uiwriter/data/uno-cycle.odt diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx index 4229877085f7..d3649d087fb7 100644 --- a/sw/qa/extras/uiwriter/uiwriter.cxx +++ b/sw/qa/extras/uiwriter/uiwriter.cxx @@ -63,6 +63,7 @@ public: void testAutoCorr(); void testFdo87005(); void testMergeDoc(); + void testCreatePortions(); CPPUNIT_TEST_SUITE(SwUiWriterTest); CPPUNIT_TEST(testReplaceForward); @@ -89,6 +90,7 @@ public: CPPUNIT_TEST(testAutoCorr); CPPUNIT_TEST(testFdo87005); CPPUNIT_TEST(testMergeDoc); + CPPUNIT_TEST(testCreatePortions); CPPUNIT_TEST_SUITE_END(); @@ -662,6 +664,21 @@ void SwUiWriterTest::testMergeDoc() getParagraph(7, ""); } +void SwUiWriterTest::testCreatePortions() +{ + createDoc("uno-cycle.odt"); + uno::Reference<text::XBookmarksSupplier> xBookmarksSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<text::XTextContent> xText(xBookmarksSupplier->getBookmarks()->getByName("Mark"), uno::UNO_QUERY); + uno::Reference<container::XEnumerationAccess> xTextCursor(xText->getAnchor(), uno::UNO_QUERY); + CPPUNIT_ASSERT(xTextCursor.is()); + + uno::Reference<container::XEnumerationAccess> xParagraph( + xTextCursor->createEnumeration()->nextElement(), uno::UNO_QUERY); + CPPUNIT_ASSERT(xParagraph.is()); + // This looped forever in lcl_CreatePortions + xParagraph->createEnumeration(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SwUiWriterTest); CPPUNIT_PLUGIN_IMPLEMENT(); |