summaryrefslogtreecommitdiff
path: root/i18nlangtag
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2021-08-20 22:49:40 +0200
committerEike Rathke <erack@redhat.com>2021-08-21 01:58:16 +0200
commit6d6119bc4e4a783c76b3ae35626d6fea0de0abac (patch)
tree0a5be7d458792a6b7258930a9a4f9db81efc989f /i18nlangtag
parentc482aefe08e4486aa35ba87edea1a341c97b8610 (diff)
Unit test for LanguageTagIcu::getDisplayName()
Change-Id: Ibe95fba21ed94be7fb4848f19161d492bc403e4d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120798 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'i18nlangtag')
-rw-r--r--i18nlangtag/CppunitTest_i18nlangtag_test_languagetag.mk2
-rw-r--r--i18nlangtag/qa/cppunit/test_languagetag.cxx75
2 files changed, 77 insertions, 0 deletions
diff --git a/i18nlangtag/CppunitTest_i18nlangtag_test_languagetag.mk b/i18nlangtag/CppunitTest_i18nlangtag_test_languagetag.mk
index 72402632d341..801bfe7b99ff 100644
--- a/i18nlangtag/CppunitTest_i18nlangtag_test_languagetag.mk
+++ b/i18nlangtag/CppunitTest_i18nlangtag_test_languagetag.mk
@@ -21,6 +21,8 @@ $(eval $(call gb_CppunitTest_use_libraries,i18nlangtag_test_languagetag,\
))
$(eval $(call gb_CppunitTest_use_externals,i18nlangtag_test_languagetag,\
+ icu_headers \
+ icuuc \
liblangtag \
libxml2 \
))
diff --git a/i18nlangtag/qa/cppunit/test_languagetag.cxx b/i18nlangtag/qa/cppunit/test_languagetag.cxx
index c3dfb151e14e..8f76fb58d6f1 100644
--- a/i18nlangtag/qa/cppunit/test_languagetag.cxx
+++ b/i18nlangtag/qa/cppunit/test_languagetag.cxx
@@ -16,6 +16,7 @@
#include <i18nlangtag/mslangid.hxx>
#include <i18nlangtag/languagetag.hxx>
+#include <i18nlangtag/languagetagicu.hxx>
#include <rtl/ustring.hxx>
@@ -33,10 +34,12 @@ public:
void testAllTags();
void testAllIsoLangEntries();
+ void testDisplayNames();
CPPUNIT_TEST_SUITE(TestLanguageTag);
CPPUNIT_TEST(testAllTags);
CPPUNIT_TEST(testAllIsoLangEntries);
+ CPPUNIT_TEST(testDisplayNames);
CPPUNIT_TEST_SUITE_END();
};
@@ -803,6 +806,78 @@ void TestLanguageTag::testAllIsoLangEntries()
//CPPUNIT_ASSERT( true == false );
}
+void TestLanguageTag::testDisplayNames()
+{
+ OUString aStr;
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("en-US"), LanguageTag("en-US"));
+ CPPUNIT_ASSERT_EQUAL( OUString("English (United States)"), aStr);
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("en-US"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("English (United States)"), aStr);
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("en"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("English"), aStr);
+
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("en-US"), LanguageTag("de-DE"));
+ CPPUNIT_ASSERT_EQUAL( OUString("Englisch (Vereinigte Staaten)"), aStr);
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("en-US"), LanguageTag("de"));
+ CPPUNIT_ASSERT_EQUAL( OUString("Englisch (Vereinigte Staaten)"), aStr);
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("en"), LanguageTag("de"));
+ CPPUNIT_ASSERT_EQUAL( OUString("Englisch"), aStr);
+
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("de-DE"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("German (Germany)"), aStr);
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("de"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("German"), aStr);
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("de-DE-1901"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("German (Germany, Traditional German orthography)"), aStr);
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("de-DE-1901"), LanguageTag("de-DE"));
+ CPPUNIT_ASSERT_EQUAL( OUString("Deutsch (Deutschland, Alte deutsche Rechtschreibung)"), aStr);
+
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("en-GB"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("English (United Kingdom)"), aStr);
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("en-GB-oxendict"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("English (United Kingdom, Oxford English Dictionary spelling)"), aStr);
+
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("ca-ES-valencia"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("Catalan (Spain, Valencian)"), aStr);
+
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("sr-Cyrl-RS"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("Serbian (Serbia)"), aStr);
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("sr-Latn-RS"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("Serbian (Latin, Serbia)"), aStr);
+
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("tlh"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("Klingon"), aStr);
+
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("und"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("Unknown language"), aStr);
+
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("zxx"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("No linguistic content"), aStr);
+
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("x-lala"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("Unknown language (Private-Use=lala)"), aStr);
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("x-lala"), LanguageTag("de"));
+ CPPUNIT_ASSERT_EQUAL( OUString("Unbekannte Sprache (Privatnutzung=lala)"), aStr);
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("en-GB"), LanguageTag("x-lala"));
+ CPPUNIT_ASSERT_EQUAL( OUString("en (GB)"), aStr);
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("en-GB-oxendict"), LanguageTag("x-lala"));
+ CPPUNIT_ASSERT_EQUAL( OUString("en (GB, OXENDICT)"), aStr);
+
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("unreg-and-bad"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("unreg (Andorra, BAD)"), aStr); // a tad of a surprise..
+
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("en-029"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("English (Caribbean)"), aStr);
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("fr-015"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("French (Northern Africa)"), aStr);
+
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("qtz"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("qtz"), aStr);
+
+ aStr = LanguageTagIcu::getDisplayName( LanguageTag("*"), LanguageTag("en"));
+ CPPUNIT_ASSERT_EQUAL( OUString("*"), aStr);
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION( TestLanguageTag );
}