test_intlUtils_getDisplayNames.html (6467B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=1341994 5 --> 6 <head> 7 <title>Test for Bug 1341994 </title> 8 <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> 9 <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"> 10 </head> 11 <body> 12 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1341994 ">Mozilla Bug 1341994</a> 13 <p id="display"></p> 14 <div id="content" style="display: none"> 15 <script> 16 17 var testData = [ 18 { 19 locales: ["en-US"], 20 options: { 21 type: "language", 22 }, 23 expected: { 24 locale: "en-US", 25 type: "language", 26 style: "long", 27 calendar: "gregory", 28 values: [], 29 } 30 }, 31 { 32 locales: ["en-US"], 33 options: { 34 type: "weekday", 35 style: "narrow", 36 calendar: "gregory", 37 keys: [3], 38 }, 39 expected: { 40 locale: "en-US", 41 type: "weekday", 42 style: "narrow", 43 calendar: "gregory", 44 values: ["W"] 45 } 46 }, 47 48 { 49 locales: ["fr"], 50 options: { 51 type: "dateTimeField", 52 keys: ["year", "day"], 53 }, 54 expected: { 55 locale: "fr", 56 type: "dateTimeField", 57 style: "long", 58 calendar: "gregory", 59 values: ["année", "jour"], 60 } 61 }, 62 { 63 locales: ["fr"], 64 options: { 65 type: "month", 66 keys: [10], 67 }, 68 expected: { 69 locale: "fr", 70 type: "month", 71 style: "long", 72 calendar: "gregory", 73 values: ["octobre"], 74 } 75 }, 76 { 77 locales: ["fr"], 78 options: { 79 type: "weekday", 80 keys: [6], 81 }, 82 expected: { 83 locale: "fr", 84 type: "weekday", 85 style: "long", 86 calendar: "gregory", 87 values: ["samedi"], 88 } 89 }, 90 { 91 locales: ["fr"], 92 options: { 93 type: "dayPeriod", 94 keys: ["pm"], 95 }, 96 expected: { 97 locale: "fr", 98 type: "dayPeriod", 99 style: "long", 100 calendar: "gregory", 101 values: ["PM"], 102 } 103 }, 104 105 { 106 locales: ["it"], 107 options: { 108 type: "weekday", 109 style: "short", 110 keys: [4], 111 }, 112 expected: { 113 locale: "it", 114 type: "weekday", 115 style: "short", 116 calendar: "gregory", 117 values: ["gio"], 118 } 119 }, 120 { 121 locales: ["it"], 122 options: { 123 type: "month", 124 style: "short", 125 keys: [8], 126 }, 127 expected: { 128 locale: "it", 129 type: "month", 130 style: "short", 131 calendar: "gregory", 132 values: ["ago"], 133 } 134 }, 135 { 136 locales: ["it"], 137 options: { 138 type: "dayPeriod", 139 style: "short", 140 keys: ["am"], 141 }, 142 expected: { 143 locale: "it", 144 type: "dayPeriod", 145 style: "short", 146 calendar: "gregory", 147 values: ["AM"], 148 } 149 }, 150 { 151 locales: ["it"], 152 options: { 153 type: "dateTimeField", 154 style: "short", 155 keys: ["month"], 156 }, 157 expected: { 158 locale: "it", 159 type: "dateTimeField", 160 style: "short", 161 calendar: "gregory", 162 values: ["mese"], 163 } 164 }, 165 166 { 167 locales: ["ar"], 168 options: { 169 type: "weekday", 170 style: "long", 171 keys: [4], 172 }, 173 expected: { 174 locale: "ar", 175 type: "weekday", 176 style: "long", 177 calendar: "gregory", 178 values: ["الخميس"], 179 } 180 }, 181 { 182 locales: ["ar"], 183 options: { 184 type: "month", 185 style: "long", 186 keys: [8], 187 }, 188 expected: { 189 locale: "ar", 190 type: "month", 191 style: "long", 192 calendar: "gregory", 193 values: ["أغسطس"], 194 } 195 }, 196 { 197 locales: ["ar"], 198 options: { 199 type: "dayPeriod", 200 style: "long", 201 keys: ["am"], 202 }, 203 expected: { 204 locale: "ar", 205 type: "dayPeriod", 206 style: "long", 207 calendar: "gregory", 208 values: ["ص"], 209 } 210 }, 211 { 212 locales: ["ar"], 213 options: { 214 type: "dateTimeField", 215 style: "long", 216 keys: ["month"], 217 }, 218 expected: { 219 locale: "ar", 220 type: "dateTimeField", 221 style: "long", 222 calendar: "gregory", 223 values: ["الشهر"], 224 } 225 }, 226 227 { 228 locales: ["zh-TW"], 229 options: { 230 type: "weekday", 231 style: "abbreviated", 232 keys: [4], 233 }, 234 expected: { 235 locale: "zh-TW", 236 type: "weekday", 237 style: "abbreviated", 238 calendar: "gregory", 239 values: ["週四"], 240 } 241 }, 242 { 243 locales: ["zh-TW"], 244 options: { 245 type: "month", 246 style: "short", 247 keys: [8], 248 }, 249 expected: { 250 locale: "zh-TW", 251 type: "month", 252 style: "short", 253 calendar: "gregory", 254 values: ["8月"], 255 } 256 }, 257 { 258 locales: ["zh-TW"], 259 options: { 260 type: "dayPeriod", 261 style: "short", 262 keys: ["am"], 263 }, 264 expected: { 265 locale: "zh-TW", 266 type: "dayPeriod", 267 style: "short", 268 calendar: "gregory", 269 values: ["上午"], 270 } 271 }, 272 { 273 locales: ["zh-TW"], 274 options: { 275 type: "dateTimeField", 276 style: "short", 277 keys: ["month"], 278 }, 279 expected: { 280 locale: "zh-TW", 281 type: "dateTimeField", 282 style: "short", 283 calendar: "gregory", 284 values: ["月"], 285 } 286 }, 287 288 /* Invalid input */ 289 290 { 291 locales: ["en-US"], 292 options: { 293 type: "weekday", 294 style: "", 295 keys: [4] 296 }, 297 expected: { 298 exception: true 299 } 300 }, 301 { 302 locales: ["foo-X"], 303 options: { 304 type: "weekday", 305 keys: [4] 306 }, 307 expected: { 308 exception: true 309 } 310 }, 311 { 312 locales: ["en-US"], 313 options: { 314 keys: [ 315 "" 316 ], 317 }, 318 expected: { 319 exception: true 320 } 321 }, 322 ] 323 324 let intlUtils = window.intlUtils; 325 ok(intlUtils, "window.intlUtils should exist"); 326 327 for (let { locales, options, expected } of testData) { 328 try { 329 let result = intlUtils.getDisplayNames(locales, options); 330 331 is(result.locale, expected.locale, "locale is " + expected.locale); 332 is(result.type, expected.type, "type is " + expected.type); 333 is(result.style, expected.style, "style is " + expected.style); 334 is(result.calendar, expected.calendar, "calendar is " + expected.calendar); 335 336 let values = result.values; 337 let expectedValues = expected.values; 338 339 is(values.length, expectedValues.length, "values' length is " + expectedValues.length); 340 341 for (let i = 0; i < expectedValues.length; ++i) { 342 is(values[i], expectedValues[i], "value is " + expectedValues[i]); 343 } 344 } catch (e) { 345 ok(expected.exception, "Exception expected : " + e); 346 } 347 } 348 349 </script> 350 </body> 351 </html>