summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/intl402/Intl/getCanonicalLocales/non-iana-canon.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/intl402/Intl/getCanonicalLocales/non-iana-canon.js')
-rw-r--r--js/src/tests/test262/intl402/Intl/getCanonicalLocales/non-iana-canon.js81
1 files changed, 81 insertions, 0 deletions
diff --git a/js/src/tests/test262/intl402/Intl/getCanonicalLocales/non-iana-canon.js b/js/src/tests/test262/intl402/Intl/getCanonicalLocales/non-iana-canon.js
new file mode 100644
index 0000000000..5afd34591a
--- /dev/null
+++ b/js/src/tests/test262/intl402/Intl/getCanonicalLocales/non-iana-canon.js
@@ -0,0 +1,81 @@
+// Copyright 2018 André Bargull; Igalia, S.L. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+// Slip from intl402/Locale/constructor-non-iana-canon.js
+/*---
+esid: sec-intl.getcanonicallocales
+description: >
+ Verifies canonicalization, of specific tags.
+info: |
+ ApplyOptionsToTag( tag, options )
+ 10. Return CanonicalizeLanguageTag(tag).
+---*/
+
+// Test some language tags where we know that either CLDR or ICU produce
+// different results compared to the canonicalization specified in RFC 5646.
+var testData = [
+ {
+ tag: "mo",
+ canonical: "ro",
+ },
+ {
+ tag: "es-ES-preeuro",
+ },
+ {
+ tag: "uz-UZ-cyrillic",
+ },
+ {
+ tag: "posix",
+ },
+ {
+ tag: "hi-direct",
+ },
+ {
+ tag: "zh-pinyin",
+ },
+ {
+ tag: "zh-stroke",
+ },
+ {
+ tag: "aar-x-private",
+ // "aar" should be canonicalized into "aa" because "aar" matches the type attribute of
+ // a languageAlias element in
+ // https://www.unicode.org/repos/cldr/trunk/common/supplemental/supplementalMetadata.xml
+ canonical: "aa-x-private",
+ },
+ {
+ tag: "heb-x-private",
+ // "heb" should be canonicalized into "he" because "heb" matches the type attribute of
+ // a languageAlias element in
+ // https://www.unicode.org/repos/cldr/trunk/common/supplemental/supplementalMetadata.xml
+ canonical: "he-x-private",
+ },
+ {
+ tag: "de-u-kf",
+ },
+ {
+ tag: "ces",
+ // "ces" should be canonicalized into "cs" because "ces" matches the type attribute of
+ // a languageAlias element in
+ // https://www.unicode.org/repos/cldr/trunk/common/supplemental/supplementalMetadata.xml
+ canonical: "cs",
+ },
+ {
+ tag: "hy-arevela",
+ canonical: "hy",
+ },
+ {
+ tag: "hy-arevmda",
+ canonical: "hyw",
+ },
+];
+
+for (const {tag, canonical = tag} of testData) {
+ assert.sameValue(
+ Intl.getCanonicalLocales(tag)[0],
+ canonical,
+ 'The value of Intl.getCanonicalLocales(tag)[0] equals the value of `canonical`'
+ );
+}
+
+reportCompare(0, 0);