232 lines
6.7 KiB
JavaScript
232 lines
6.7 KiB
JavaScript
// 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 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);
|
|
}
|