diff options
-rw-r--r-- | sw/qa/extras/ww8export/data/tdf56738.doc | bin | 0 -> 49152 bytes | |||
-rw-r--r-- | sw/qa/extras/ww8export/ww8export4.cxx | 43 |
2 files changed, 43 insertions, 0 deletions
diff --git a/sw/qa/extras/ww8export/data/tdf56738.doc b/sw/qa/extras/ww8export/data/tdf56738.doc Binary files differnew file mode 100644 index 000000000000..20c5a9b9727d --- /dev/null +++ b/sw/qa/extras/ww8export/data/tdf56738.doc diff --git a/sw/qa/extras/ww8export/ww8export4.cxx b/sw/qa/extras/ww8export/ww8export4.cxx index 084eb178af6a..9eed7ea9b0bf 100644 --- a/sw/qa/extras/ww8export/ww8export4.cxx +++ b/sw/qa/extras/ww8export/ww8export4.cxx @@ -560,6 +560,49 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf135710) CPPUNIT_ASSERT_DOUBLES_EQUAL(static_cast<double>(nFlyLeft), static_cast<double>(nFlyLeftAfter), 2.0); } +CPPUNIT_TEST_FIXTURE(Test, testTdf56738) +{ + auto verify = [this]() { + uno::Reference<text::XTextFieldsSupplier> xTextFieldsSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XEnumerationAccess> xFieldsAccess(xTextFieldsSupplier->getTextFields()); + uno::Reference<container::XEnumeration> xFields(xFieldsAccess->createEnumeration()); + + // make sure we get to the correct field to test + CPPUNIT_ASSERT(xFields->hasMoreElements()); + uno::Reference<text::XTextField> xField; + xField.set(xFields->nextElement(), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(u"2"_ustr, xField->getPresentation(false)); + + CPPUNIT_ASSERT(xFields->hasMoreElements()); + xField.set(xFields->nextElement(), uno::UNO_QUERY_THROW); + CPPUNIT_ASSERT_EQUAL(u"3"_ustr, xField->getPresentation(false)); + + CPPUNIT_ASSERT(xFields->hasMoreElements()); + xField.set(xFields->nextElement(), uno::UNO_QUERY_THROW); + OUString sExpComment1(u"Como eu vou saber se é a USG é anterior a 20s????"_ustr); + CPPUNIT_ASSERT_EQUAL(sExpComment1, getProperty<OUString>(xField, u"Content"_ustr)); + + CPPUNIT_ASSERT(xFields->hasMoreElements()); + xField.set(xFields->nextElement(), uno::UNO_QUERY_THROW); + + OUString sExpComment(u"Não sei se é relevante esta pergunta. O que eu queria saber é se o médico ate\ +nde muito parto na água. Tb posso fazer porcentagem de atendimento..."_ustr); + + // Without the fix in place this fails with + // Expected: Não sei se é relevante esta pergunta. O que eu queria saber é + // se o médico atende muito parto na água. Tb posso fazer porcentagem de atendimento... + // Actual: N縊 sei se �relevante esta pergunta. O que eu queria saber � + // se o m馘ico atende muito parto na 疊ua. Tb posso fazer porcentagem de atendimento... + // i.e. the display characters of the second comment were getting re-intrepeted from Latin-1 to Shift-Js + CPPUNIT_ASSERT_EQUAL(sExpComment, getProperty<OUString>(xField, u"Content"_ustr)); + }; + + // make sure everything survives roundtrip + createSwDoc("tdf56738.doc"); + verify(); + saveAndReload(mpFilter); + verify(); +} } // end of anonymous namespace CPPUNIT_PLUGIN_IMPLEMENT(); |