diff options
Diffstat (limited to 'test/suite/intl402/ch06/6.4/6.4_c.js')
-rw-r--r-- | test/suite/intl402/ch06/6.4/6.4_c.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/suite/intl402/ch06/6.4/6.4_c.js b/test/suite/intl402/ch06/6.4/6.4_c.js new file mode 100644 index 000000000..75bcdbd80 --- /dev/null +++ b/test/suite/intl402/ch06/6.4/6.4_c.js @@ -0,0 +1,36 @@ +// Copyright 2012 Mozilla Corporation. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @description Tests that additional time zone names, if accepted, are handled correctly. + * @author Norbert Lindenberg + */ + +// canonicalization specified in conformance clause +var additionalTimeZoneNames = { + "Etc/GMT": "UTC", + "Greenwich": "UTC", + "PRC": "Asia/Shanghai", + "AmErIcA/LoS_aNgElEs": "America/Los_Angeles", + "etc/gmt+7": "Etc/GMT+7" +}; + +Object.getOwnPropertyNames(additionalTimeZoneNames).forEach(function (name) { + var format, error; + try { + format = new Intl.DateTimeFormat([], {timeZone: name}); + } catch (e) { + error = e; + } + if (error === undefined) { + var actual = format.resolvedOptions().timeZone; + var expected = additionalTimeZoneNames.name; + if (actual !== expected) { + $ERROR("Time zone name " + name + " was accepted, but incorrectly canonicalized to " + + actual + "; expected " + expected + "."); + } + } else if (error.name !== "RangeError") { + $ERROR("Time zone name " + name + " was rejected with wrong error " + error.name + "."); + } +}); + |