| // Copyright 2011-2012 Norbert Lindenberg. All rights reserved. |
| // Copyright 2012 Mozilla Corporation. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| |
| /*--- |
| es5id: 10.3.2_CS_d_NN |
| description: > |
| Tests that the compare function supports different sensitivity |
| settings. This test is not normative. |
| author: Norbert Lindenberg |
| includes: [compareArray.js] |
| ---*/ |
| |
| // this test should be valid at least for the following locales |
| var locales = ["de", "en", "es", "it"]; |
| locales = Intl.Collator.supportedLocalesOf(locales, {localeMatcher: "lookup"}); |
| locales.forEach(function (locale) { |
| var target = "Aa"; |
| var input = ["Aa", "bA", "E", "b", "aA", "fC", "áÁ", "Aã"]; |
| var expected = { |
| "base": ["Aa", "aA", "áÁ", "Aã"], |
| "accent": ["Aa", "aA"], |
| "case": ["Aa", "Aã"], |
| "variant": ["Aa"] |
| }; |
| Object.getOwnPropertyNames(expected).forEach(function (sensitivity) { |
| var collator = new Intl.Collator([locale], {usage: "search", |
| sensitivity: sensitivity, localeMatcher: "lookup"}); |
| var matches = input.filter(function (v) { |
| return collator.compare(v, target) === 0; |
| }); |
| assert.compareArray(matches, expected[sensitivity]); |
| }); |
| }); |