summaryrefslogtreecommitdiff
path: root/i18nlangtag/qa/cppunit/test_languagetag.cxx
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2013-10-17 18:33:47 +0200
committerEike Rathke <erack@redhat.com>2013-10-17 18:36:05 +0200
commitc450aafad00da4553fc6f7abadb19b4b16df6b88 (patch)
tree1521226863a3fba436f010f68b307f96c0d45dfb /i18nlangtag/qa/cppunit/test_languagetag.cxx
parent7bbd58eafc3146abcefc73d2d1ca6869bb47ef5a (diff)
solve the 'dz' vs 'bo' and 'nn', 'nb' and 'nn' share primary ID cases
Change-Id: I7ccead4493c9848b55f642c2636daa3c60aeb7a6
Diffstat (limited to 'i18nlangtag/qa/cppunit/test_languagetag.cxx')
-rw-r--r--i18nlangtag/qa/cppunit/test_languagetag.cxx24
1 files changed, 23 insertions, 1 deletions
diff --git a/i18nlangtag/qa/cppunit/test_languagetag.cxx b/i18nlangtag/qa/cppunit/test_languagetag.cxx
index 8a055be653ec..6f7cc2d3dc49 100644
--- a/i18nlangtag/qa/cppunit/test_languagetag.cxx
+++ b/i18nlangtag/qa/cppunit/test_languagetag.cxx
@@ -335,13 +335,35 @@ void TestLanguageTag::testAllTags()
CPPUNIT_ASSERT( aLocale.Variant == "" );
LanguageType de_LangID = de.getLanguageType();
CPPUNIT_ASSERT( de_LangID != LANGUAGE_GERMAN );
- CPPUNIT_ASSERT( MsLangId::getPrimaryLanguage( de_LangID) == MsLangId::getPrimaryLanguage( LANGUAGE_GERMAN) );
+ CPPUNIT_ASSERT( de_LangID == MsLangId::getPrimaryLanguage( LANGUAGE_GERMAN) );
CPPUNIT_ASSERT( de.makeFallback().getBcp47() == "de-DE");
// Check registered mapping.
LanguageTag de_l( de_LangID);
CPPUNIT_ASSERT( de_l.getBcp47() == s_de );
}
+ // "bo" and "dz" share the same primary language ID, only one gets it
+ // assigned, "dz" language-only has a special mapping.
+ {
+ LanguageTag bo( "bo", true );
+ CPPUNIT_ASSERT( bo.getLanguageType() == MsLangId::getPrimaryLanguage( LANGUAGE_TIBETAN) );
+ LanguageTag dz( "dz", true );
+ CPPUNIT_ASSERT( dz.getLanguageType() == LANGUAGE_USER_DZONGKHA_MAP_LONLY );
+ }
+
+ // "no", "nb" and "nn" share the same primary language ID, which even is
+ // assigned to "no-NO" for legacy so none gets it assigned, all on-the-fly.
+ {
+ LanguageTag no( "no", true );
+ CPPUNIT_ASSERT( LanguageTag::isOnTheFlyID( no.getLanguageType()) );
+ LanguageTag nb( "nb", true );
+ CPPUNIT_ASSERT( LanguageTag::isOnTheFlyID( nb.getLanguageType()) );
+ LanguageTag nn( "nn", true );
+ CPPUNIT_ASSERT( LanguageTag::isOnTheFlyID( nn.getLanguageType()) );
+ LanguageTag no_NO( "no-NO", true );
+ CPPUNIT_ASSERT( no_NO.getLanguageType() == LANGUAGE_NORWEGIAN );
+ }
+
// 'de-1901' derived from 'de-DE-1901' grandfathered to check that it is
// accepted as (DIGIT 3ALNUM) variant
{