test_datetimeformat.js (2364B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 const FIREFOX_RELEASE_TIMESTAMP = 1032800850000; 5 const FIREFOX_RELEASE_DATE = new Date(FIREFOX_RELEASE_TIMESTAMP); 6 7 add_task(function test_date_time_format() { 8 const bundle = new FluentBundle(["en-US"]); 9 10 bundle.addResource( 11 new FluentResource(` 12 dt-arg = Just the arg is: {$dateArg} 13 dt-bare = The bare date is: { DATETIME($dateArg) } 14 dt-month-year = Months and year are not time-zone dependent here: { DATETIME($dateArg, month: "long") } 15 dt-bad = This is a bad month: { DATETIME($dateArg, month: "oops") } 16 # TODO - Bug 1707728: 17 dt-timezone = The timezone: { DATETIME($dateArg, timezone: "America/New_York") } 18 dt-unknown = Unknown: { DATETIME($dateArg, unknown: "unknown") } 19 dt-style = Style formatting: { DATETIME($dateArg, dateStyle: "short", timeStyle: "short") } 20 `) 21 ); 22 23 function testMessage(id, dateArg, expectedMessage) { 24 const message = bundle.formatPattern(bundle.getMessage(id).value, { 25 dateArg, 26 }); 27 28 if (typeof expectedMessage === "object") { 29 // Assume regex. 30 ok( 31 expectedMessage.test(message), 32 `"${message}" matches regex: ${expectedMessage.toString()}` 33 ); 34 } else { 35 // Assume string. 36 equal(message, expectedMessage); 37 } 38 } 39 40 // TODO - Bug 1707728 - Some of these are implemented as regexes since time zones are not 41 // supported in fluent messages as of yet. They could be simplified if a time zone were 42 // specified. 43 testMessage( 44 "dt-arg", 45 FIREFOX_RELEASE_DATE, 46 /^Just the arg is: (Sun|Mon|Tue) Sep \d+ 2002 \d+:\d+:\d+ .* \(.*\)$/ 47 ); 48 testMessage( 49 "dt-bare", 50 FIREFOX_RELEASE_TIMESTAMP, 51 /^The bare date is: Sep \d+, 2002, \d+:\d+:\d+ (AM|PM)$/ 52 ); 53 testMessage( 54 "dt-month-year", 55 FIREFOX_RELEASE_TIMESTAMP, 56 "Months and year are not time-zone dependent here: September" 57 ); 58 testMessage( 59 "dt-bad", 60 FIREFOX_RELEASE_TIMESTAMP, 61 /^This is a bad month: Sep \d+, 2002, \d+:\d+:\d+ (AM|PM)$/ 62 ); 63 testMessage( 64 "dt-unknown", 65 FIREFOX_RELEASE_TIMESTAMP, 66 /^Unknown: Sep \d+, 2002, \d+:\d+:\d+ (AM|PM)$/ 67 ); 68 testMessage( 69 "dt-style", 70 FIREFOX_RELEASE_TIMESTAMP, 71 /^Style formatting: \d+\/\d+\/\d+, \d+:\d+ (AM|PM)$/ 72 ); 73 74 // TODO - Bug 1707728 75 // testMessage("dt-timezone", ...); 76 });