Automatic update from web-platform-tests Use local time and provide subtest name for sv-SE locale test (#51506) Using `format(0)` is the same as `format(Date(0))`, which creates a Date object which is at the epoch. However, because we output it with no regard from the time zone, this will fail if you're in a time zone behind UTC. To avoid this, we move to just using local time, matching the other tests in this file, thus guaranteeing this test passes everywhere. Also, we may as well check the exact string, because "1970" is the least interesting part of this test. -- wpt-commits: 5f20786a60df884d1f20e694cf4b029d8e858775 wpt-pr: 51506
54 lines
2.2 KiB
HTML
54 lines
2.2 KiB
HTML
<!DOCTYPE html>
|
|
<meta charset="utf-8">
|
|
<!--
|
|
Copyright (C) 2023 the V8 project authors. All rights reserved.
|
|
This code is governed by the BSD license found in the LICENSE file.
|
|
-->
|
|
<title>Web Compatibility requirements for implementation-defined locale-specific JavaScript APIs</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script>
|
|
|
|
test(t => { // https://bugs.chromium.org/p/chromium/issues/detail?id=1414292
|
|
|
|
const date = new Date('2022-12-31T23:59:42');
|
|
const localeString = date.toLocaleString('en-US');
|
|
|
|
// No U+202F NARROW NO-BREAK SPACE must be present.
|
|
assert_false(localeString.includes('\u202F'));
|
|
// The character between the time and AM/PM should be U+0020 SPACE.
|
|
assert_regexp_match(localeString, /:\d\d:\d\d\x20[AP]M/);
|
|
|
|
}, '`Date.prototype.toLocaleString` produces U+0020 instead of U+202F for `en-US` locale');
|
|
|
|
test(t => { // https://bugs.chromium.org/p/chromium/issues/detail?id=1414292
|
|
|
|
const date = new Date('2022-12-31T23:59:42');
|
|
const formatter = new Intl.DateTimeFormat('en', {timeStyle: 'long'})
|
|
const formattedString = formatter.format(date);
|
|
|
|
// No U+202F NARROW NO-BREAK SPACE must be present.
|
|
assert_false(formattedString.includes('\u202F'));
|
|
// The character between the time and AM/PM should be U+0020 SPACE.
|
|
assert_regexp_match(formattedString, /:\d\d:\d\d\x20[AP]M/);
|
|
|
|
}, '`Intl.DateTimeFormat.prototype.format` produces U+0020 instead of U+202F for `en` locale');
|
|
|
|
test(t => { // https://bugs.chromium.org/p/chromium/issues/detail?id=1418727
|
|
|
|
const date = new Date('2022-03-31T23:59:42');
|
|
|
|
assert_true(date.toLocaleString('en-CA').includes('2022-03-31'));
|
|
assert_equals(date.toLocaleString('en-CA', {dateStyle: 'short'}), '2022-03-31');
|
|
|
|
}, '`Date.prototype.toLocaleString` produces `yyyy-mm-dd` instead of `m/d/yyyy` for `en-CA` locale');
|
|
|
|
test(t => { // https://bugzilla.mozilla.org/show_bug.cgi?id=1864612
|
|
const date = new Date('1970-01-01T00:00:00');
|
|
const formatter = new Intl.DateTimeFormat('sv-SE')
|
|
|
|
assert_equals(formatter.format(date), '1970-01-01');
|
|
}, '`Intl.DateTimeFormat.prototype.format` produces `yyyy-mm-dd` instead of `yyyy-m-d` for `sv-SE` locale');
|
|
|
|
</script>
|