summaryrefslogtreecommitdiff
path: root/sw/qa/extras/rtfimport/rtfimport.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/qa/extras/rtfimport/rtfimport.cxx')
-rw-r--r--sw/qa/extras/rtfimport/rtfimport.cxx72
1 files changed, 72 insertions, 0 deletions
diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx
index 1c3ed00a34ba..93e1904c29a2 100644
--- a/sw/qa/extras/rtfimport/rtfimport.cxx
+++ b/sw/qa/extras/rtfimport/rtfimport.cxx
@@ -475,6 +475,78 @@ DECLARE_RTFIMPORT_TEST(testFdo48037, "fdo48037.rtf")
CPPUNIT_ASSERT_EQUAL(nExpected, nActual);
}
+DECLARE_RTFIMPORT_TEST(testFdo85812, "fdo85812.rtf")
+{
+ lang::Locale locale(getProperty<lang::Locale>(
+ getRun(getParagraph(1), 1, "This "), "CharLocale"));
+ // the \lang inside the group was applied to CJK not Western
+ CPPUNIT_ASSERT_EQUAL(OUString("en"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("US"), locale.Country);
+ // further testing indicates that Word is doing really weird stuff
+ // \loch \hich \dbch is reset by opening a group
+ locale = getProperty<lang::Locale>(
+ getRun(getParagraph(2), 1, "CharGroup"), "CharLocale");
+ CPPUNIT_ASSERT_EQUAL(OUString("ru"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("RU"), locale.Country);
+ locale = getProperty<lang::Locale>(
+ getRun(getParagraph(2), 2, "AfterChar"), "CharLocale");
+ CPPUNIT_ASSERT_EQUAL(OUString("en"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("US"), locale.Country);
+ locale = getProperty<lang::Locale>(
+ getRun(getParagraph(3), 2, "AfterBookmark"), "CharLocale");
+ CPPUNIT_ASSERT_EQUAL(OUString("en"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("US"), locale.Country);
+ locale = getProperty<lang::Locale>(
+ getRun(getParagraph(4), 1, "CharGroup"), "CharLocale");
+ CPPUNIT_ASSERT_EQUAL(OUString("ru"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("RU"), locale.Country);
+ locale = getProperty<lang::Locale>(
+ getRun(getParagraph(4), 1, "CharGroup"), "CharLocaleComplex");
+ CPPUNIT_ASSERT_EQUAL(OUString("ar"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("DZ"), locale.Country);
+ locale = getProperty<lang::Locale>(
+ getRun(getParagraph(4), 2, "AfterChar"), "CharLocale");
+ CPPUNIT_ASSERT_EQUAL(OUString("en"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("US"), locale.Country);
+ locale = getProperty<lang::Locale>(
+ getRun(getParagraph(4), 2, "AfterChar"), "CharLocaleComplex");
+ CPPUNIT_ASSERT_EQUAL(OUString("ar"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("DZ"), locale.Country);
+ locale = getProperty<lang::Locale>(
+ getRun(getParagraph(5), 2, "AfterBookmark"), "CharLocale");
+ CPPUNIT_ASSERT_EQUAL(OUString("en"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("US"), locale.Country);
+ locale = getProperty<lang::Locale>(
+ getRun(getParagraph(5), 2, "AfterBookmark"), "CharLocaleComplex");
+ CPPUNIT_ASSERT_EQUAL(OUString("ar"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("DZ"), locale.Country);
+ // \ltrch \rtlch works differently - it is sticky across groups
+ locale = getProperty<lang::Locale>(
+ getRun(getParagraph(6), 1, "CharGroup"), "CharLocale");
+ CPPUNIT_ASSERT_EQUAL(OUString("en"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("US"), locale.Country);
+ locale = getProperty<lang::Locale>(
+ getRun(getParagraph(6), 1, "CharGroup"), "CharLocaleComplex");
+ CPPUNIT_ASSERT_EQUAL(OUString("ar"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("DZ"), locale.Country);
+ locale = getProperty<lang::Locale>(
+ getRun(getParagraph(6), 2, "AfterChar"), "CharLocale");
+ CPPUNIT_ASSERT_EQUAL(OUString("en"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("US"), locale.Country);
+ locale = getProperty<lang::Locale>(
+ getRun(getParagraph(6), 2, "AfterChar"), "CharLocaleComplex");
+ CPPUNIT_ASSERT_EQUAL(OUString("ar"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("EG"), locale.Country);
+ locale = getProperty<lang::Locale>(
+ getRun(getParagraph(7), 2, "AfterBookmark"), "CharLocale");
+ CPPUNIT_ASSERT_EQUAL(OUString("en"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("US"), locale.Country);
+ locale = getProperty<lang::Locale>(
+ getRun(getParagraph(7), 2, "AfterBookmark"), "CharLocaleComplex");
+ CPPUNIT_ASSERT_EQUAL(OUString("ar"), locale.Language);
+ CPPUNIT_ASSERT_EQUAL(OUString("EG"), locale.Country);
+}
+
DECLARE_RTFIMPORT_TEST(testFdo47764, "fdo47764.rtf")
{
// \cbpat with zero argument should mean the auto (-1) color, not a default color (black)