MDL-35616 import YUI 3.7.2
[moodle.git] / lib / yuilib / 3.7.2 / build / intl-base / intl-base-coverage.js
blob050932d379faf29e5c1f11c95b94c63c57ab1161
1 /*
2 YUI 3.7.2 (build 5639)
3 Copyright 2012 Yahoo! Inc. All rights reserved.
4 Licensed under the BSD License.
5 http://yuilibrary.com/license/
6 */
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++;
13         }
14         coverage.lines[line]++;
15     };
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++;
21         }
22         coverage.functions[funcId]++;
23     };
25 _yuitest_coverage["build/intl-base/intl-base.js"] = {
26     lines: {},
27     functions: {},
28     coveredLines: 0,
29     calledLines: 0,
30     coveredFunctions: 0,
31     calledFunctions: 0,
32     path: "build/intl-base/intl-base.js",
33     code: []
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) {
43 /**
44  * The Intl utility provides a central location for managing sets of
45  * localized resources (strings and formatting patterns).
46  *
47  * @class Intl
48  * @uses EventTarget
49  * @static
50  */
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'), {
59  /**
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.
66     *
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
73     * tags.
74     *
75     * @return {String} The available language that best matches the
76     * preferred language list, or "".
77     * @since 3.1.0
78     */
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;
86         // if so return it
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);
91 var i;
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];
99                 }
100             }
101         }
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);
107         }
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);
116 continue;
117             }
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);
124 if (result) {
125                     _yuitest_coverline("build/intl-base/intl-base.js", 65);
126 return result;
127                 } else {
128                     _yuitest_coverline("build/intl-base/intl-base.js", 67);
129 index = language.lastIndexOf('-');
130                     _yuitest_coverline("build/intl-base/intl-base.js", 68);
131 if (index >= 0) {
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
135                         // following subtag
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);
140                         }
141                     } else {
142                         // nothing available for this language
143                         _yuitest_coverline("build/intl-base/intl-base.js", 77);
144 break;
145                     }
146                 }
147             }
148         }
150         _yuitest_coverline("build/intl-base/intl-base.js", 83);
151 return '';
152     }
156 }, '3.7.2', {"requires": ["yui-base"]});