|
1 String.prototype.has = function(s) this.indexOf(s) != -1; |
|
2 const Cc = Components.classes; |
|
3 const Ci = Components.interfaces; |
|
4 |
|
5 const dts = Cc["@mozilla.org/intl/scriptabledateformat;1"] |
|
6 .getService(Ci.nsIScriptableDateFormat); |
|
7 function dt(locale) dts.FormatDateTime(locale, dts.dateFormatLong, |
|
8 dts.timeFormatSeconds, 2008, 6, 30, 13, 56, 34); |
|
9 var all_passed = true; |
|
10 const tests = |
|
11 [ |
|
12 [dt("en-US").has("June"), "month name in en-US"], |
|
13 [dt("en-US").has("2008"), "year in en-US"], |
|
14 [dt("da").has("jun"), "month name in da"], |
|
15 [dt("da-DK") == dt("da"), "da same as da-DK"], |
|
16 [dt("en-GB").has("30") && dt("en-GB").has("June") && |
|
17 dt("en-GB").indexOf("30") < dt("en-GB").indexOf("June"), |
|
18 "day before month in en-GB"], |
|
19 [dt("en-US").has("30") && dt("en-US").has("June") && |
|
20 dt("en-US").indexOf("30") > dt("en-US").indexOf("June"), |
|
21 "month before day in en-US"], |
|
22 [dt("ja-JP").has("\u5E746\u670830\u65E5"), "year month and day in ja-JP"], |
|
23 [dt("ja-JP") == dt("ja-JP-mac"), "ja-JP-mac same as ja-JP"], |
|
24 [dt("nn-NO").has("juni"), "month name in nn-NO"], |
|
25 [dt("nb-NO").has("juni"), "month name in nb-NO"], |
|
26 [dt("no-NO").has("30. juni"), "month name in no-NO"], |
|
27 [dt("sv-SE").has("30 jun"), "month name in sv-SE"], |
|
28 [dt("kok").has("\u091C\u0942\u0928"), "month name in kok"], |
|
29 [dt("ta-IN").has("\u0B9C\u0BC2\u0BA9\u0BCD"), "month name in ta-IN"], |
|
30 [dt("ab-CD").length > 0, "fallback for ab-CD"] |
|
31 ]; |
|
32 |
|
33 function one_test(testcase, msg) |
|
34 { |
|
35 if (!testcase) { |
|
36 all_passed = false; |
|
37 dump("Unexpected date format: " + msg + "\n"); |
|
38 } |
|
39 } |
|
40 |
|
41 function run_test() |
|
42 { |
|
43 for (var i = 0; i < tests.length; ++i) { |
|
44 one_test(tests[i][0], tests[i][1]); |
|
45 } |
|
46 do_check_true(all_passed); |
|
47 } |