diff options
Diffstat (limited to 'test/suite/intl402/ch09/9.1/9.1_b.js')
-rw-r--r-- | test/suite/intl402/ch09/9.1/9.1_b.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/suite/intl402/ch09/9.1/9.1_b.js b/test/suite/intl402/ch09/9.1/9.1_b.js new file mode 100644 index 000000000..a0abc7fc1 --- /dev/null +++ b/test/suite/intl402/ch09/9.1/9.1_b.js @@ -0,0 +1,32 @@ +// Copyright 2012 Mozilla Corporation. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * @description Tests that appropriate fallback locales are provided for + * supported locales. + * @author Norbert Lindenberg + */ + +$INCLUDE("testIntl.js"); + +testWithIntlConstructors(function (Constructor) { + var info = getLocaleSupportInfo(Constructor); + var fallback; + info.supported.forEach(function (locale) { + var pos = locale.lastIndexOf("-"); + if (pos !== -1) { + fallback = locale.substring(0, pos); + if (info.supported.indexOf(fallback) === -1) { + $ERROR("Locale " + locale + " is supported, but fallback " + fallback + " isn't."); + } + } + var match = /([a-z]{2,3})(-[A-Z][a-z]{3})(-[A-Z]{2})/.exec(locale); + if (match !== null) { + fallback = match[1] + match[3]; + if (info.supported.indexOf(fallback) === -1) { + $ERROR("Locale " + locale + " is supported, but fallback " + fallback + " isn't."); + } + } + }); +}); + |