| // Copyright 2012 Mozilla Corporation. All rights reserved. |
| // This code is governed by the license found in the LICENSE file. |
| |
| /** |
| * @description Tests that the object returned by Intl.Collator.prototype.resolvedOptions |
| * has the right properties. |
| * @author Norbert Lindenberg |
| */ |
| |
| $INCLUDE("testIntl.js"); |
| |
| var actual = new Intl.Collator().resolvedOptions(); |
| |
| var actual2 = new Intl.Collator().resolvedOptions(); |
| if (actual2 === actual) { |
| $ERROR("resolvedOptions returned the same object twice."); |
| } |
| |
| // source: CLDR file common/bcp47/collation.xml; version CLDR 21. |
| var collations = [ |
| "default", // added |
| "big5han", |
| "dict", |
| "direct", |
| "ducet", |
| "gb2312", |
| "phonebk", |
| "phonetic", |
| "pinyin", |
| "reformed", |
| // "search", // excluded |
| "searchjl", |
| // "standard", // excluded |
| "stroke", |
| "trad", |
| "unihan" |
| ]; |
| |
| // this assumes the default values where the specification provides them |
| mustHaveProperty(actual, "locale", isCanonicalizedStructurallyValidLanguageTag); |
| mustHaveProperty(actual, "usage", ["sort"]); |
| mustHaveProperty(actual, "sensitivity", ["variant"]); |
| mustHaveProperty(actual, "ignorePunctuation", [false]); |
| mustHaveProperty(actual, "collation", collations); |
| mayHaveProperty(actual, "numeric", [true, false]); |
| mayHaveProperty(actual, "caseFirst", ["upper", "lower", "false"]); |
| |