| // Copyright 2018 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| let invalid_co = [ |
| "invalid", |
| "search", |
| "standard", |
| "abce", |
| ]; |
| |
| let valid_locales = [ |
| "zh-u-co-zhuyin", |
| "zh-u-co-stroke", |
| "ar-u-co-compat", |
| "en-u-co-emoji", |
| "en-u-co-eor", |
| "zh-Hant-u-co-pinyin", |
| "ko-u-co-searchjl", |
| "ja-u-co-unihan", |
| ]; |
| |
| let valid_co = [ |
| ["zh", "zhuyin"], |
| ["zh", "stroke"], |
| ["ar", "compat"], |
| ["en", "emoji"], |
| ["en", "eor"], |
| ["zh-Hant", "pinyin"], |
| ["ko", "searchjl"], |
| ["ja", "unihan"], |
| ]; |
| |
| invalid_co.forEach(function(co) { |
| let col = new Intl.Collator(["en-u-co-" + co]); |
| assertEquals("en", col.resolvedOptions().locale); |
| } |
| ); |
| |
| valid_locales.forEach(function(l) { |
| let col = new Intl.Collator([l + "-fo-obar"]); |
| assertEquals(l, col.resolvedOptions().locale); |
| } |
| ); |
| |
| valid_co.forEach(function([locale, collation]) { |
| let col = new Intl.Collator([locale + "-u-co-" + collation]); |
| assertEquals(collation, col.resolvedOptions().collation); |
| let col2 = new Intl.Collator([locale], {collation}); |
| assertEquals(collation, col2.resolvedOptions().collation); |
| } |
| ); |