diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2012-10-17 10:09:57 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2012-10-17 10:09:57 +0200 |
commit | cf16c324c98e597517eff73b24234d78567b9db1 (patch) | |
tree | 50a5121ca1ff07986b816e036b78ec6e6ea01d23 /sw/qa | |
parent | 625e91c75fe66d4e067213a561f19e626cfbfa93 (diff) |
fdo#46669 testcase
Diffstat (limited to 'sw/qa')
-rw-r--r-- | sw/qa/extras/rtfimport/data/copypaste-pagestyle-paste.rtf | 17 | ||||
-rw-r--r-- | sw/qa/extras/rtfimport/data/copypaste-pagestyle.rtf | 3 | ||||
-rw-r--r-- | sw/qa/extras/rtfimport/rtfimport.cxx | 29 |
3 files changed, 49 insertions, 0 deletions
diff --git a/sw/qa/extras/rtfimport/data/copypaste-pagestyle-paste.rtf b/sw/qa/extras/rtfimport/data/copypaste-pagestyle-paste.rtf new file mode 100644 index 000000000000..3eca5f0275f2 --- /dev/null +++ b/sw/qa/extras/rtfimport/data/copypaste-pagestyle-paste.rtf @@ -0,0 +1,17 @@ +{\rtf\ansi +{\fonttbl +{\f0\froman\fprq2\fcharset0 Times New Roman;} +{\f1\fprq2\fcharset0 Arial;} +{\f2\fprq2\fcharset0 Arial;} +{\f3\fswiss\fprq2\fcharset0 Arial;} +{\f4\fprq2\fcharset0 Droid Sans Fallback;} +} +{\colortbl\red255\green255\blue255;} +{\*\EditEnginePoolDefaults\ltrpar\fi0\li0\ri0\fi0\li0\ri0\sb0\sa0\sl0\slmult0\ql\cf0\f0\fs13\b0\ulnone\strike0\i0\outl0\shad0\kerning0\expndtw0\f1\f1\fs13\fs13\b0\b0\i0\i0\accnone\olnone} +\deftab408 +{ +\ltrpar\f3\fs20\b0\ulnone\strike0\i0\outl0\shad0\f4\f1\fs20\fs20\b0\b0\i0\i0\accnone\olnone +{\f3\fs20\b0\i0 1} +\par\pard\plain +} +} diff --git a/sw/qa/extras/rtfimport/data/copypaste-pagestyle.rtf b/sw/qa/extras/rtfimport/data/copypaste-pagestyle.rtf new file mode 100644 index 000000000000..6ab0e635f3f8 --- /dev/null +++ b/sw/qa/extras/rtfimport/data/copypaste-pagestyle.rtf @@ -0,0 +1,3 @@ +{\rtf1 +\paperh16838\paperw11906\margl1134\margr1134\margt1134\margb1134 +\par } diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index 28517ee7dad1..d0376b7aca40 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -28,6 +28,8 @@ #include "../swmodeltestbase.hxx" #include "bordertest.hxx" +#include <com/sun/star/document/XFilter.hpp> +#include <com/sun/star/document/XImporter.hpp> #include <com/sun/star/drawing/EnhancedCustomShapeSegment.hpp> #include <com/sun/star/drawing/XDrawPageSupplier.hpp> #include <com/sun/star/graphic/GraphicType.hpp> @@ -54,6 +56,8 @@ #include <rtl/ustring.hxx> #include <vcl/outdev.hxx> #include <vcl/svapp.hxx> +#include <unotools/ucbstreamhelper.hxx> +#include <unotools/streamwrap.hxx> #define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L)) @@ -110,6 +114,7 @@ public: void testFdo49655(); void testFdo52475(); void testFdo55493(); + void testCopyPastePageStyle(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -163,6 +168,7 @@ public: CPPUNIT_TEST(testFdo49655); CPPUNIT_TEST(testFdo52475); CPPUNIT_TEST(testFdo55493); + CPPUNIT_TEST(testCopyPastePageStyle); #endif CPPUNIT_TEST_SUITE_END(); @@ -864,6 +870,29 @@ void Test::testFdo55493() CPPUNIT_ASSERT_EQUAL(sal_Int32(3969), xShape->getSize().Width); } +void Test::testCopyPastePageStyle() +{ + // The problem was that RTF import during copy&paste did not ignore page styles. + load("copypaste-pagestyle.rtf"); + + // Once we have more copy&paste tests, makes sense to refactor this to some helper method. + uno::Reference<uno::XInterface> xInterface(m_xSFactory->createInstance("com.sun.star.comp.Writer.RtfFilter"), uno::UNO_QUERY_THROW); + uno::Reference<document::XImporter> xImporter(xInterface, uno::UNO_QUERY_THROW); + xImporter->setTargetDocument(mxComponent); + uno::Reference<document::XFilter> xFilter(xInterface, uno::UNO_QUERY_THROW); + uno::Sequence<beans::PropertyValue> aDescriptor(2); + aDescriptor[0].Name = "InputStream"; + SvStream* pStream = utl::UcbStreamHelper::CreateStream(getURLFromSrc("/sw/qa/extras/rtfimport/data/") + "copypaste-pagestyle-paste.rtf", STREAM_WRITE); + uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(*pStream)); + aDescriptor[0].Value <<= xStream; + aDescriptor[1].Name = "IsNewDoc"; + aDescriptor[1].Value <<= sal_False; + xFilter->filter(aDescriptor); + + uno::Reference<beans::XPropertySet> xPropertySet(getStyles("PageStyles")->getByName("Default"), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(sal_Int32(21001), getProperty<sal_Int32>(xPropertySet, "Width")); // Was letter, i.e. 21590 +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); |