summaryrefslogtreecommitdiff
path: root/i18npool/qa
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2012-12-11 11:46:19 +0100
committerEike Rathke <erack@redhat.com>2012-12-11 13:00:31 +0100
commit4d24507451fbc2b7d72cf5f7048a424d52b63850 (patch)
treedccb6fce627a9890d65aed2787612cc5024cc15b /i18npool/qa
parent055fca04a4e00b14e68fa5860b417cb25e471299 (diff)
avoid liblangtag processing for known locales, and know 'qtz'
For "simple" known (to us) locales avoid the overhead of liblangtag, also in preparation of not having to initialize its database during startup. This also enables recognition of the 'qtz' pseudolocale for key ID resources again, see fdo#57413 Change-Id: Id52a1ddc37b42063e3bf68a6dbeaeacfbfa704ef
Diffstat (limited to 'i18npool/qa')
-rw-r--r--i18npool/qa/cppunit/test_languagetag.cxx42
1 files changed, 41 insertions, 1 deletions
diff --git a/i18npool/qa/cppunit/test_languagetag.cxx b/i18npool/qa/cppunit/test_languagetag.cxx
index deaeecd92768..f748802e5e53 100644
--- a/i18npool/qa/cppunit/test_languagetag.cxx
+++ b/i18npool/qa/cppunit/test_languagetag.cxx
@@ -61,13 +61,21 @@ void TestLanguageTag::testAllTags()
CPPUNIT_ASSERT( aLocale.Country == "DE" );
CPPUNIT_ASSERT( aLocale.Variant == "" );
CPPUNIT_ASSERT( nLanguageType == LANGUAGE_GERMAN );
+ CPPUNIT_ASSERT( de_DE.getLanguage() == "de" );
+ CPPUNIT_ASSERT( de_DE.getCountry() == "DE" );
+ CPPUNIT_ASSERT( de_DE.getScript() == "" );
+ CPPUNIT_ASSERT( de_DE.getLanguageAndScript() == "de" );
#else
// The simple replacement code doesn't do any fancy stuff.
CPPUNIT_ASSERT_MESSAGE("Default script was stripped after canonicalize!?!", aBcp47 == s_de_Latn_DE );
CPPUNIT_ASSERT( aLocale.Language == "qlt" );
CPPUNIT_ASSERT( aLocale.Country == "DE" );
CPPUNIT_ASSERT( aLocale.Variant == "de-Latn-DE" );
- (void)nLanguageType; //XXX CPPUNIT_ASSERT( nLanguageType == LANGUAGE_GERMAN );
+ CPPUNIT_ASSERT( nLanguageType == LANGUAGE_SYSTEM ); // XXX not resolved!
+ CPPUNIT_ASSERT( de_DE.getLanguage() == "de" );
+ CPPUNIT_ASSERT( de_DE.getCountry() == "DE" );
+ CPPUNIT_ASSERT( de_DE.getScript() == "Latn" );
+ CPPUNIT_ASSERT( de_DE.getLanguageAndScript() == "de-Latn" );
#endif
}
@@ -127,6 +135,10 @@ void TestLanguageTag::testAllTags()
CPPUNIT_ASSERT( sr_RS.isValidBcp47() == true );
CPPUNIT_ASSERT( sr_RS.isIsoLocale() == false );
CPPUNIT_ASSERT( sr_RS.isIsoODF() == true );
+ CPPUNIT_ASSERT( sr_RS.getLanguage() == "sr" );
+ CPPUNIT_ASSERT( sr_RS.getCountry() == "RS" );
+ CPPUNIT_ASSERT( sr_RS.getScript() == "Latn" );
+ CPPUNIT_ASSERT( sr_RS.getLanguageAndScript() == "sr-Latn" );
}
{
@@ -141,6 +153,10 @@ void TestLanguageTag::testAllTags()
CPPUNIT_ASSERT( de_DE.isValidBcp47() == true );
CPPUNIT_ASSERT( de_DE.isIsoLocale() == true );
CPPUNIT_ASSERT( de_DE.isIsoODF() == true );
+ CPPUNIT_ASSERT( de_DE.getLanguage() == "de" );
+ CPPUNIT_ASSERT( de_DE.getCountry() == "DE" );
+ CPPUNIT_ASSERT( de_DE.getScript() == "" );
+ CPPUNIT_ASSERT( de_DE.getLanguageAndScript() == "de" );
}
{
@@ -165,6 +181,30 @@ void TestLanguageTag::testAllTags()
CPPUNIT_ASSERT( de_DE.getLanguageType() == LANGUAGE_GERMAN );
}
+ // 'qtz' is a local use known pseudolocale for key ID resource
+ {
+ OUString s_qtz( "qtz" );
+ LanguageTag qtz( s_qtz );
+ lang::Locale aLocale = qtz.getLocale();
+ CPPUNIT_ASSERT( qtz.getBcp47() == s_qtz );
+ CPPUNIT_ASSERT( aLocale.Language == "qtz" );
+ CPPUNIT_ASSERT( aLocale.Country == "" );
+ CPPUNIT_ASSERT( aLocale.Variant == "" );
+ CPPUNIT_ASSERT( qtz.getLanguageType() == LANGUAGE_USER_KEYID );
+ }
+
+ // 'qty' is a local use unknown locale
+ {
+ OUString s_qty( "qty" );
+ LanguageTag qty( s_qty );
+ lang::Locale aLocale = qty.getLocale();
+ CPPUNIT_ASSERT( qty.getBcp47() == s_qty );
+ CPPUNIT_ASSERT( aLocale.Language == "qty" );
+ CPPUNIT_ASSERT( aLocale.Country == "" );
+ CPPUNIT_ASSERT( aLocale.Variant == "" );
+ CPPUNIT_ASSERT( qty.getLanguageType() == LANGUAGE_SYSTEM );
+ }
+
// test reset() methods
{
LanguageTag aTag( LANGUAGE_DONTKNOW );