intl/locale/tests/unit/test_bug22310.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/intl/locale/tests/unit/test_bug22310.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,47 @@
     1.4 +String.prototype.has = function(s) this.indexOf(s) != -1;
     1.5 +const Cc = Components.classes;
     1.6 +const Ci = Components.interfaces;
     1.7 +
     1.8 +const dts = Cc["@mozilla.org/intl/scriptabledateformat;1"]
     1.9 +        .getService(Ci.nsIScriptableDateFormat);
    1.10 +function dt(locale) dts.FormatDateTime(locale, dts.dateFormatLong,
    1.11 +  dts.timeFormatSeconds, 2008, 6, 30, 13, 56, 34);
    1.12 +var all_passed = true;
    1.13 +const tests = 
    1.14 +[
    1.15 + [dt("en-US").has("June"), "month name in en-US"],
    1.16 + [dt("en-US").has("2008"), "year in en-US"],
    1.17 + [dt("da").has("jun"), "month name in da"],
    1.18 + [dt("da-DK") == dt("da"), "da same as da-DK"],
    1.19 + [dt("en-GB").has("30") && dt("en-GB").has("June") &&
    1.20 +   dt("en-GB").indexOf("30") < dt("en-GB").indexOf("June"),
    1.21 +  "day before month in en-GB"],
    1.22 + [dt("en-US").has("30") && dt("en-US").has("June") &&
    1.23 +   dt("en-US").indexOf("30") > dt("en-US").indexOf("June"),
    1.24 +  "month before day in en-US"],
    1.25 + [dt("ja-JP").has("\u5E746\u670830\u65E5"), "year month and day in ja-JP"],
    1.26 + [dt("ja-JP") == dt("ja-JP-mac"), "ja-JP-mac same as ja-JP"],
    1.27 + [dt("nn-NO").has("juni"), "month name in nn-NO"],
    1.28 + [dt("nb-NO").has("juni"), "month name in nb-NO"],
    1.29 + [dt("no-NO").has("30. juni"), "month name in no-NO"],
    1.30 + [dt("sv-SE").has("30 jun"), "month name in sv-SE"],
    1.31 + [dt("kok").has("\u091C\u0942\u0928"), "month name in kok"],
    1.32 + [dt("ta-IN").has("\u0B9C\u0BC2\u0BA9\u0BCD"), "month name in ta-IN"],
    1.33 + [dt("ab-CD").length > 0, "fallback for ab-CD"]
    1.34 +];
    1.35 +
    1.36 +function one_test(testcase, msg)
    1.37 +{
    1.38 +    if (!testcase) {
    1.39 +        all_passed = false;
    1.40 +        dump("Unexpected date format: " + msg + "\n");
    1.41 +    }
    1.42 +}
    1.43 +
    1.44 +function run_test()
    1.45 +{
    1.46 +    for (var i = 0; i < tests.length; ++i) {
    1.47 +        one_test(tests[i][0], tests[i][1]);
    1.48 +    }
    1.49 +    do_check_true(all_passed);
    1.50 +}

mercurial