351 lines
6.3 KiB
HTML
351 lines
6.3 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=1341994
|
|
-->
|
|
<head>
|
|
<title>Test for Bug 1341994 </title>
|
|
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
|
|
</head>
|
|
<body>
|
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1341994 ">Mozilla Bug 1341994</a>
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none">
|
|
<script>
|
|
|
|
var testData = [
|
|
{
|
|
locales: ["en-US"],
|
|
options: {
|
|
type: "language",
|
|
},
|
|
expected: {
|
|
locale: "en-US",
|
|
type: "language",
|
|
style: "long",
|
|
calendar: "gregory",
|
|
values: [],
|
|
}
|
|
},
|
|
{
|
|
locales: ["en-US"],
|
|
options: {
|
|
type: "weekday",
|
|
style: "narrow",
|
|
calendar: "gregory",
|
|
keys: [3],
|
|
},
|
|
expected: {
|
|
locale: "en-US",
|
|
type: "weekday",
|
|
style: "narrow",
|
|
calendar: "gregory",
|
|
values: ["W"]
|
|
}
|
|
},
|
|
|
|
{
|
|
locales: ["fr"],
|
|
options: {
|
|
type: "dateTimeField",
|
|
keys: ["year", "day"],
|
|
},
|
|
expected: {
|
|
locale: "fr",
|
|
type: "dateTimeField",
|
|
style: "long",
|
|
calendar: "gregory",
|
|
values: ["année", "jour"],
|
|
}
|
|
},
|
|
{
|
|
locales: ["fr"],
|
|
options: {
|
|
type: "month",
|
|
keys: [10],
|
|
},
|
|
expected: {
|
|
locale: "fr",
|
|
type: "month",
|
|
style: "long",
|
|
calendar: "gregory",
|
|
values: ["octobre"],
|
|
}
|
|
},
|
|
{
|
|
locales: ["fr"],
|
|
options: {
|
|
type: "weekday",
|
|
keys: [6],
|
|
},
|
|
expected: {
|
|
locale: "fr",
|
|
type: "weekday",
|
|
style: "long",
|
|
calendar: "gregory",
|
|
values: ["samedi"],
|
|
}
|
|
},
|
|
{
|
|
locales: ["fr"],
|
|
options: {
|
|
type: "dayPeriod",
|
|
keys: ["pm"],
|
|
},
|
|
expected: {
|
|
locale: "fr",
|
|
type: "dayPeriod",
|
|
style: "long",
|
|
calendar: "gregory",
|
|
values: ["PM"],
|
|
}
|
|
},
|
|
|
|
{
|
|
locales: ["it"],
|
|
options: {
|
|
type: "weekday",
|
|
style: "short",
|
|
keys: [4],
|
|
},
|
|
expected: {
|
|
locale: "it",
|
|
type: "weekday",
|
|
style: "short",
|
|
calendar: "gregory",
|
|
values: ["gio"],
|
|
}
|
|
},
|
|
{
|
|
locales: ["it"],
|
|
options: {
|
|
type: "month",
|
|
style: "short",
|
|
keys: [8],
|
|
},
|
|
expected: {
|
|
locale: "it",
|
|
type: "month",
|
|
style: "short",
|
|
calendar: "gregory",
|
|
values: ["ago"],
|
|
}
|
|
},
|
|
{
|
|
locales: ["it"],
|
|
options: {
|
|
type: "dayPeriod",
|
|
style: "short",
|
|
keys: ["am"],
|
|
},
|
|
expected: {
|
|
locale: "it",
|
|
type: "dayPeriod",
|
|
style: "short",
|
|
calendar: "gregory",
|
|
values: ["AM"],
|
|
}
|
|
},
|
|
{
|
|
locales: ["it"],
|
|
options: {
|
|
type: "dateTimeField",
|
|
style: "short",
|
|
keys: ["month"],
|
|
},
|
|
expected: {
|
|
locale: "it",
|
|
type: "dateTimeField",
|
|
style: "short",
|
|
calendar: "gregory",
|
|
values: ["mese"],
|
|
}
|
|
},
|
|
|
|
{
|
|
locales: ["ar"],
|
|
options: {
|
|
type: "weekday",
|
|
style: "long",
|
|
keys: [4],
|
|
},
|
|
expected: {
|
|
locale: "ar",
|
|
type: "weekday",
|
|
style: "long",
|
|
calendar: "gregory",
|
|
values: ["الخميس"],
|
|
}
|
|
},
|
|
{
|
|
locales: ["ar"],
|
|
options: {
|
|
type: "month",
|
|
style: "long",
|
|
keys: [8],
|
|
},
|
|
expected: {
|
|
locale: "ar",
|
|
type: "month",
|
|
style: "long",
|
|
calendar: "gregory",
|
|
values: ["أغسطس"],
|
|
}
|
|
},
|
|
{
|
|
locales: ["ar"],
|
|
options: {
|
|
type: "dayPeriod",
|
|
style: "long",
|
|
keys: ["am"],
|
|
},
|
|
expected: {
|
|
locale: "ar",
|
|
type: "dayPeriod",
|
|
style: "long",
|
|
calendar: "gregory",
|
|
values: ["ص"],
|
|
}
|
|
},
|
|
{
|
|
locales: ["ar"],
|
|
options: {
|
|
type: "dateTimeField",
|
|
style: "long",
|
|
keys: ["month"],
|
|
},
|
|
expected: {
|
|
locale: "ar",
|
|
type: "dateTimeField",
|
|
style: "long",
|
|
calendar: "gregory",
|
|
values: ["الشهر"],
|
|
}
|
|
},
|
|
|
|
{
|
|
locales: ["zh-TW"],
|
|
options: {
|
|
type: "weekday",
|
|
style: "abbreviated",
|
|
keys: [4],
|
|
},
|
|
expected: {
|
|
locale: "zh-TW",
|
|
type: "weekday",
|
|
style: "abbreviated",
|
|
calendar: "gregory",
|
|
values: ["週四"],
|
|
}
|
|
},
|
|
{
|
|
locales: ["zh-TW"],
|
|
options: {
|
|
type: "month",
|
|
style: "short",
|
|
keys: [8],
|
|
},
|
|
expected: {
|
|
locale: "zh-TW",
|
|
type: "month",
|
|
style: "short",
|
|
calendar: "gregory",
|
|
values: ["8月"],
|
|
}
|
|
},
|
|
{
|
|
locales: ["zh-TW"],
|
|
options: {
|
|
type: "dayPeriod",
|
|
style: "short",
|
|
keys: ["am"],
|
|
},
|
|
expected: {
|
|
locale: "zh-TW",
|
|
type: "dayPeriod",
|
|
style: "short",
|
|
calendar: "gregory",
|
|
values: ["上午"],
|
|
}
|
|
},
|
|
{
|
|
locales: ["zh-TW"],
|
|
options: {
|
|
type: "dateTimeField",
|
|
style: "short",
|
|
keys: ["month"],
|
|
},
|
|
expected: {
|
|
locale: "zh-TW",
|
|
type: "dateTimeField",
|
|
style: "short",
|
|
calendar: "gregory",
|
|
values: ["月"],
|
|
}
|
|
},
|
|
|
|
/* Invalid input */
|
|
|
|
{
|
|
locales: ["en-US"],
|
|
options: {
|
|
type: "weekday",
|
|
style: "",
|
|
keys: [4]
|
|
},
|
|
expected: {
|
|
exception: true
|
|
}
|
|
},
|
|
{
|
|
locales: ["foo-X"],
|
|
options: {
|
|
type: "weekday",
|
|
keys: [4]
|
|
},
|
|
expected: {
|
|
exception: true
|
|
}
|
|
},
|
|
{
|
|
locales: ["en-US"],
|
|
options: {
|
|
keys: [
|
|
""
|
|
],
|
|
},
|
|
expected: {
|
|
exception: true
|
|
}
|
|
},
|
|
]
|
|
|
|
let intlUtils = window.intlUtils;
|
|
ok(intlUtils, "window.intlUtils should exist");
|
|
|
|
for (let { locales, options, expected } of testData) {
|
|
try {
|
|
let result = intlUtils.getDisplayNames(locales, options);
|
|
|
|
is(result.locale, expected.locale, "locale is " + expected.locale);
|
|
is(result.type, expected.type, "type is " + expected.type);
|
|
is(result.style, expected.style, "style is " + expected.style);
|
|
is(result.calendar, expected.calendar, "calendar is " + expected.calendar);
|
|
|
|
let values = result.values;
|
|
let expectedValues = expected.values;
|
|
|
|
is(values.length, expectedValues.length, "values' length is " + expectedValues.length);
|
|
|
|
for (let i = 0; i < expectedValues.length; ++i) {
|
|
is(values[i], expectedValues[i], "value is " + expectedValues[i]);
|
|
}
|
|
} catch (e) {
|
|
ok(expected.exception, "Exception expected : " + e);
|
|
}
|
|
}
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|