88
99use function _ngettext ;
1010use function count ;
11+ use function file_exists ;
1112use function is_readable ;
1213use function strtolower ;
1314
@@ -150,7 +151,7 @@ public function testGet(): void
150151 * @param string $accept Value for HTTP Accept-Language header
151152 * @param string $agent Value for HTTP User-Agent header
152153 * @param string $default Value for default language
153- * @param string $expect Expected language name
154+ * @param string $expect Expected language code
154155 *
155156 * @dataProvider selectDataProvider
156157 */
@@ -164,6 +165,11 @@ public function testSelect(
164165 string $ default ,
165166 string $ expect
166167 ): void {
168+ if ($ expect !== 'en ' && ! file_exists (LOCALE_PATH . '/ ' . $ expect . '/LC_MESSAGES/phpmyadmin.mo ' )) {
169+ // This could happen after removing incomplete .mo files.
170+ $ this ->markTestSkipped ('Locale file does not exists: ' . $ expect );
171+ }
172+
167173 $ GLOBALS ['config ' ]->set ('FilterLanguages ' , '' );
168174 $ GLOBALS ['config ' ]->set ('Lang ' , $ lang );
169175 $ GLOBALS ['config ' ]->set ('is_https ' , false );
@@ -176,7 +182,7 @@ public function testSelect(
176182
177183 $ lang = $ this ->manager ->selectLanguage ();
178184
179- $ this ->assertEquals ($ expect , $ lang ->getEnglishName ());
185+ $ this ->assertEquals ($ expect , $ lang ->getCode ());
180186
181187 $ GLOBALS ['config ' ]->set ('Lang ' , '' );
182188 $ _POST ['lang ' ] = '' ;
@@ -195,28 +201,28 @@ public function testSelect(
195201 public function selectDataProvider (): array
196202 {
197203 return [
198- ['cs ' , 'en ' , '' , '' , '' , '' , '' , 'Czech ' ],
199- ['' , 'cs ' , '' , '' , '' , '' , '' , 'Czech ' ],
200- ['' , 'cs ' , 'en ' , '' , '' , '' , '' , 'Czech ' ],
201- ['' , '' , 'cs ' , '' , '' , '' , '' , 'Czech ' ],
202- ['' , '' , '' , 'cs ' , '' , '' , '' , 'Czech ' ],
203- ['' , '' , '' , '' , 'cs,en-US;q=0.7,en;q=0.3 ' , '' , '' , 'Czech ' ],
204- ['' , '' , '' , '' , '' , 'Mozilla/5.0 (Linux; U; Android 2.2.2; tr-tr; GM FOX) ' , '' , 'Turkish ' ],
205- ['' , '' , '' , '' , '' , '' , 'cs ' , 'Czech ' ],
206- ['' , '' , '' , '' , '' , '' , '' , 'English ' ],
207- ['' , '' , '' , '' , 'pt;q=0.8,en-US;q=0.5,en;q=0.3 ' , '' , 'en ' , 'Portuguese ' ],
208- ['' , '' , '' , '' , 'pt-PT,pt;q=0.8,en-US;q=0.5,en;q=0.3 ' , '' , 'en ' , 'Portuguese ' ],
209- ['' , '' , '' , '' , 'pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3 ' , '' , 'en ' , 'Portuguese (Brazil) ' ],
210- ['' , '' , '' , '' , 'ar;q=0.8,en-US;q=0.5,en;q=0.3 ' , '' , 'en ' , 'Arabic ' ],
211- ['' , '' , '' , '' , 'ar-AE,ar;q=0.8,en-US;q=0.5,en;q=0.3 ' , '' , 'en ' , 'Arabic ' ],
212- ['' , '' , '' , '' , 'ar-LY,ar;q=0.8,en-US;q=0.5,en;q=0.3 ' , '' , 'en ' , 'Arabic (Libya) ' ],
213- ['' , '' , '' , '' , 'en,pt;q=0.5 ' , '' , 'pt ' , 'English ' ],
214- ['' , '' , '' , '' , 'en-GB,en;q=0.7,pt;q=0.3 ' , '' , 'pt ' , 'English (United Kingdom) ' ],
215- ['' , '' , '' , '' , 'en-US,en;q=0.7,pt;q=0.3 ' , '' , 'pt ' , 'English ' ],
216- ['' , '' , '' , '' , 'zh,en;q=0.5 ' , '' , 'en ' , 'Chinese simplified ' ],
217- ['' , '' , '' , '' , 'zh-CN,zh;q=0.7,en;q=0.3 ' , '' , 'en ' , 'Chinese simplified ' ],
218- ['' , '' , '' , '' , 'zh-HK,zh;q=0.7,en;q=0.3 ' , '' , 'en ' , 'Chinese traditional ' ],
219- ['' , '' , '' , '' , 'zh-TW,zh;q=0.7,en;q=0.3 ' , '' , 'en ' , 'Chinese traditional ' ],
204+ ['cs ' , 'en ' , '' , '' , '' , '' , '' , 'cs ' ],
205+ ['' , 'cs ' , '' , '' , '' , '' , '' , 'cs ' ],
206+ ['' , 'cs ' , 'en ' , '' , '' , '' , '' , 'cs ' ],
207+ ['' , '' , 'cs ' , '' , '' , '' , '' , 'cs ' ],
208+ ['' , '' , '' , 'cs ' , '' , '' , '' , 'cs ' ],
209+ ['' , '' , '' , '' , 'cs,en-US;q=0.7,en;q=0.3 ' , '' , '' , 'cs ' ],
210+ ['' , '' , '' , '' , '' , 'Mozilla/5.0 (Linux; U; Android 2.2.2; tr-tr; GM FOX) ' , '' , 'tr ' ],
211+ ['' , '' , '' , '' , '' , '' , 'cs ' , 'cs ' ],
212+ ['' , '' , '' , '' , '' , '' , '' , 'en ' ],
213+ ['' , '' , '' , '' , 'pt;q=0.8,en-US;q=0.5,en;q=0.3 ' , '' , 'en ' , 'pt ' ],
214+ ['' , '' , '' , '' , 'pt-PT,pt;q=0.8,en-US;q=0.5,en;q=0.3 ' , '' , 'en ' , 'pt ' ],
215+ ['' , '' , '' , '' , 'pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3 ' , '' , 'en ' , 'pt_BR ' ],
216+ ['' , '' , '' , '' , 'ar;q=0.8,en-US;q=0.5,en;q=0.3 ' , '' , 'en ' , 'ar ' ],
217+ ['' , '' , '' , '' , 'ar-AE,ar;q=0.8,en-US;q=0.5,en;q=0.3 ' , '' , 'en ' , 'ar ' ],
218+ ['' , '' , '' , '' , 'ar-LY,ar;q=0.8,en-US;q=0.5,en;q=0.3 ' , '' , 'en ' , 'ar_LY ' ],
219+ ['' , '' , '' , '' , 'en,pt;q=0.5 ' , '' , 'pt ' , 'en ' ],
220+ ['' , '' , '' , '' , 'en-GB,en;q=0.7,pt;q=0.3 ' , '' , 'pt ' , 'en_GB ' ],
221+ ['' , '' , '' , '' , 'en-US,en;q=0.7,pt;q=0.3 ' , '' , 'pt ' , 'en ' ],
222+ ['' , '' , '' , '' , 'zh,en;q=0.5 ' , '' , 'en ' , 'zh_CN ' ],
223+ ['' , '' , '' , '' , 'zh-CN,zh;q=0.7,en;q=0.3 ' , '' , 'en ' , 'zh_CN ' ],
224+ ['' , '' , '' , '' , 'zh-HK,zh;q=0.7,en;q=0.3 ' , '' , 'en ' , 'zh_TW ' ],
225+ ['' , '' , '' , '' , 'zh-TW,zh;q=0.7,en;q=0.3 ' , '' , 'en ' , 'zh_TW ' ],
220226 ];
221227 }
222228
0 commit comments