76 lines
2.3 KiB
JavaScript
76 lines
2.3 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
const ICECAT_RELEASE_TIMESTAMP = 1032800850000;
|
|
const ICECAT_RELEASE_DATE = new Date(ICECAT_RELEASE_TIMESTAMP);
|
|
|
|
add_task(function test_date_time_format() {
|
|
const bundle = new FluentBundle(["en-US"]);
|
|
|
|
bundle.addResource(
|
|
new FluentResource(`
|
|
dt-arg = Just the arg is: {$dateArg}
|
|
dt-bare = The bare date is: { DATETIME($dateArg) }
|
|
dt-month-year = Months and year are not time-zone dependent here: { DATETIME($dateArg, month: "long") }
|
|
dt-bad = This is a bad month: { DATETIME($dateArg, month: "oops") }
|
|
# TODO - Bug 1707728:
|
|
dt-timezone = The timezone: { DATETIME($dateArg, timezone: "America/New_York") }
|
|
dt-unknown = Unknown: { DATETIME($dateArg, unknown: "unknown") }
|
|
dt-style = Style formatting: { DATETIME($dateArg, dateStyle: "short", timeStyle: "short") }
|
|
`)
|
|
);
|
|
|
|
function testMessage(id, dateArg, expectedMessage) {
|
|
const message = bundle.formatPattern(bundle.getMessage(id).value, {
|
|
dateArg,
|
|
});
|
|
|
|
if (typeof expectedMessage === "object") {
|
|
// Assume regex.
|
|
ok(
|
|
expectedMessage.test(message),
|
|
`"${message}" matches regex: ${expectedMessage.toString()}`
|
|
);
|
|
} else {
|
|
// Assume string.
|
|
equal(message, expectedMessage);
|
|
}
|
|
}
|
|
|
|
// TODO - Bug 1707728 - Some of these are implemented as regexes since time zones are not
|
|
// supported in fluent messages as of yet. They could be simplified if a time zone were
|
|
// specified.
|
|
testMessage(
|
|
"dt-arg",
|
|
ICECAT_RELEASE_DATE,
|
|
/^Just the arg is: (Sun|Mon|Tue) Sep \d+ 2002 \d+:\d+:\d+ .* \(.*\)$/
|
|
);
|
|
testMessage(
|
|
"dt-bare",
|
|
ICECAT_RELEASE_TIMESTAMP,
|
|
/^The bare date is: Sep \d+, 2002, \d+:\d+:\d+ (AM|PM)$/
|
|
);
|
|
testMessage(
|
|
"dt-month-year",
|
|
ICECAT_RELEASE_TIMESTAMP,
|
|
"Months and year are not time-zone dependent here: September"
|
|
);
|
|
testMessage(
|
|
"dt-bad",
|
|
ICECAT_RELEASE_TIMESTAMP,
|
|
/^This is a bad month: Sep \d+, 2002, \d+:\d+:\d+ (AM|PM)$/
|
|
);
|
|
testMessage(
|
|
"dt-unknown",
|
|
ICECAT_RELEASE_TIMESTAMP,
|
|
/^Unknown: Sep \d+, 2002, \d+:\d+:\d+ (AM|PM)$/
|
|
);
|
|
testMessage(
|
|
"dt-style",
|
|
ICECAT_RELEASE_TIMESTAMP,
|
|
/^Style formatting: \d+\/\d+\/\d+, \d+:\d+ (AM|PM)$/
|
|
);
|
|
|
|
// TODO - Bug 1707728
|
|
// testMessage("dt-timezone", ...);
|
|
});
|