blob: 749fc55ee2163b4ade8473a44acd6be921cb3f76 [file] [log] [blame]
// Copyright 2012 Mozilla Corporation. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es5id: 12.3.2_FDT_7_a_iv
description: >
Tests that format uses a proleptic Gregorian calendar with no year
0.
author: Norbert Lindenberg
---*/
var dates = [
0, // January 1, 1970
-62151602400000, // in June 1 BC
-8640000000000000 // beginning of ECMAScript time
];
var format = new Intl.DateTimeFormat(["en-US"], {year: "numeric", month: "long", timeZone: "UTC"});
// this test requires a Gregorian calendar, which we usually find in the US
assert.sameValue(format.resolvedOptions().calendar, "gregory", "Internal error: Didn't find Gregorian calendar");
dates.forEach(function (date) {
var year = new Date(date).getUTCFullYear();
var expectedYear = year <= 0 ? 1 - year : year;
var expectedYearString = expectedYear.toLocaleString(["en-US"], {useGrouping: false});
var dateString = format.format(date);
assert.notSameValue(dateString.indexOf(expectedYearString), -1, "Formatted year doesn't contain expected year – expected " + expectedYearString + ", got " + dateString + ".");
});