resolved-options-v2.js 2.15 KB
Newer Older
Frank Tang's avatar
Frank Tang committed
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 52 53 54 55 56
// Copyright 2021 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 displayNames = new Intl.DisplayNames(undefined, {type: 'language'});
// The default languageDisplay is 'dialect' if type is 'language'
assertEquals('dialect', displayNames.resolvedOptions().languageDisplay);

['region', 'script', 'calendar', 'dateTimeField', 'currency'].forEach(
    function(type) {
      let dn = new Intl.DisplayNames(undefined, {type});
      assertEquals(undefined, dn.resolvedOptions().languageDisplay);
    });

const styles = ["long", "short", "narrow"];
const types = ["calendar", "dateTimeField"];
const fallbacks = ["code", "none"];

styles.forEach(function(style) {
  types.forEach(function(type) {
    assertEquals(style,
        (new Intl.DisplayNames(['sr'], {style, type})).resolvedOptions().style);
    assertEquals(type,
        (new Intl.DisplayNames(['sr'], {style, type})).resolvedOptions().type);
    assertEquals(fallbacks[0],
        (new Intl.DisplayNames(
            ['sr'], {style, type})).resolvedOptions().fallback);
    fallbacks.forEach(function(fallback) {
      assertEquals(style,
          (new Intl.DisplayNames(
              ['sr'], {style, type, fallback})).resolvedOptions().style);
      assertEquals(type,
          (new Intl.DisplayNames(
              ['sr'], {style, type, fallback})).resolvedOptions().type);
      assertEquals(fallback,
          (new Intl.DisplayNames(
              ['sr'], {style, type, fallback})).resolvedOptions().fallback);
    });
  });
});

const languageDisplays = ["dialect", "standard"];
styles.forEach(function(style) {
  let type = 'language';
  languageDisplays.forEach(function(languageDisplay) {
    assertEquals(style,
        (new Intl.DisplayNames(['sr'], {style, type, languageDisplay}))
            .resolvedOptions().style);
    assertEquals(type,
        (new Intl.DisplayNames(['sr'], {style, type, languageDisplay}))
            .resolvedOptions().type);
    assertEquals(languageDisplay,
        (new Intl.DisplayNames(['sr'], {style, type, languageDisplay}))
            .resolvedOptions().languageDisplay);
  });
});