| // 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 rtf = new Intl.RelativeTimeFormat(); |
| // Test 1.4.5 Intl.RelativeTimeFormat.prototype.resolvedOptions () |
| // The default style is 'long' |
| assertEquals('long', rtf.resolvedOptions().style); |
| |
| // The default numeric is 'always' |
| assertEquals('always', rtf.resolvedOptions().numeric); |
| |
| // contains style, numeric and locale key |
| assertEquals(4, Object.getOwnPropertyNames(rtf.resolvedOptions()).length); |
| |
| // contains style, numeric and locale key |
| assertEquals( |
| 4, |
| Object.getOwnPropertyNames( |
| new Intl.RelativeTimeFormat("en").resolvedOptions() |
| ).length |
| ); |
| |
| assertEquals( |
| 'short', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'short'})) |
| .resolvedOptions().style); |
| |
| assertEquals( |
| 'always', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'short'})) |
| .resolvedOptions().numeric); |
| |
| assertEquals( |
| 'narrow', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'narrow'})) |
| .resolvedOptions().style); |
| |
| assertEquals( |
| 'always', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'narrow'})) |
| .resolvedOptions().numeric); |
| |
| assertEquals( |
| 'long', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'long'})) |
| .resolvedOptions().style); |
| |
| assertEquals( |
| 'always', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'long'})) |
| .resolvedOptions().numeric); |
| |
| assertEquals( |
| 'auto', |
| (new Intl.RelativeTimeFormat(['sr'], {numeric: 'auto'})) |
| .resolvedOptions().numeric); |
| |
| assertEquals( |
| 'long', |
| (new Intl.RelativeTimeFormat(['sr'], {numeric: 'auto'})) |
| .resolvedOptions().style); |
| |
| assertEquals( |
| 'always', |
| (new Intl.RelativeTimeFormat(['sr'], {numeric: 'always'})) |
| .resolvedOptions().numeric); |
| |
| assertEquals( |
| 'long', |
| (new Intl.RelativeTimeFormat(['sr'], {numeric: 'always'})) |
| .resolvedOptions().style); |
| |
| assertEquals( |
| 'long', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'long', numeric: 'auto'})) |
| .resolvedOptions().style); |
| |
| assertEquals( |
| 'auto', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'long', numeric: 'auto'})) |
| .resolvedOptions().numeric); |
| |
| assertEquals( |
| 'long', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'long', numeric: 'always'})) |
| .resolvedOptions().style); |
| |
| assertEquals( |
| 'always', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'long', numeric: 'always'})) |
| .resolvedOptions().numeric); |
| |
| assertEquals( |
| 'short', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'short', numeric: 'auto'})) |
| .resolvedOptions().style); |
| |
| assertEquals( |
| 'auto', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'short', numeric: 'auto'})) |
| .resolvedOptions().numeric); |
| |
| assertEquals( |
| 'short', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'short', numeric: 'always'})) |
| .resolvedOptions().style); |
| |
| assertEquals( |
| 'always', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'short', numeric: 'always'})) |
| .resolvedOptions().numeric); |
| |
| assertEquals( |
| 'narrow', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'narrow', numeric: 'auto'})) |
| .resolvedOptions().style); |
| |
| assertEquals( |
| 'auto', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'narrow', numeric: 'auto'})) |
| .resolvedOptions().numeric); |
| |
| assertEquals( |
| 'narrow', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'narrow', numeric: 'always'})) |
| .resolvedOptions().style); |
| |
| assertEquals( |
| 'always', |
| (new Intl.RelativeTimeFormat(['sr'], {style: 'narrow', numeric: 'always'})) |
| .resolvedOptions().numeric); |
| |
| assertEquals( |
| 'ar', |
| (new Intl.RelativeTimeFormat(['ar'])).resolvedOptions().locale); |
| |
| assertEquals( |
| 'ar', |
| (new Intl.RelativeTimeFormat(['ar', 'en'])).resolvedOptions().locale); |
| |
| assertEquals( |
| 'fr', |
| (new Intl.RelativeTimeFormat(['fr', 'en'])).resolvedOptions().locale); |
| |
| assertEquals( |
| 'ar', |
| (new Intl.RelativeTimeFormat(['xyz', 'ar'])).resolvedOptions().locale); |
| |
| { |
| var receiver = 1; |
| assertThrows(() => |
| Intl.RelativeTimeFormat.prototype.resolvedOptions.call(receiver), TypeError); |
| |
| receiver = {}; |
| assertThrows(() => |
| Intl.RelativeTimeFormat.prototype.resolvedOptions.call(receiver), TypeError); |
| } |
| |
| assertEquals( |
| 'ar', |
| (new Intl.RelativeTimeFormat(['i-default', 'ar'])).resolvedOptions().locale); |