check-ca-option.js 977 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
// 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_ca = [
  "invalid",
  "abce",
];

// https://www.unicode.org/repos/cldr/tags/latest/common/bcp47/calendar.xml
let valid_ca= [
  "buddhist",
  "chinese",
  "coptic",
  "dangi",
  "ethioaa",
  "ethiopic",
  "gregory",
  "hebrew",
  "indian",
  "islamic",
  "islamic-umalqura",
  "islamic-tbla",
  "islamic-civil",
  "islamic-rgsa",
  "iso8601",
  "japanese",
  "persian",
  "roc",
];

let locales = [
  "en",
  "ar",
];

invalid_ca.forEach(function(ca) {
  let df = new Intl.DateTimeFormat(["en-u-ca-" + ca + "-fo-obar"]);
  assertEquals("en", df.resolvedOptions().locale);
}
);

valid_ca.forEach(function(ca) {
  locales.forEach(function(base) {
    let l = base + "-u-ca-" + ca;
    let df = new Intl.DateTimeFormat([l + "-fo-obar"]);
    assertEquals(l, df.resolvedOptions().locale);
  });
}
);