diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-07-27 13:59:01 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-07-27 15:31:45 +0200 |
commit | 7ed402ba648dd0f3de3b0dadebc13403b2c0a620 (patch) | |
tree | 36bb968a7efeb2f84f4436befe687bfd90f7dac8 /sw/qa | |
parent | 1176ae51154c2298b44427270754d2ee1562a115 (diff) |
sw: add new TextParagraph property to XTextRange
A text range represents a selection or cursor position, so similar to
sections or tables, it makes sense to expose the containing paragraph as
well. This new property does exactly that.
Change-Id: If92a3b5e61f13c7c14ca52bc8593a2b286a596cc
Reviewed-on: https://gerrit.libreoffice.org/40483
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'sw/qa')
-rw-r--r-- | sw/qa/extras/uiwriter/data/paragraph-of-text-range.odt | bin | 0 -> 8878 bytes | |||
-rw-r--r-- | sw/qa/extras/uiwriter/uiwriter.cxx | 23 |
2 files changed, 23 insertions, 0 deletions
diff --git a/sw/qa/extras/uiwriter/data/paragraph-of-text-range.odt b/sw/qa/extras/uiwriter/data/paragraph-of-text-range.odt Binary files differnew file mode 100644 index 000000000000..52cdb0be1ff2 --- /dev/null +++ b/sw/qa/extras/uiwriter/data/paragraph-of-text-range.odt diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx index 603df05f0bf0..c0888a007a6f 100644 --- a/sw/qa/extras/uiwriter/uiwriter.cxx +++ b/sw/qa/extras/uiwriter/uiwriter.cxx @@ -261,6 +261,7 @@ public: void testTableInNestedSection(); void testLinesInSectionInTable(); void testLinesMoveBackwardsInSectionInTable(); + void testParagraphOfTextRange(); CPPUNIT_TEST_SUITE(SwUiWriterTest); CPPUNIT_TEST(testReplaceForward); @@ -410,6 +411,7 @@ public: CPPUNIT_TEST(testLinesMoveBackwardsInSectionInTable); #endif CPPUNIT_TEST(testLinesInSectionInTable); + CPPUNIT_TEST(testParagraphOfTextRange); CPPUNIT_TEST_SUITE_END(); private: @@ -5063,6 +5065,27 @@ void SwUiWriterTest::testTableInNestedSection() } #endif +void SwUiWriterTest::testParagraphOfTextRange() +{ + SwDoc* pDoc = createDoc("paragraph-of-text-range.odt"); + + // Enter the table. + SwWrtShell* pWrtShell = pDoc->GetDocShell()->GetWrtShell(); + pWrtShell->Down(/*bSelect=*/false); + CPPUNIT_ASSERT(pWrtShell->IsCursorInTable()); + // Enter the section. + pWrtShell->Down(/*bSelect=*/false); + CPPUNIT_ASSERT(pWrtShell->IsDirectlyInSection()); + + // Assert that we get the right paragraph object. + uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY); + uno::Reference<text::XTextViewCursorSupplier> xController(xModel->getCurrentController(), uno::UNO_QUERY); + uno::Reference<text::XTextRange> xViewCursor(xController->getViewCursor(), uno::UNO_QUERY); + // This failed as there were no TextParagraph property. + auto xParagraph = getProperty< uno::Reference<text::XTextRange> >(xViewCursor->getStart(), "TextParagraph"); + CPPUNIT_ASSERT_EQUAL(OUString("In section"), xParagraph->getString()); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SwUiWriterTest); CPPUNIT_PLUGIN_IMPLEMENT(); |