i18nlangtag/CppunitTest_i18nlangtag_test_languagetag.mk |    2 
 i18nlangtag/qa/cppunit/test_languagetag.cxx             |   75 ++++++++++++++++
 2 files changed, 77 insertions(+)

New commits:
commit 6d6119bc4e4a783c76b3ae35626d6fea0de0abac
Author:     Eike Rathke <er...@redhat.com>
AuthorDate: Fri Aug 20 22:49:40 2021 +0200
Commit:     Eike Rathke <er...@redhat.com>
CommitDate: Sat Aug 21 01:58:16 2021 +0200

    Unit test for LanguageTagIcu::getDisplayName()
    
    Change-Id: Ibe95fba21ed94be7fb4848f19161d492bc403e4d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120798
    Tested-by: Jenkins
    Reviewed-by: Eike Rathke <er...@redhat.com>

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 );
 
 }

Reply via email to