fdo#46669 testcase
diff --git a/sw/CppunitTest_sw_subsequent_rtfimport.mk b/sw/CppunitTest_sw_subsequent_rtfimport.mk
index 2cc2110..906bf57 100644
--- a/sw/CppunitTest_sw_subsequent_rtfimport.mk
+++ b/sw/CppunitTest_sw_subsequent_rtfimport.mk
@@ -43,6 +43,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sw_subsequent_rtfimport, \
    unotest \
    vcl \
    tl \
    utl \
	$(gb_UWINAPI) \
))

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 0000000..3eca5f0
--- /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 0000000..6ab0e63
--- /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 28517ee..d0376b7 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();