From 5de52551a963b932cc23c2ea75f709fa1924520b Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Tue, 26 Feb 2013 17:28:27 +0100 Subject: fdo#61507 export of RTF_TITLE may need RTF_UPR and RTF_UD Change-Id: I3b8fe209a96e5119541e09cb5dbda8a2c6926b40 --- sw/qa/extras/rtfexport/data/fdo61507.rtf | 12 ++++++++++++ sw/qa/extras/rtfexport/rtfexport.cxx | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 sw/qa/extras/rtfexport/data/fdo61507.rtf (limited to 'sw/qa/extras/rtfexport') diff --git a/sw/qa/extras/rtfexport/data/fdo61507.rtf b/sw/qa/extras/rtfexport/data/fdo61507.rtf new file mode 100644 index 000000000000..1fe8654f7f86 --- /dev/null +++ b/sw/qa/extras/rtfexport/data/fdo61507.rtf @@ -0,0 +1,12 @@ +{\rtf1 +{\info +{\upr +{\title \'c9\'c1???} +{\*\ud\uc0 +{\title \'c9\'c1 +{\uc1\u336 O\u368 U\u8749 ?} +} +} +} +} +Hello.} diff --git a/sw/qa/extras/rtfexport/rtfexport.cxx b/sw/qa/extras/rtfexport/rtfexport.cxx index be9b27b96500..529467092a8c 100644 --- a/sw/qa/extras/rtfexport/rtfexport.cxx +++ b/sw/qa/extras/rtfexport/rtfexport.cxx @@ -69,6 +69,7 @@ public: void testTextFrames(); void testFdo53604(); void testFdo52286(); + void testFdo61507(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -113,6 +114,7 @@ void Test::run() {"textframes.odt", &Test::testTextFrames}, {"fdo53604.odt", &Test::testFdo53604}, {"fdo52286.odt", &Test::testFdo52286}, + {"fdo61507.rtf", &Test::testFdo61507}, }; // Don't test the first import of these, for some reason those tests fail const char* aBlacklist[] = { @@ -463,6 +465,23 @@ void Test::testFdo52286() CPPUNIT_ASSERT_EQUAL(sal_Int32(58), getProperty(getRun(getParagraph(2), 2), "CharEscapementHeight")); } +void Test::testFdo61507() +{ + /* + * Unicode-only characters in \title confused Wordpad. Once the exporter + * was fixed to guard the problematic characters with \upr and \ud, the + * importer didn't cope with these new keywords. + */ + + uno::Reference xDocumentPropertiesSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference xDocumentProperties(xDocumentPropertiesSupplier->getDocumentProperties()); + OUString aExpected = OUString("ÉÁŐŰ∭", 11, RTL_TEXTENCODING_UTF8); + CPPUNIT_ASSERT_EQUAL(aExpected, xDocumentProperties->getTitle()); + + // Only "Hello.", no additional characters. + CPPUNIT_ASSERT_EQUAL(6, getLength()); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); -- cgit