tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

supportedLocalesOf-consistent-with-resolvedOptions.js (1924B)


      1 // Copyright 2012 Mozilla Corporation. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 es5id: 9.2.2
      6 description: >
      7    Tests that locales that are reported by resolvedOptions  are also
      8    reported by supportedLocalesOf.
      9 author: Norbert Lindenberg
     10 includes: [testIntl.js]
     11 ---*/
     12 
     13 testWithIntlConstructors(function (Constructor) {
     14    // this test should work equally for both matching algorithms
     15    ["lookup", "best fit"].forEach(function (matcher) {
     16        var info = getLocaleSupportInfo(Constructor, {localeMatcher: matcher});
     17        var supportedByConstructor = info.supported.concat(info.byFallback);
     18        var supported = Constructor.supportedLocalesOf(supportedByConstructor,
     19            {localeMatcher: matcher});
     20        // we could check the length first, but it's probably more interesting which locales are missing
     21        var i = 0;
     22        var limit = Math.min(supportedByConstructor.length, supported.length);
     23        while (i < limit && supportedByConstructor[i] === supported[i]) {
     24            i++;
     25        }
     26        assert.sameValue(i < supportedByConstructor.length, false, "Locale " + supportedByConstructor[i] + " is returned by resolvedOptions but not by supportedLocalesOf.");
     27        assert.sameValue(i < supported.length, false, "Locale " + supported[i] + " is returned by supportedLocalesOf but not by resolvedOptions.");
     28    });
     29    
     30    // this test is only valid for lookup - best fit may find additional locales supported
     31    var info = getLocaleSupportInfo(Constructor, {localeMatcher: "lookup"});
     32    var unsupportedByConstructor = info.unsupported;
     33    var supported = Constructor.supportedLocalesOf(unsupportedByConstructor,
     34            {localeMatcher: "lookup"});
     35    assert.sameValue(supported.length > 0, false, "Locale " + supported[0] + " is returned by supportedLocalesOf but not by resolvedOptions.");
     36 });
     37 
     38 reportCompare(0, 0);