Kaydet (Commit) 95d8fa0b authored tarafından Miklos Vajna's avatar Miklos Vajna

bnc#816603 testcase

Make sure that at least full-page-width multi-page floating tables are
imported on multiple pages.

Change-Id: Ifb974d50c50b1495634ac2652a3ae46235bb5f52
üst ef8a4af3
...@@ -10,9 +10,11 @@ ...@@ -10,9 +10,11 @@
#include <com/sun/star/container/XContentEnumerationAccess.hpp> #include <com/sun/star/container/XContentEnumerationAccess.hpp>
#include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/style/XStyleFamiliesSupplier.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/XTextDocument.hpp>
#include <com/sun/star/text/XTextRange.hpp> #include <com/sun/star/text/XTextRange.hpp>
#include <com/sun/star/text/XTextTable.hpp> #include <com/sun/star/text/XTextTable.hpp>
#include <com/sun/star/text/XTextViewCursorSupplier.hpp>
#include <com/sun/star/table/XCell.hpp> #include <com/sun/star/table/XCell.hpp>
#include <test/bootstrapfixture.hxx> #include <test/bootstrapfixture.hxx>
...@@ -312,6 +314,16 @@ protected: ...@@ -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; uno::Reference<lang::XComponent> mxComponent;
xmlBufferPtr mpXmlBuffer; xmlBufferPtr mpXmlBuffer;
......
...@@ -143,8 +143,6 @@ public: ...@@ -143,8 +143,6 @@ public:
private: private:
void run(); void run();
/// Get page count.
int getPages();
/// Copy&paste helper. /// Copy&paste helper.
void paste(OUString aFilename, uno::Reference<text::XTextRange> xTextRange = uno::Reference<text::XTextRange>()) void paste(OUString aFilename, uno::Reference<text::XTextRange> xTextRange = uno::Reference<text::XTextRange>())
{ {
...@@ -285,15 +283,6 @@ void Test::run() ...@@ -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() void Test::testFdo45553()
{ {
uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY); uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
......
This diff was suppressed by a .gitattributes entry.
...@@ -30,6 +30,7 @@ public: ...@@ -30,6 +30,7 @@ public:
void testAllGapsWord(); void testAllGapsWord();
void testFdo59530(); void testFdo59530();
void testI120158(); void testI120158();
void testN816603();
CPPUNIT_TEST_SUITE(Test); CPPUNIT_TEST_SUITE(Test);
#if !defined(MACOSX) && !defined(WNT) #if !defined(MACOSX) && !defined(WNT)
...@@ -52,7 +53,8 @@ void Test::run() ...@@ -52,7 +53,8 @@ void Test::run()
{"n757905.doc", &Test::testN757905}, {"n757905.doc", &Test::testN757905},
{"all_gaps_word.doc", &Test::testAllGapsWord}, {"all_gaps_word.doc", &Test::testAllGapsWord},
{"fdo59530.doc", &Test::testFdo59530}, {"fdo59530.doc", &Test::testFdo59530},
{"i120158.doc", &Test::testI120158} {"i120158.doc", &Test::testI120158},
{"n816603.doc", &Test::testN816603},
}; };
header(); header();
for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i) for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i)
...@@ -250,6 +252,14 @@ void Test::testI120158() ...@@ -250,6 +252,14 @@ void Test::testI120158()
CPPUNIT_ASSERT(sFieldResult.endsWith("AM") || sFieldResult.endsWith("PM")); 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_TEST_SUITE_REGISTRATION(Test);
CPPUNIT_PLUGIN_IMPLEMENT(); CPPUNIT_PLUGIN_IMPLEMENT();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment