diff options
Diffstat (limited to 'sw/qa/extras/rtftok/rtftok.cxx')
-rw-r--r-- | sw/qa/extras/rtftok/rtftok.cxx | 47 |
1 files changed, 31 insertions, 16 deletions
diff --git a/sw/qa/extras/rtftok/rtftok.cxx b/sw/qa/extras/rtftok/rtftok.cxx index eb64e0ae9737..92c32294e794 100644 --- a/sw/qa/extras/rtftok/rtftok.cxx +++ b/sw/qa/extras/rtftok/rtftok.cxx @@ -58,6 +58,7 @@ public: void testN192129(); void testFdo45543(); void testN695479(); + void testFdo42465(); CPPUNIT_TEST_SUITE(RtfModelTest); #if !defined(MACOSX) && !defined(WNT) @@ -65,11 +66,15 @@ public: CPPUNIT_TEST(testN192129); CPPUNIT_TEST(testFdo45543); CPPUNIT_TEST(testN695479); + CPPUNIT_TEST(testFdo42465); #endif CPPUNIT_TEST_SUITE_END(); private: + /// Load an RTF file and make the document available via mxComponent. void load(const OUString& rURL); + /// Get the length of the whole document. + int getLength(); uno::Reference<lang::XComponent> mxComponent; }; @@ -78,6 +83,25 @@ void RtfModelTest::load(const OUString& rFilename) mxComponent = loadFromDesktop(getURLFromSrc("/sw/qa/extras/rtftok/data/") + rFilename); } +int RtfModelTest::getLength() +{ + uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XEnumerationAccess> xParaEnumAccess(xTextDocument->getText(), uno::UNO_QUERY); + uno::Reference<container::XEnumeration> xParaEnum = xParaEnumAccess->createEnumeration(); + OUStringBuffer aBuf; + while (xParaEnum->hasMoreElements()) + { + uno::Reference<container::XEnumerationAccess> xRangeEnumAccess(xParaEnum->nextElement(), uno::UNO_QUERY); + uno::Reference<container::XEnumeration> xRangeEnum = xRangeEnumAccess->createEnumeration(); + while (xRangeEnum->hasMoreElements()) + { + uno::Reference<text::XTextRange> xRange(xRangeEnum->nextElement(), uno::UNO_QUERY); + aBuf.append(xRange->getString()); + } + } + return aBuf.getLength(); +} + void RtfModelTest::setUp() { test::BootstrapFixture::setUp(); @@ -150,22 +174,7 @@ void RtfModelTest::testN192129() void RtfModelTest::testFdo45543() { load(OUString(RTL_CONSTASCII_USTRINGPARAM("fdo45543.rtf"))); - - uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY); - uno::Reference<container::XEnumerationAccess> xParaEnumAccess(xTextDocument->getText(), uno::UNO_QUERY); - uno::Reference<container::XEnumeration> xParaEnum = xParaEnumAccess->createEnumeration(); - OUStringBuffer aBuf; - while (xParaEnum->hasMoreElements()) - { - uno::Reference<container::XEnumerationAccess> xRangeEnumAccess(xParaEnum->nextElement(), uno::UNO_QUERY); - uno::Reference<container::XEnumeration> xRangeEnum = xRangeEnumAccess->createEnumeration(); - while (xRangeEnum->hasMoreElements()) - { - uno::Reference<text::XTextRange> xRange(xRangeEnum->nextElement(), uno::UNO_QUERY); - aBuf.append(xRange->getString()); - } - } - CPPUNIT_ASSERT_EQUAL((sal_Int32)5, aBuf.getLength()); + CPPUNIT_ASSERT_EQUAL(5, getLength()); } void RtfModelTest::testN695479() @@ -229,6 +238,12 @@ void RtfModelTest::testN695479() CPPUNIT_ASSERT(bDrawFound); } +void RtfModelTest::testFdo42465() +{ + load(OUString(RTL_CONSTASCII_USTRINGPARAM("fdo42465.rtf"))); + CPPUNIT_ASSERT_EQUAL(3, getLength()); +} + CPPUNIT_TEST_SUITE_REGISTRATION(RtfModelTest); CPPUNIT_PLUGIN_IMPLEMENT(); |