2012-08-27 05:49:25 +02:00
// Copyright 2012 Mozilla Corporation. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
2014-07-22 01:09:02 +02:00
/ * - - -
2014-07-25 00:41:42 +02:00
es5id : 9.2 . 2
2014-07-22 01:09:02 +02:00
description : >
Tests that locales that are reported by resolvedOptions are also
reported by supportedLocalesOf .
author : Norbert Lindenberg
includes : [ testIntl . js ]
-- - * /
2012-08-27 05:49:25 +02:00
testWithIntlConstructors ( function ( Constructor ) {
var info = getLocaleSupportInfo ( Constructor ) ;
// this test should work equally for both matching algorithms
[ "lookup" , "best fit" ] . forEach ( function ( matcher ) {
var supportedByConstructor = info . supported . concat ( info . byFallback ) ;
var supported = Constructor . supportedLocalesOf ( supportedByConstructor ,
{ localeMatcher : matcher } ) ;
// we could check the length first, but it's probably more interesting which locales are missing
var i = 0 ;
var limit = Math . min ( supportedByConstructor . length , supported . length ) ;
while ( i < limit && supportedByConstructor [ i ] === supported [ i ] ) {
i ++ ;
}
2017-05-04 21:16:14 +02:00
assert . sameValue ( i < supportedByConstructor . length , false , "Locale " + supportedByConstructor [ i ] + " is returned by resolvedOptions but not by supportedLocalesOf." ) ;
assert . sameValue ( i < supported . length , false , "Locale " + supported [ i ] + " is returned by supportedLocalesOf but not by resolvedOptions." ) ;
2012-08-27 05:49:25 +02:00
} ) ;
// this test is only valid for lookup - best fit may find additional locales supported
var unsupportedByConstructor = info . unsupported ;
var supported = Constructor . supportedLocalesOf ( unsupportedByConstructor ,
{ localeMatcher : "lookup" } ) ;
2017-05-04 21:16:14 +02:00
assert . sameValue ( supported . length > 0 , false , "Locale " + supported [ 0 ] + " is returned by supportedLocalesOf but not by resolvedOptions." ) ;
2012-08-27 05:49:25 +02:00
return true ;
} ) ;