blob: cdfd19444ee20b92442a258e64638068e1859640 [file] [log] [blame]
// Copyright (C) 2017 André Bargull. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-intl.getcanonicallocales
description: >
Call Intl.getCanonicalLocales function with valid language tags.
info: |
8.2.1 Intl.getCanonicalLocales (locales)
1. Let ll be ? CanonicalizeLocaleList(locales).
2. Return CreateArrayFromList(ll).
9.2.1 CanonicalizeLocaleList (locales)
...
7. Repeat, while k < len
a. Let Pk be ToString(k).
b. Let kPresent be ? HasProperty(O, Pk).
c. If kPresent is true, then
i. Let kValue be ? Get(O, Pk).
...
iii. Let tag be ? ToString(kValue).
...
v. Let canonicalizedTag be CanonicalizeLanguageTag(tag).
vi. If canonicalizedTag is not an element of seen, append canonicalizedTag as the last element of seen.
...
includes: [testIntl.js]
---*/
var canonicalizedTags = {
"de": "de",
"DE-de": "de-DE",
"de-DE": "de-DE",
"cmn": "cmn",
"CMN-hANS": "cmn-Hans",
"cmn-hans-cn": "cmn-Hans-CN",
"es-419": "es-419",
"es-419-u-nu-latn": "es-419-u-nu-latn",
"cmn-hans-cn-u-ca-t-ca-x-t-u": "cmn-Hans-CN-t-ca-u-ca-x-t-u",
"de-gregory-u-ca-gregory": "de-gregory-u-ca-gregory",
"no-nyn": "nn",
"i-klingon": "tlh",
"sgn-GR": "gss",
"ji": "yi",
"de-DD": "de-DE",
"zh-hak-CN": "hak-CN",
"sgn-ils": "ils",
"in": "id",
"x-foo": "x-foo",
"sr-cyrl-ekavsk": "sr-Cyrl-ekavsk",
"en-ca-newfound": "en-CA-newfound",
"sl-rozaj-biske-1994": "sl-rozaj-biske-1994",
"da-u-attr": "da-u-attr",
"da-u-attr-co-search": "da-u-attr-co-search",
};
// make sure the data above is correct
Object.getOwnPropertyNames(canonicalizedTags).forEach(function (tag) {
var canonicalizedTag = canonicalizedTags[tag];
assert(
isCanonicalizedStructurallyValidLanguageTag(canonicalizedTag),
"Test data \"" + canonicalizedTag + "\" is not canonicalized and structurally valid language tag."
);
});
Object.getOwnPropertyNames(canonicalizedTags).forEach(function (tag) {
var canonicalLocales = Intl.getCanonicalLocales(tag);
assert.sameValue(canonicalLocales.length, 1);
assert.sameValue(canonicalLocales[0], canonicalizedTags[tag]);
});