diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2013-05-13 11:58:11 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2013-05-13 12:19:18 +0200 |
commit | 95d8fa0bcd3996b22af3736f439971f419e41255 (patch) | |
tree | 4fee6da41b901894c35032eddd2c0387da7666dd | |
parent | ef8a4af30a3261d92311c7c76af9cb9b123d7a54 (diff) |
bnc#816603 testcase
Make sure that at least full-page-width multi-page floating tables are
imported on multiple pages.
Change-Id: Ifb974d50c50b1495634ac2652a3ae46235bb5f52
-rw-r--r-- | sw/qa/extras/inc/swmodeltestbase.hxx | 12 | ||||
-rw-r--r-- | sw/qa/extras/rtfimport/rtfimport.cxx | 11 | ||||
-rw-r--r-- | sw/qa/extras/ww8import/data/n816603.doc | bin | 0 -> 67072 bytes | |||
-rw-r--r-- | sw/qa/extras/ww8import/ww8import.cxx | 12 |
4 files changed, 23 insertions, 12 deletions
diff --git a/sw/qa/extras/inc/swmodeltestbase.hxx b/sw/qa/extras/inc/swmodeltestbase.hxx index fc8682d39f1c..3f0fab8c8545 100644 --- a/sw/qa/extras/inc/swmodeltestbase.hxx +++ b/sw/qa/extras/inc/swmodeltestbase.hxx @@ -10,9 +10,11 @@ #include <com/sun/star/container/XContentEnumerationAccess.hpp> #include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/style/XStyleFamiliesSupplier.hpp> +#include <com/sun/star/text/XPageCursor.hpp> #include <com/sun/star/text/XTextDocument.hpp> #include <com/sun/star/text/XTextRange.hpp> #include <com/sun/star/text/XTextTable.hpp> +#include <com/sun/star/text/XTextViewCursorSupplier.hpp> #include <com/sun/star/table/XCell.hpp> #include <test/bootstrapfixture.hxx> @@ -312,6 +314,16 @@ protected: } } + /// Get page count. + int getPages() + { + uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY); + uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY); + uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY); + xCursor->jumpToLastPage(); + return xCursor->getPage(); + } + uno::Reference<lang::XComponent> mxComponent; xmlBufferPtr mpXmlBuffer; diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index 8f3e113fbb90..f8c8a2fe3d09 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -143,8 +143,6 @@ public: private: void run(); - /// Get page count. - int getPages(); /// Copy&paste helper. void paste(OUString aFilename, uno::Reference<text::XTextRange> xTextRange = uno::Reference<text::XTextRange>()) { @@ -285,15 +283,6 @@ void Test::run() } } -int Test::getPages() -{ - uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY); - uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY); - uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY); - xCursor->jumpToLastPage(); - return xCursor->getPage(); -} - void Test::testFdo45553() { uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY); diff --git a/sw/qa/extras/ww8import/data/n816603.doc b/sw/qa/extras/ww8import/data/n816603.doc Binary files differnew file mode 100644 index 000000000000..9186f628ff06 --- /dev/null +++ b/sw/qa/extras/ww8import/data/n816603.doc diff --git a/sw/qa/extras/ww8import/ww8import.cxx b/sw/qa/extras/ww8import/ww8import.cxx index 645dbe805a8e..157fa09a2ef6 100644 --- a/sw/qa/extras/ww8import/ww8import.cxx +++ b/sw/qa/extras/ww8import/ww8import.cxx @@ -30,6 +30,7 @@ public: void testAllGapsWord(); void testFdo59530(); void testI120158(); + void testN816603(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -52,7 +53,8 @@ void Test::run() {"n757905.doc", &Test::testN757905}, {"all_gaps_word.doc", &Test::testAllGapsWord}, {"fdo59530.doc", &Test::testFdo59530}, - {"i120158.doc", &Test::testI120158} + {"i120158.doc", &Test::testI120158}, + {"n816603.doc", &Test::testN816603}, }; header(); for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i) @@ -250,6 +252,14 @@ void Test::testI120158() CPPUNIT_ASSERT(sFieldResult.endsWith("AM") || sFieldResult.endsWith("PM")); } +void Test::testN816603() +{ + // Bugdoc was 5 page in Word, 1 in Writer due to pointlessly wrapping the + // table in a frame. Exact layout may depend on fonts available, etc. -- + // but at least make sure that our table spans over multiple pages now. + CPPUNIT_ASSERT(getPages() > 1); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); |