timezone-case-insensitive.js (13761B)
1 // |reftest| skip-if(!this.hasOwnProperty('Temporal')) -- Temporal is not enabled unconditionally 2 // Copyright (C) 2022 Igalia, S.L. All rights reserved. 3 // This code is governed by the BSD license found in the LICENSE file. 4 5 /*--- 6 esid: sec-temporal.zoneddatetime 7 description: Time zone names are case-normalized 8 features: [Temporal, canonical-tz] 9 ---*/ 10 11 const timeZone = 'eTc/gMt+1'; 12 const result = new Temporal.ZonedDateTime(0n, timeZone); 13 assert.sameValue(result.timeZoneId, 'Etc/GMT+1', `Time zone created from string "${timeZone}"`); 14 15 const timeZoneIdentifiers = [ 16 // IANA TZDB Zone names 17 'Africa/Abidjan', 18 'Africa/Algiers', 19 'Africa/Bissau', 20 'Africa/Cairo', 21 'Africa/Casablanca', 22 'Africa/Ceuta', 23 'Africa/El_Aaiun', 24 'Africa/Johannesburg', 25 'Africa/Juba', 26 'Africa/Khartoum', 27 'Africa/Lagos', 28 'Africa/Maputo', 29 'Africa/Monrovia', 30 'Africa/Nairobi', 31 'Africa/Ndjamena', 32 'Africa/Sao_Tome', 33 'Africa/Tripoli', 34 'Africa/Tunis', 35 'Africa/Windhoek', 36 'America/Adak', 37 'America/Anchorage', 38 'America/Araguaina', 39 'America/Argentina/Buenos_Aires', 40 'America/Argentina/Catamarca', 41 'America/Argentina/Cordoba', 42 'America/Argentina/Jujuy', 43 'America/Argentina/La_Rioja', 44 'America/Argentina/Mendoza', 45 'America/Argentina/Rio_Gallegos', 46 'America/Argentina/Salta', 47 'America/Argentina/San_Juan', 48 'America/Argentina/San_Luis', 49 'America/Argentina/Tucuman', 50 'America/Argentina/Ushuaia', 51 'America/Asuncion', 52 'America/Bahia', 53 'America/Bahia_Banderas', 54 'America/Barbados', 55 'America/Belem', 56 'America/Belize', 57 'America/Boa_Vista', 58 'America/Bogota', 59 'America/Boise', 60 'America/Cambridge_Bay', 61 'America/Campo_Grande', 62 'America/Cancun', 63 'America/Caracas', 64 'America/Cayenne', 65 'America/Chicago', 66 'America/Chihuahua', 67 // 'America/Ciudad_Juarez' // uncomment after Node supports this ID added in TZDB 2022g 68 'America/Costa_Rica', 69 'America/Cuiaba', 70 'America/Danmarkshavn', 71 'America/Dawson', 72 'America/Dawson_Creek', 73 'America/Denver', 74 'America/Detroit', 75 'America/Edmonton', 76 'America/Eirunepe', 77 'America/El_Salvador', 78 'America/Fort_Nelson', 79 'America/Fortaleza', 80 'America/Glace_Bay', 81 'America/Goose_Bay', 82 'America/Grand_Turk', 83 'America/Guatemala', 84 'America/Guayaquil', 85 'America/Guyana', 86 'America/Halifax', 87 'America/Havana', 88 'America/Hermosillo', 89 'America/Indiana/Indianapolis', 90 'America/Indiana/Knox', 91 'America/Indiana/Marengo', 92 'America/Indiana/Petersburg', 93 'America/Indiana/Tell_City', 94 'America/Indiana/Vevay', 95 'America/Indiana/Vincennes', 96 'America/Indiana/Winamac', 97 'America/Inuvik', 98 'America/Iqaluit', 99 'America/Jamaica', 100 'America/Juneau', 101 'America/Kentucky/Louisville', 102 'America/Kentucky/Monticello', 103 'America/La_Paz', 104 'America/Lima', 105 'America/Los_Angeles', 106 'America/Maceio', 107 'America/Managua', 108 'America/Manaus', 109 'America/Martinique', 110 'America/Matamoros', 111 'America/Mazatlan', 112 'America/Menominee', 113 'America/Merida', 114 'America/Metlakatla', 115 'America/Mexico_City', 116 'America/Miquelon', 117 'America/Moncton', 118 'America/Monterrey', 119 'America/Montevideo', 120 'America/New_York', 121 'America/Nome', 122 'America/Noronha', 123 'America/North_Dakota/Beulah', 124 'America/North_Dakota/Center', 125 'America/North_Dakota/New_Salem', 126 'America/Nuuk', 127 'America/Ojinaga', 128 'America/Panama', 129 'America/Paramaribo', 130 'America/Phoenix', 131 'America/Port-au-Prince', 132 'America/Porto_Velho', 133 'America/Puerto_Rico', 134 'America/Punta_Arenas', 135 'America/Rankin_Inlet', 136 'America/Recife', 137 'America/Regina', 138 'America/Resolute', 139 'America/Rio_Branco', 140 'America/Santarem', 141 'America/Santiago', 142 'America/Santo_Domingo', 143 'America/Sao_Paulo', 144 'America/Scoresbysund', 145 'America/Sitka', 146 'America/St_Johns', 147 'America/Swift_Current', 148 'America/Tegucigalpa', 149 'America/Thule', 150 'America/Tijuana', 151 'America/Toronto', 152 'America/Vancouver', 153 'America/Whitehorse', 154 'America/Winnipeg', 155 'America/Yakutat', 156 'America/Yellowknife', 157 'Antarctica/Casey', 158 'Antarctica/Davis', 159 'Antarctica/Macquarie', 160 'Antarctica/Mawson', 161 'Antarctica/Palmer', 162 'Antarctica/Rothera', 163 'Antarctica/Troll', 164 'Asia/Almaty', 165 'Asia/Amman', 166 'Asia/Anadyr', 167 'Asia/Aqtau', 168 'Asia/Aqtobe', 169 'Asia/Ashgabat', 170 'Asia/Atyrau', 171 'Asia/Baghdad', 172 'Asia/Baku', 173 'Asia/Bangkok', 174 'Asia/Barnaul', 175 'Asia/Beirut', 176 'Asia/Bishkek', 177 'Asia/Chita', 178 'Asia/Choibalsan', 179 'Asia/Colombo', 180 'Asia/Damascus', 181 'Asia/Dhaka', 182 'Asia/Dili', 183 'Asia/Dubai', 184 'Asia/Dushanbe', 185 'Asia/Famagusta', 186 'Asia/Gaza', 187 'Asia/Hebron', 188 'Asia/Ho_Chi_Minh', 189 'Asia/Hong_Kong', 190 'Asia/Hovd', 191 'Asia/Irkutsk', 192 'Asia/Jakarta', 193 'Asia/Jayapura', 194 'Asia/Jerusalem', 195 'Asia/Kabul', 196 'Asia/Kamchatka', 197 'Asia/Karachi', 198 'Asia/Kathmandu', 199 'Asia/Khandyga', 200 'Asia/Kolkata', 201 'Asia/Krasnoyarsk', 202 'Asia/Kuching', 203 'Asia/Macau', 204 'Asia/Magadan', 205 'Asia/Makassar', 206 'Asia/Manila', 207 'Asia/Nicosia', 208 'Asia/Novokuznetsk', 209 'Asia/Novosibirsk', 210 'Asia/Omsk', 211 'Asia/Oral', 212 'Asia/Pontianak', 213 'Asia/Pyongyang', 214 'Asia/Qatar', 215 'Asia/Qostanay', 216 'Asia/Qyzylorda', 217 'Asia/Riyadh', 218 'Asia/Sakhalin', 219 'Asia/Samarkand', 220 'Asia/Seoul', 221 'Asia/Shanghai', 222 'Asia/Singapore', 223 'Asia/Srednekolymsk', 224 'Asia/Taipei', 225 'Asia/Tashkent', 226 'Asia/Tbilisi', 227 'Asia/Tehran', 228 'Asia/Thimphu', 229 'Asia/Tokyo', 230 'Asia/Tomsk', 231 'Asia/Ulaanbaatar', 232 'Asia/Urumqi', 233 'Asia/Ust-Nera', 234 'Asia/Vladivostok', 235 'Asia/Yakutsk', 236 'Asia/Yangon', 237 'Asia/Yekaterinburg', 238 'Asia/Yerevan', 239 'Atlantic/Azores', 240 'Atlantic/Bermuda', 241 'Atlantic/Canary', 242 'Atlantic/Cape_Verde', 243 'Atlantic/Faroe', 244 'Atlantic/Madeira', 245 'Atlantic/South_Georgia', 246 'Atlantic/Stanley', 247 'Australia/Adelaide', 248 'Australia/Brisbane', 249 'Australia/Broken_Hill', 250 'Australia/Darwin', 251 'Australia/Eucla', 252 'Australia/Hobart', 253 'Australia/Lindeman', 254 'Australia/Lord_Howe', 255 'Australia/Melbourne', 256 'Australia/Perth', 257 'Australia/Sydney', 258 'CET', 259 'CST6CDT', 260 'EET', 261 'EST', 262 'EST5EDT', 263 'Etc/GMT', 264 'Etc/GMT+1', 265 'Etc/GMT+10', 266 'Etc/GMT+11', 267 'Etc/GMT+12', 268 'Etc/GMT+2', 269 'Etc/GMT+3', 270 'Etc/GMT+4', 271 'Etc/GMT+5', 272 'Etc/GMT+6', 273 'Etc/GMT+7', 274 'Etc/GMT+8', 275 'Etc/GMT+9', 276 'Etc/GMT-1', 277 'Etc/GMT-10', 278 'Etc/GMT-11', 279 'Etc/GMT-12', 280 'Etc/GMT-13', 281 'Etc/GMT-14', 282 'Etc/GMT-2', 283 'Etc/GMT-3', 284 'Etc/GMT-4', 285 'Etc/GMT-5', 286 'Etc/GMT-6', 287 'Etc/GMT-7', 288 'Etc/GMT-8', 289 'Etc/GMT-9', 290 'Etc/UTC', 291 'Europe/Andorra', 292 'Europe/Astrakhan', 293 'Europe/Athens', 294 'Europe/Belgrade', 295 'Europe/Berlin', 296 'Europe/Brussels', 297 'Europe/Bucharest', 298 'Europe/Budapest', 299 'Europe/Chisinau', 300 'Europe/Dublin', 301 'Europe/Gibraltar', 302 'Europe/Helsinki', 303 'Europe/Istanbul', 304 'Europe/Kaliningrad', 305 'Europe/Kirov', 306 'Europe/Kyiv', 307 'Europe/Lisbon', 308 'Europe/London', 309 'Europe/Madrid', 310 'Europe/Malta', 311 'Europe/Minsk', 312 'Europe/Moscow', 313 'Europe/Paris', 314 'Europe/Prague', 315 'Europe/Riga', 316 'Europe/Rome', 317 'Europe/Samara', 318 'Europe/Saratov', 319 'Europe/Simferopol', 320 'Europe/Sofia', 321 'Europe/Tallinn', 322 'Europe/Tirane', 323 'Europe/Ulyanovsk', 324 'Europe/Vienna', 325 'Europe/Vilnius', 326 'Europe/Volgograd', 327 'Europe/Warsaw', 328 'Europe/Zurich', 329 'HST', 330 'Indian/Chagos', 331 'Indian/Maldives', 332 'Indian/Mauritius', 333 'MET', 334 'MST', 335 'MST7MDT', 336 'PST8PDT', 337 'Pacific/Apia', 338 'Pacific/Auckland', 339 'Pacific/Bougainville', 340 'Pacific/Chatham', 341 'Pacific/Easter', 342 'Pacific/Efate', 343 'Pacific/Fakaofo', 344 'Pacific/Fiji', 345 'Pacific/Galapagos', 346 'Pacific/Gambier', 347 'Pacific/Guadalcanal', 348 'Pacific/Guam', 349 'Pacific/Honolulu', 350 'Pacific/Kanton', 351 'Pacific/Kiritimati', 352 'Pacific/Kosrae', 353 'Pacific/Kwajalein', 354 'Pacific/Marquesas', 355 'Pacific/Nauru', 356 'Pacific/Niue', 357 'Pacific/Norfolk', 358 'Pacific/Noumea', 359 'Pacific/Pago_Pago', 360 'Pacific/Palau', 361 'Pacific/Pitcairn', 362 'Pacific/Port_Moresby', 363 'Pacific/Rarotonga', 364 'Pacific/Tahiti', 365 'Pacific/Tarawa', 366 'Pacific/Tongatapu', 367 368 // IANA TZDB Link names 369 'WET', 370 'Africa/Accra', 371 'Africa/Addis_Ababa', 372 'Africa/Asmara', 373 'Africa/Asmera', 374 'Africa/Bamako', 375 'Africa/Bangui', 376 'Africa/Banjul', 377 'Africa/Blantyre', 378 'Africa/Brazzaville', 379 'Africa/Bujumbura', 380 'Africa/Conakry', 381 'Africa/Dakar', 382 'Africa/Dar_es_Salaam', 383 'Africa/Djibouti', 384 'Africa/Douala', 385 'Africa/Freetown', 386 'Africa/Gaborone', 387 'Africa/Harare', 388 'Africa/Kampala', 389 'Africa/Kigali', 390 'Africa/Kinshasa', 391 'Africa/Libreville', 392 'Africa/Lome', 393 'Africa/Luanda', 394 'Africa/Lubumbashi', 395 'Africa/Lusaka', 396 'Africa/Malabo', 397 'Africa/Maseru', 398 'Africa/Mbabane', 399 'Africa/Mogadishu', 400 'Africa/Niamey', 401 'Africa/Nouakchott', 402 'Africa/Ouagadougou', 403 'Africa/Porto-Novo', 404 'Africa/Timbuktu', 405 'America/Anguilla', 406 'America/Antigua', 407 'America/Argentina/ComodRivadavia', 408 'America/Aruba', 409 'America/Atikokan', 410 'America/Atka', 411 'America/Blanc-Sablon', 412 'America/Buenos_Aires', 413 'America/Catamarca', 414 'America/Cayman', 415 'America/Coral_Harbour', 416 'America/Cordoba', 417 'America/Creston', 418 'America/Curacao', 419 'America/Dominica', 420 'America/Ensenada', 421 'America/Fort_Wayne', 422 'America/Godthab', 423 'America/Grenada', 424 'America/Guadeloupe', 425 'America/Indianapolis', 426 'America/Jujuy', 427 'America/Knox_IN', 428 'America/Kralendijk', 429 'America/Louisville', 430 'America/Lower_Princes', 431 'America/Marigot', 432 'America/Mendoza', 433 'America/Montreal', 434 'America/Montserrat', 435 'America/Nassau', 436 'America/Nipigon', 437 'America/Pangnirtung', 438 'America/Port_of_Spain', 439 'America/Porto_Acre', 440 'America/Rainy_River', 441 'America/Rosario', 442 'America/Santa_Isabel', 443 'America/Shiprock', 444 'America/St_Barthelemy', 445 'America/St_Kitts', 446 'America/St_Lucia', 447 'America/St_Thomas', 448 'America/St_Vincent', 449 'America/Thunder_Bay', 450 'America/Tortola', 451 'America/Virgin', 452 'Antarctica/DumontDUrville', 453 'Antarctica/McMurdo', 454 'Antarctica/South_Pole', 455 'Antarctica/Syowa', 456 'Antarctica/Vostok', 457 'Arctic/Longyearbyen', 458 'Asia/Aden', 459 'Asia/Ashkhabad', 460 'Asia/Bahrain', 461 'Asia/Brunei', 462 'Asia/Calcutta', 463 'Asia/Chongqing', 464 'Asia/Chungking', 465 'Asia/Dacca', 466 'Asia/Harbin', 467 'Asia/Istanbul', 468 'Asia/Kashgar', 469 'Asia/Katmandu', 470 'Asia/Kuala_Lumpur', 471 'Asia/Kuwait', 472 'Asia/Macao', 473 'Asia/Muscat', 474 'Asia/Phnom_Penh', 475 'Asia/Rangoon', 476 'Asia/Saigon', 477 'Asia/Tel_Aviv', 478 'Asia/Thimbu', 479 'Asia/Ujung_Pandang', 480 'Asia/Ulan_Bator', 481 'Asia/Vientiane', 482 'Atlantic/Faeroe', 483 'Atlantic/Jan_Mayen', 484 'Atlantic/Reykjavik', 485 'Atlantic/St_Helena', 486 'Australia/ACT', 487 'Australia/Canberra', 488 'Australia/Currie', 489 'Australia/LHI', 490 'Australia/NSW', 491 'Australia/North', 492 'Australia/Queensland', 493 'Australia/South', 494 'Australia/Tasmania', 495 'Australia/Victoria', 496 'Australia/West', 497 'Australia/Yancowinna', 498 'Brazil/Acre', 499 'Brazil/DeNoronha', 500 'Brazil/East', 501 'Brazil/West', 502 'Canada/Atlantic', 503 'Canada/Central', 504 'Canada/Eastern', 505 'Canada/Mountain', 506 'Canada/Newfoundland', 507 'Canada/Pacific', 508 'Canada/Saskatchewan', 509 'Canada/Yukon', 510 'Chile/Continental', 511 'Chile/EasterIsland', 512 'Cuba', 513 'Egypt', 514 'Eire', 515 'Etc/GMT+0', 516 'Etc/GMT-0', 517 'Etc/GMT0', 518 'Etc/Greenwich', 519 'Etc/UCT', 520 'Etc/Universal', 521 'Etc/Zulu', 522 'Europe/Amsterdam', 523 'Europe/Belfast', 524 'Europe/Bratislava', 525 'Europe/Busingen', 526 'Europe/Copenhagen', 527 'Europe/Guernsey', 528 'Europe/Isle_of_Man', 529 'Europe/Jersey', 530 'Europe/Kiev', 531 'Europe/Ljubljana', 532 'Europe/Luxembourg', 533 'Europe/Mariehamn', 534 'Europe/Monaco', 535 'Europe/Nicosia', 536 'Europe/Oslo', 537 'Europe/Podgorica', 538 'Europe/San_Marino', 539 'Europe/Sarajevo', 540 'Europe/Skopje', 541 'Europe/Stockholm', 542 'Europe/Tiraspol', 543 'Europe/Uzhgorod', 544 'Europe/Vaduz', 545 'Europe/Vatican', 546 'Europe/Zagreb', 547 'Europe/Zaporozhye', 548 'GB', 549 'GB-Eire', 550 'GMT', 551 'GMT+0', 552 'GMT-0', 553 'GMT0', 554 'Greenwich', 555 'Hongkong', 556 'Iceland', 557 'Indian/Antananarivo', 558 'Indian/Christmas', 559 'Indian/Cocos', 560 'Indian/Comoro', 561 'Indian/Kerguelen', 562 'Indian/Mahe', 563 'Indian/Mayotte', 564 'Indian/Reunion', 565 'Iran', 566 'Israel', 567 'Jamaica', 568 'Japan', 569 'Kwajalein', 570 'Libya', 571 'Mexico/BajaNorte', 572 'Mexico/BajaSur', 573 'Mexico/General', 574 'NZ', 575 'NZ-CHAT', 576 'Navajo', 577 'PRC', 578 'Pacific/Chuuk', 579 'Pacific/Enderbury', 580 'Pacific/Funafuti', 581 'Pacific/Johnston', 582 'Pacific/Majuro', 583 'Pacific/Midway', 584 'Pacific/Pohnpei', 585 'Pacific/Ponape', 586 'Pacific/Saipan', 587 'Pacific/Samoa', 588 'Pacific/Truk', 589 'Pacific/Wake', 590 'Pacific/Wallis', 591 'Pacific/Yap', 592 'Poland', 593 'Portugal', 594 'ROC', 595 'ROK', 596 'Singapore', 597 'Turkey', 598 'UCT', 599 'US/Alaska', 600 'US/Aleutian', 601 'US/Arizona', 602 'US/Central', 603 'US/East-Indiana', 604 'US/Eastern', 605 'US/Hawaii', 606 'US/Indiana-Starke', 607 'US/Michigan', 608 'US/Mountain', 609 'US/Pacific', 610 'US/Samoa', 611 'UTC', 612 'Universal', 613 'W-SU', 614 'Zulu' 615 ]; 616 617 // We want to test all available named time zone identifiers (both primary and non-primary), 618 // but no ECMAScript built-in API exposes that list. So we use a union of two sources: 619 // 1. A hard-coded list of Zone and Link identifiers from the 2022g version of IANA TZDB. 620 // 2. Canonical IDs exposed by Intl.supportedValuesOf('timeZone'), which ensures that IDs 621 // added to TZDB later than 2022g will be tested. (New IDs are almost always added as primary.) 622 const ids = [...new Set([...timeZoneIdentifiers, ...Intl.supportedValuesOf('timeZone')])]; 623 for (const id of ids) { 624 const lower = id.toLowerCase(); 625 const upper = id.toUpperCase(); 626 assert.sameValue(new Temporal.ZonedDateTime(0n, id).timeZoneId, id, `Time zone created from string "${id}"`); 627 assert.sameValue(new Temporal.ZonedDateTime(0n, upper).timeZoneId, id, `Time zone created from string "${upper}"`); 628 assert.sameValue(new Temporal.ZonedDateTime(0n, lower).timeZoneId, id, `Time zone created from string "${lower}"`); 629 } 630 631 reportCompare(0, 0);