3 Copyright 2012 Yahoo! Inc. All rights reserved.
4 Licensed under the BSD License.
5 http://yuilibrary.com/license/
7 if (typeof _yuitest_coverage == "undefined"){
8 _yuitest_coverage = {};
9 _yuitest_coverline = function(src, line){
10 var coverage = _yuitest_coverage[src];
11 if (!coverage.lines[line]){
12 coverage.calledLines++;
14 coverage.lines[line]++;
16 _yuitest_coverfunc = function(src, name, line){
17 var coverage = _yuitest_coverage[src],
18 funcId = name + ":" + line;
19 if (!coverage.functions[funcId]){
20 coverage.calledFunctions++;
22 coverage.functions[funcId]++;
25 _yuitest_coverage["build/intl-base/intl-base.js"] = {
32 path: "build/intl-base/intl-base.js",
35 _yuitest_coverage["build/intl-base/intl-base.js"].code=["YUI.add('intl-base', function (Y, NAME) {","","/**"," * The Intl utility provides a central location for managing sets of"," * localized resources (strings and formatting patterns)."," *"," * @class Intl"," * @uses EventTarget"," * @static"," */","","var SPLIT_REGEX = /[, ]/;","","Y.mix(Y.namespace('Intl'), {",""," /**"," * Returns the language among those available that"," * best matches the preferred language list, using the Lookup"," * algorithm of BCP 47."," * If none of the available languages meets the user's preferences,"," * then \"\" is returned."," * Extended language ranges are not supported."," *"," * @method lookupBestLang"," * @param {String[] | String} preferredLanguages The list of preferred"," * languages in descending preference order, represented as BCP 47"," * language tags. A string array or a comma-separated list."," * @param {String[]} availableLanguages The list of languages"," * that the application supports, represented as BCP 47 language"," * tags."," *"," * @return {String} The available language that best matches the"," * preferred language list, or \"\"."," * @since 3.1.0"," */"," lookupBestLang: function(preferredLanguages, availableLanguages) {",""," var i, language, result, index;",""," // check whether the list of available languages contains language;"," // if so return it"," function scan(language) {"," var i;"," for (i = 0; i < availableLanguages.length; i += 1) {"," if (language.toLowerCase() ==="," availableLanguages[i].toLowerCase()) {"," return availableLanguages[i];"," }"," }"," }",""," if (Y.Lang.isString(preferredLanguages)) {"," preferredLanguages = preferredLanguages.split(SPLIT_REGEX);"," }",""," for (i = 0; i < preferredLanguages.length; i += 1) {"," language = preferredLanguages[i];"," if (!language || language === '*') {"," continue;"," }"," // check the fallback sequence for one language"," while (language.length > 0) {"," result = scan(language);"," if (result) {"," return result;"," } else {"," index = language.lastIndexOf('-');"," if (index >= 0) {"," language = language.substring(0, index);"," // one-character subtags get cut along with the"," // following subtag"," if (index >= 2 && language.charAt(index - 2) === '-') {"," language = language.substring(0, index - 2);"," }"," } else {"," // nothing available for this language"," break;"," }"," }"," }"," }",""," return '';"," }","});","","","}, '3.7.2', {\"requires\": [\"yui-base\"]});"];
36 _yuitest_coverage["build/intl-base/intl-base.js"].lines = {"1":0,"12":0,"14":0,"38":0,"42":0,"43":0,"44":0,"45":0,"47":0,"52":0,"53":0,"56":0,"57":0,"58":0,"59":0,"62":0,"63":0,"64":0,"65":0,"67":0,"68":0,"69":0,"72":0,"73":0,"77":0,"83":0};
37 _yuitest_coverage["build/intl-base/intl-base.js"].functions = {"scan:42":0,"lookupBestLang:36":0,"(anonymous 1):1":0};
38 _yuitest_coverage["build/intl-base/intl-base.js"].coveredLines = 26;
39 _yuitest_coverage["build/intl-base/intl-base.js"].coveredFunctions = 3;
40 _yuitest_coverline("build/intl-base/intl-base.js", 1);
41 YUI.add('intl-base', function (Y, NAME) {
44 * The Intl utility provides a central location for managing sets of
45 * localized resources (strings and formatting patterns).
52 _yuitest_coverfunc("build/intl-base/intl-base.js", "(anonymous 1)", 1);
53 _yuitest_coverline("build/intl-base/intl-base.js", 12);
54 var SPLIT_REGEX = /[, ]/;
56 _yuitest_coverline("build/intl-base/intl-base.js", 14);
57 Y.mix(Y.namespace('Intl'), {
60 * Returns the language among those available that
61 * best matches the preferred language list, using the Lookup
62 * algorithm of BCP 47.
63 * If none of the available languages meets the user's preferences,
64 * then "" is returned.
65 * Extended language ranges are not supported.
67 * @method lookupBestLang
68 * @param {String[] | String} preferredLanguages The list of preferred
69 * languages in descending preference order, represented as BCP 47
70 * language tags. A string array or a comma-separated list.
71 * @param {String[]} availableLanguages The list of languages
72 * that the application supports, represented as BCP 47 language
75 * @return {String} The available language that best matches the
76 * preferred language list, or "".
79 lookupBestLang: function(preferredLanguages, availableLanguages) {
81 _yuitest_coverfunc("build/intl-base/intl-base.js", "lookupBestLang", 36);
82 _yuitest_coverline("build/intl-base/intl-base.js", 38);
83 var i, language, result, index;
85 // check whether the list of available languages contains language;
87 _yuitest_coverline("build/intl-base/intl-base.js", 42);
88 function scan(language) {
89 _yuitest_coverfunc("build/intl-base/intl-base.js", "scan", 42);
90 _yuitest_coverline("build/intl-base/intl-base.js", 43);
92 _yuitest_coverline("build/intl-base/intl-base.js", 44);
93 for (i = 0; i < availableLanguages.length; i += 1) {
94 _yuitest_coverline("build/intl-base/intl-base.js", 45);
95 if (language.toLowerCase() ===
96 availableLanguages[i].toLowerCase()) {
97 _yuitest_coverline("build/intl-base/intl-base.js", 47);
98 return availableLanguages[i];
103 _yuitest_coverline("build/intl-base/intl-base.js", 52);
104 if (Y.Lang.isString(preferredLanguages)) {
105 _yuitest_coverline("build/intl-base/intl-base.js", 53);
106 preferredLanguages = preferredLanguages.split(SPLIT_REGEX);
109 _yuitest_coverline("build/intl-base/intl-base.js", 56);
110 for (i = 0; i < preferredLanguages.length; i += 1) {
111 _yuitest_coverline("build/intl-base/intl-base.js", 57);
112 language = preferredLanguages[i];
113 _yuitest_coverline("build/intl-base/intl-base.js", 58);
114 if (!language || language === '*') {
115 _yuitest_coverline("build/intl-base/intl-base.js", 59);
118 // check the fallback sequence for one language
119 _yuitest_coverline("build/intl-base/intl-base.js", 62);
120 while (language.length > 0) {
121 _yuitest_coverline("build/intl-base/intl-base.js", 63);
122 result = scan(language);
123 _yuitest_coverline("build/intl-base/intl-base.js", 64);
125 _yuitest_coverline("build/intl-base/intl-base.js", 65);
128 _yuitest_coverline("build/intl-base/intl-base.js", 67);
129 index = language.lastIndexOf('-');
130 _yuitest_coverline("build/intl-base/intl-base.js", 68);
132 _yuitest_coverline("build/intl-base/intl-base.js", 69);
133 language = language.substring(0, index);
134 // one-character subtags get cut along with the
136 _yuitest_coverline("build/intl-base/intl-base.js", 72);
137 if (index >= 2 && language.charAt(index - 2) === '-') {
138 _yuitest_coverline("build/intl-base/intl-base.js", 73);
139 language = language.substring(0, index - 2);
142 // nothing available for this language
143 _yuitest_coverline("build/intl-base/intl-base.js", 77);
150 _yuitest_coverline("build/intl-base/intl-base.js", 83);
156 }, '3.7.2', {"requires": ["yui-base"]});