123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- // Copyright 2006 The Closure Library Authors. All Rights Reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS-IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- goog.provide('goog.locale.countryLanguageNamesTest');
- goog.setTestOnly('goog.locale.countryLanguageNamesTest');
- goog.require('goog.locale');
- goog.require('goog.testing.jsunit');
- var LocaleNameConstants_en;
- function setUpPage() {
- // Test data from //googledata/i18n/js_locale_data/LocaleNameConstants__de.js
- var LocaleNameConstants_de = {
- LANGUAGE: {
- 'cad': 'Caddo',
- 'fr': 'Franz\u00f6sisch',
- 'fr_CA': 'Canadian French',
- 'fr_CH': 'Swiss French',
- 'zh': 'Chinesisch',
- 'zh_Hans': 'Chinesisch (vereinfacht)',
- 'zh_Hant': 'Chinesisch (traditionell)'
- },
- COUNTRY: {'CN': 'China', 'ES': 'Spanien', 'FR': 'Frankreich'}
- };
- registerLocalNameConstants(LocaleNameConstants_de, 'de');
- // Test data from //googledata/i18n/js_locale_data/LocaleNameConstants__en.js
- LocaleNameConstants_en = {
- LANGUAGE: {
- 'cad': 'Caddo',
- 'fr': 'French',
- 'fr_CA': 'Canadian French',
- 'fr_CH': 'Swiss French',
- 'zh': 'Chinese',
- 'zh_Hans': 'Simplified Chinese',
- 'zh_Hant': 'Traditional Chinese'
- },
- COUNTRY: {'CN': 'China', 'ES': 'Spain', 'FR': 'France'}
- };
- registerLocalNameConstants(LocaleNameConstants_en, 'en');
- goog.locale.setLocale('de');
- }
- function testLoadLoacleSymbols() {
- var result = goog.locale.getLocalizedCountryName('fr-FR');
- assertEquals('Frankreich', result);
- }
- function testGetNativeCountryName() {
- var result = goog.locale.getNativeCountryName('de-DE');
- assertEquals('Deutschland', result);
- result = goog.locale.getNativeCountryName('de_DE');
- assertEquals('Deutschland', result);
- result = goog.locale.getNativeCountryName('und');
- assertEquals('und', result);
- result = goog.locale.getNativeCountryName('de-CH');
- assertEquals('Schweiz', result);
- result = goog.locale.getNativeCountryName('fr-CH');
- assertEquals('Suisse', result);
- result = goog.locale.getNativeCountryName('it-CH');
- assertEquals('Svizzera', result);
- }
- function testGetLocalizedCountryName() {
- var result = goog.locale.getLocalizedCountryName('es-ES');
- assertEquals('Spanien', result);
- result = goog.locale.getLocalizedCountryName('es-ES', LocaleNameConstants_en);
- assertEquals('Spain', result);
- result = goog.locale.getLocalizedCountryName('zh-CN-cmn');
- assertEquals('China', result);
- result = goog.locale.getLocalizedCountryName('zh_CN_cmn');
- assertEquals('China', result);
- // 'und' is a non-existing locale, default behavior is to
- // return the locale name itself if no mapping is found.
- result = goog.locale.getLocalizedCountryName('und');
- assertEquals('und', result);
- }
- function testGetLocalizedRegionNameFromRegionCode() {
- var result = goog.locale.getLocalizedRegionNameFromRegionCode('ES');
- assertEquals('Spanien', result);
- result = goog.locale.getLocalizedRegionNameFromRegionCode(
- 'ES', LocaleNameConstants_en);
- assertEquals('Spain', result);
- result = goog.locale.getLocalizedRegionNameFromRegionCode('CN');
- assertEquals('China', result);
- // 'XX' is a non-existing country code, default behavior is to
- // return the code itself if no mapping is found.
- result = goog.locale.getLocalizedRegionNameFromRegionCode('XX');
- assertEquals('XX', result);
- }
- function testGetNativeLanguageName() {
- var result = goog.locale.getNativeLanguageName('fr');
- assertEquals('fran\u00E7ais', result);
- result = goog.locale.getNativeLanguageName('fr-latn-FR');
- assertEquals('fran\u00E7ais', result);
- result = goog.locale.getNativeLanguageName('fr_FR');
- assertEquals('fran\u00E7ais', result);
- result = goog.locale.getNativeLanguageName('error');
- assertEquals('error', result);
- }
- function testGetLocalizedLanguageName() {
- var result = goog.locale.getLocalizedLanguageName('fr');
- assertEquals('Franz\u00F6sisch', result);
- result = goog.locale.getLocalizedLanguageName('fr', LocaleNameConstants_en);
- assertEquals('French', result);
- result = goog.locale.getLocalizedLanguageName('fr-latn-FR');
- assertEquals('Franz\u00F6sisch', result);
- result = goog.locale.getLocalizedLanguageName('fr_FR');
- assertEquals('Franz\u00F6sisch', result);
- result = goog.locale.getLocalizedLanguageName('cad');
- assertEquals('Caddo', result);
- result = goog.locale.getLocalizedLanguageName('error');
- assertEquals('error', result);
- result =
- goog.locale.getLocalizedLanguageName('zh_Hans', LocaleNameConstants_en);
- assertEquals('Simplified Chinese', result);
- }
- function testGetLocalizedLanguageNameForGivenSymbolset() {
- var result = goog.locale.getLocalizedCountryName('fr-FR');
- assertEquals('Frankreich', result);
- result = goog.locale.getLocalizedCountryName('fr-FR', LocaleNameConstants_en);
- assertEquals('France', result);
- result = goog.locale.getLocalizedCountryName('fr-FR');
- assertEquals('Frankreich', result);
- }
- /**
- * Valid combination of sub tags:
- * 1) LanguageSubtag'-'RegionSubtag
- * 2) LanguageSubtag'-'ScriptSubtag'-'RegionSubtag
- * 3) LanguageSubtag'-'RegionSubtag'-'VariantSubtag
- * 4) LanguageSubtag'-'ScriptSubTag'-'RegionSubtag'-'VariantSubtag
- */
- function testGetRegionSubTag() {
- var result = goog.locale.getRegionSubTag('de-CH');
- assertEquals('CH', result);
- result = goog.locale.getRegionSubTag('de-latn-CH');
- assertEquals('CH', result);
- result = goog.locale.getRegionSubTag('de_latn_CH');
- assertEquals('CH', result);
- result = goog.locale.getRegionSubTag('de-CH-xxx');
- assertEquals('CH', result);
- result = goog.locale.getRegionSubTag('de-latn-CH-xxx');
- assertEquals('CH', result);
- result = goog.locale.getRegionSubTag('es-latn-419-xxx');
- assertEquals('419', result);
- result = goog.locale.getRegionSubTag('es_latn_419_xxx');
- assertEquals('419', result);
- // No region sub tag present
- result = goog.locale.getRegionSubTag('de');
- assertEquals('', result);
- }
- function testGetLanguageSubTag() {
- var result = goog.locale.getLanguageSubTag('de');
- assertEquals('de', result);
- result = goog.locale.getLanguageSubTag('de-DE');
- assertEquals('de', result);
- result = goog.locale.getLanguageSubTag('de-latn-DE-xxx');
- assertEquals('de', result);
- result = goog.locale.getLanguageSubTag('nds');
- assertEquals('nds', result);
- result = goog.locale.getLanguageSubTag('nds-DE');
- assertEquals('nds', result);
- }
- function testGetScriptSubTag() {
- var result = goog.locale.getScriptSubTag('fr');
- assertEquals('', result);
- result = goog.locale.getScriptSubTag('fr-Latn');
- assertEquals('Latn', result);
- result = goog.locale.getScriptSubTag('fr-Arab-AA');
- assertEquals('Arab', result);
- result = goog.locale.getScriptSubTag('de-Latin-DE');
- assertEquals('', result);
- result = goog.locale.getScriptSubTag('srn-Ar-DE');
- assertEquals('', result);
- }
|