1- var languageData = require ( __dirname + '/ ../../src/index' ) ,
1+ const languageData = require ( ' ../../src/index.js ' ) ,
22 assert = require ( 'assert' ) ;
33
4- describe ( 'languagedata' , function ( ) {
5- var orphanScripts , badRedirects , invalidCodes ,
6- doubleRedirects , doubleAutonyms , languagesWithoutAutonym ;
4+ describe ( 'languagedata' , ( ) => {
75 /*
86 * Runs over all script codes mentioned in langdb and checks whether
97 * they belong to the 'Other' group.
108 */
11- orphanScripts = function ( ) {
12- var language , script ,
13- result = [ ] ;
14- for ( language in languageData . getLanguages ( ) ) {
15- script = languageData . getScript ( language ) ;
9+ const orphanScripts = ( ) => {
10+ const result = [ ] ;
11+ for ( const language in languageData . getLanguages ( ) ) {
12+ const script = languageData . getScript ( language ) ;
1613 if ( languageData . getGroupOfScript ( script ) === 'Other' ) {
1714 result . push ( script ) ;
1815 }
@@ -22,11 +19,10 @@ describe( 'languagedata', function () {
2219 /*
2320 * Runs over all languages and checks that all redirects have a valid target.
2421 */
25- badRedirects = function ( ) {
26- var language , target ,
27- result = [ ] ;
28- for ( language in languageData . getLanguages ( ) ) {
29- target = languageData . isRedirect ( language ) ;
22+ const badRedirects = ( ) => {
23+ const result = [ ] ;
24+ for ( const language in languageData . getLanguages ( ) ) {
25+ const target = languageData . isRedirect ( language ) ;
3026 if ( target && ! languageData . getLanguages ( ) [ target ] ) {
3127 result . push ( language ) ;
3228 }
@@ -36,12 +32,11 @@ describe( 'languagedata', function () {
3632 /*
3733 * Runs over all languages and checks that all redirects have a valid target.
3834 */
39- invalidCodes = function ( ) {
40- var languageCode ,
41- invalidCharsRe = / [ ^ 0 - 9 a - z - ] / ,
42- result = [ ] ;
35+ const invalidCodes = ( ) => {
36+ const invalidCharsRe = / [ ^ 0 - 9 a - z - ] / ;
37+ const result = [ ] ;
4338
44- for ( languageCode in languageData . getLanguages ( ) ) {
39+ for ( const languageCode in languageData . getLanguages ( ) ) {
4540 if ( languageCode . match ( invalidCharsRe ) ) {
4641 result . push ( languageCode ) ;
4742 }
@@ -53,11 +48,10 @@ describe( 'languagedata', function () {
5348 * Runs over all languages and checks that all redirects point to a language.
5449 * There's no reason to have double redirects.
5550 */
56- doubleRedirects = function ( ) {
57- var language , target ,
58- result = [ ] ;
59- for ( language in languageData . getLanguages ( ) ) {
60- target = languageData . isRedirect ( language ) ;
51+ const doubleRedirects = ( ) => {
52+ const result = [ ] ;
53+ for ( const language in languageData . getLanguages ( ) ) {
54+ const target = languageData . isRedirect ( language ) ;
6155 if ( target && languageData . isRedirect ( target ) ) {
6256 result . push ( language ) ;
6357 }
@@ -67,19 +61,18 @@ describe( 'languagedata', function () {
6761 /*
6862 * Runs over all languages and checks that all autonyms are unique.
6963 */
70- doubleAutonyms = function ( ) {
71- var language , autonym ,
72- autonyms = [ ] ,
73- duplicateAutonyms = [ ] ;
64+ const doubleAutonyms = ( ) => {
65+ const autonyms = [ ] ;
66+ const duplicateAutonyms = [ ] ;
7467
75- for ( language in languageData . getLanguages ( ) ) {
68+ for ( const language in languageData . getLanguages ( ) ) {
7669 if ( languageData . isRedirect ( language ) ) {
7770 continue ;
7871 }
7972
80- autonym = languageData . getAutonym ( language ) ;
73+ const autonym = languageData . getAutonym ( language ) ;
8174
82- if ( autonyms . indexOf ( autonym ) > - 1 ) {
75+ if ( autonyms . includes ( autonym ) ) {
8376 duplicateAutonyms . push ( language ) ;
8477 }
8578
@@ -92,26 +85,24 @@ describe( 'languagedata', function () {
9285 * Runs over all script codes mentioned in langdb and checks whether
9386 * they have something that looks like an autonym.
9487 */
95- languagesWithoutAutonym = function ( ) {
96- var language ,
97- result = [ ] ;
98- for ( language in languageData . getLanguages ( ) ) {
88+ const languagesWithoutAutonym = ( ) => {
89+ const result = [ ] ;
90+ for ( const language in languageData . getLanguages ( ) ) {
9991 if ( typeof languageData . getAutonym ( language ) !== 'string' ) {
10092 result . push ( language ) ;
10193 }
10294 }
10395 return result ;
10496 } ;
10597
106- it ( 'language tags' , function ( ) {
98+ it ( 'language tags' , ( ) => {
10799 assert . ok ( languageData . isKnown ( 'ar' ) , 'Language is unknown' ) ;
108100 assert . ok ( ! languageData . isKnown ( 'unknownLanguageCode!' ) , 'Language is known' ) ;
109101 assert . deepEqual ( invalidCodes ( ) , [ ] , 'All language codes have no invalid characters.' ) ;
110102 } ) ;
111103
112- it ( 'autonyms' , function ( ) {
113- var autonyms , chineseScriptLanguages , i ,
114- languagesWithParentheses = [ ] ;
104+ it ( 'autonyms' , ( ) => {
105+ const languagesWithParentheses = [ ] ;
115106 // Add a language in run time.
116107 // This is done early to make sure that it doesn't break other functions.
117108 languageData . addLanguage ( 'qqq' , {
@@ -120,11 +111,11 @@ describe( 'languagedata', function () {
120111 autonym : 'Language documentation'
121112 } ) ;
122113 assert . ok ( languageData . getAutonym ( 'qqq' ) , 'Language documentation' , 'Language qqq was added with the correct autonym' ) ;
123- autonyms = languageData . getAutonyms ( ) ;
124- assert . strictEqual ( autonyms [ 'zu' ] , 'isiZulu' , 'Correct autonym is returned for Zulu using getAutonyms().' ) ;
114+ const autonyms = languageData . getAutonyms ( ) ;
115+ assert . strictEqual ( autonyms . zu , 'isiZulu' , 'Correct autonym is returned for Zulu using getAutonyms().' ) ;
125116 assert . deepEqual ( doubleAutonyms ( ) , [ ] , 'All languages have distinct autonyms.' ) ;
126117 assert . strictEqual ( autonyms [ 'pa-guru' ] , undefined , 'Language "pa-guru" is not listed in autonyms, because it is a redirect' ) ;
127- assert . strictEqual ( autonyms [ 'pa' ] , 'ਪੰਜਾਬੀ' , 'Language "pa" has the correct autonym' ) ;
118+ assert . strictEqual ( autonyms . pa , 'ਪੰਜਾਬੀ' , 'Language "pa" has the correct autonym' ) ;
128119 assert . deepEqual ( languagesWithoutAutonym ( ) , [ ] , 'All languages have autonyms.' ) ;
129120 assert . strictEqual ( languageData . getAutonym ( 'pa' ) , 'ਪੰਜਾਬੀ' , 'Correct autonym of the Punjabi language was selected using code pa.' ) ;
130121 assert . strictEqual ( languageData . getAutonym ( 'pa-guru' ) , 'ਪੰਜਾਬੀ' , 'Correct autonym of the Punjabi language was selected using code pa-guru.' ) ;
@@ -133,17 +124,16 @@ describe( 'languagedata', function () {
133124 'gn' , 'de' , 'hu' , 'fi'
134125 ] , 'Languages are correctly sorted by autonym' ) ;
135126
136- chineseScriptLanguages = languageData . getLanguagesInScripts ( [ 'Hans' , 'Hant' , 'Hani' ] ) ;
137- for ( i = 0 ; i < chineseScriptLanguages . length ; ++ i ) {
138- if ( languageData . getAutonym ( chineseScriptLanguages [ i ] ) . match ( / [ ( ) ] / ) ) {
139- languagesWithParentheses . push ( chineseScriptLanguages [ i ] ) ;
127+ const chineseScriptLanguages = languageData . getLanguagesInScripts ( [ 'Hans' , 'Hant' , 'Hani' ] ) ;
128+ for ( const lang of chineseScriptLanguages ) {
129+ if ( languageData . getAutonym ( lang ) . match ( / [ ( ) ] / ) ) {
130+ languagesWithParentheses . push ( lang ) ;
140131 }
141132 }
142133 assert . deepEqual ( languagesWithParentheses , [ ] , 'Chinese script languages\' autonyms don\'t have Western parentheses' ) ;
143134 } ) ;
144- it ( 'regions and groups' , function ( ) {
145- var languagesAM ,
146- regionGroups = languageData . getRegionGroups ( ) ;
135+ it ( 'regions and groups' , ( ) => {
136+ const regionGroups = languageData . getRegionGroups ( ) ;
147137
148138 // This test assumes that we don't want any scripts to be in the 'Other'
149139 // group. Actually, this may become wrong some day.
@@ -160,22 +150,22 @@ describe( 'languagedata', function () {
160150 'An invalid country has no languages and returns an empty array'
161151 ) ;
162152
163- languagesAM = [ 'atj' , 'chr' , 'chy' , 'cr' , 'en' , 'es' , 'fr' , 'gn' , 'haw' , 'ike-cans' , 'ik' , 'kl' , 'nl' , 'pt' , 'qu' , 'srn' , 'yi' ] ;
153+ const languagesAM = [ 'atj' , 'chr' , 'chy' , 'cr' , 'en' , 'es' , 'fr' , 'gn' , 'haw' , 'ike-cans' , 'ik' , 'kl' , 'nl' , 'pt' , 'qu' , 'srn' , 'yi' ] ;
164154 assert . deepEqual (
165155 languageData . sortByScriptGroup ( languagesAM . sort ( languageData . sortByAutonym ) ) ,
166- [ 'atj' , 'gn' , 'en' , 'es' , 'fr' , 'haw' , 'ik' , 'kl' , 'nl' , 'pt' , 'qu' , 'srn' , 'chy' , 'yi' , 'ike-cans ' , 'cr ' , 'chr ' ] ,
156+ [ 'atj' , 'gn' , 'en' , 'es' , 'fr' , 'haw' , 'ik' , 'kl' , 'nl' , 'pt' , 'qu' , 'srn' , 'chy' , 'yi' , 'chr ' , 'ike-cans ' , 'cr ' ] ,
167157 'languages in region AM are ordered correctly by script group'
168158 ) ;
169159
170- for ( var language in languageData . getLanguages ( ) ) {
171- var regions = languageData . getRegions ( language ) ;
160+ for ( const language in languageData . getLanguages ( ) ) {
161+ const regions = languageData . getRegions ( language ) ;
172162
173- for ( var region of regions ) {
174- assert . ok ( regionGroups [ region ] , `Language ${ language } has an invalid region ${ region } ` ) ;
163+ for ( const region of regions ) {
164+ assert . ok ( regionGroups [ region ] , `Language ${ language } has an invalid region ${ region } ` ) ;
175165 }
176166 }
177167 } ) ;
178- it ( 'scripts' , function ( ) {
168+ it ( 'scripts' , ( ) => {
179169 // This test assumes that we don't want any scripts to be in the 'Other'
180170 // group. Actually, this may become wrong some day.
181171 assert . deepEqual ( orphanScripts ( ) , [ ] , 'All scripts belong to script groups.' ) ;
@@ -187,14 +177,14 @@ describe( 'languagedata', function () {
187177 assert . strictEqual ( languageData . getGroupOfScript ( 'Beng' ) , 'SouthAsian' , 'Bengali script belongs to the SouthAsian group.' ) ;
188178 assert . strictEqual ( languageData . getScriptGroupOfLanguage ( 'iu' ) , 'NativeAmerican' , 'The script of the Inupiaq language belongs to the NativeAmerican group.' ) ;
189179 } ) ;
190- it ( 'redirects' , function ( ) {
180+ it ( 'redirects' , ( ) => {
191181 assert . strictEqual ( languageData . isRedirect ( 'sr-ec' ) , 'sr-cyrl' , '"sr-ec" is a redirect to "sr-cyrl"' ) ;
192182 assert . deepEqual ( badRedirects ( ) , [ ] , 'All redirects have valid targets.' ) ;
193183 assert . deepEqual ( doubleRedirects ( ) , [ ] , 'There are no double redirects.' ) ;
194184 assert . strictEqual ( languageData . getScript ( 'no-such-language' ) , 'Zyyy' , 'A script for an unknown language is Zyyy - undetermined' ) ;
195185 assert . strictEqual ( languageData . getScript ( 'ii' ) , 'Yiii' , 'Correct script of the Yi language was selected' ) ;
196186 } ) ;
197- it ( 'directionality' , function ( ) {
187+ it ( 'directionality' , ( ) => {
198188 assert . strictEqual ( languageData . isRtl ( 'te' ) , false , 'Telugu language is not RTL' ) ;
199189 assert . strictEqual ( languageData . isRtl ( 'dv' ) , true , 'Divehi language is RTL' ) ;
200190 assert . strictEqual ( languageData . getDir ( 'mzn' ) , 'rtl' , 'Mazandarani language is RTL' ) ;
0 commit comments