From fda386a998ad5a64c109797e6ac9d70d8d718c96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Tue, 19 Jul 2022 18:52:03 -0300 Subject: [PATCH] Fix LanguageTest failing test when locale file is missing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MaurĂ­cio Meneghini Fauth --- test/classes/LanguageTest.php | 54 +++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/test/classes/LanguageTest.php b/test/classes/LanguageTest.php index c07abae0ea..d2ae460005 100644 --- a/test/classes/LanguageTest.php +++ b/test/classes/LanguageTest.php @@ -8,6 +8,7 @@ use PhpMyAdmin\LanguageManager; use function _ngettext; use function count; +use function file_exists; use function is_readable; use function strtolower; @@ -150,7 +151,7 @@ class LanguageTest extends AbstractTestCase * @param string $accept Value for HTTP Accept-Language header * @param string $agent Value for HTTP User-Agent header * @param string $default Value for default language - * @param string $expect Expected language name + * @param string $expect Expected language code * * @dataProvider selectDataProvider */ @@ -164,6 +165,11 @@ class LanguageTest extends AbstractTestCase string $default, string $expect ): void { + if ($expect !== 'en' && ! file_exists(LOCALE_PATH . '/' . $expect . '/LC_MESSAGES/phpmyadmin.mo')) { + // This could happen after removing incomplete .mo files. + $this->markTestSkipped('Locale file does not exists: ' . $expect); + } + $GLOBALS['config']->set('FilterLanguages', ''); $GLOBALS['config']->set('Lang', $lang); $GLOBALS['config']->set('is_https', false); @@ -176,7 +182,7 @@ class LanguageTest extends AbstractTestCase $lang = $this->manager->selectLanguage(); - $this->assertEquals($expect, $lang->getEnglishName()); + $this->assertEquals($expect, $lang->getCode()); $GLOBALS['config']->set('Lang', ''); $_POST['lang'] = ''; @@ -195,28 +201,28 @@ class LanguageTest extends AbstractTestCase public function selectDataProvider(): array { return [ - ['cs', 'en', '', '', '', '', '', 'Czech'], - ['', 'cs', '', '', '', '', '', 'Czech'], - ['', 'cs', 'en', '', '', '', '', 'Czech'], - ['', '', 'cs', '', '', '', '', 'Czech'], - ['', '', '', 'cs', '', '', '', 'Czech'], - ['', '', '', '', 'cs,en-US;q=0.7,en;q=0.3', '', '', 'Czech'], - ['', '', '', '', '', 'Mozilla/5.0 (Linux; U; Android 2.2.2; tr-tr; GM FOX)', '', 'Turkish'], - ['', '', '', '', '', '', 'cs', 'Czech'], - ['', '', '', '', '', '', '', 'English'], - ['', '', '', '', 'pt;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'Portuguese'], - ['', '', '', '', 'pt-PT,pt;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'Portuguese'], - ['', '', '', '', 'pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'Portuguese (Brazil)'], - ['', '', '', '', 'ar;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'Arabic'], - ['', '', '', '', 'ar-AE,ar;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'Arabic'], - ['', '', '', '', 'ar-LY,ar;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'Arabic (Libya)'], - ['', '', '', '', 'en,pt;q=0.5', '', 'pt', 'English'], - ['', '', '', '', 'en-GB,en;q=0.7,pt;q=0.3', '', 'pt', 'English (United Kingdom)'], - ['', '', '', '', 'en-US,en;q=0.7,pt;q=0.3', '', 'pt', 'English'], - ['', '', '', '', 'zh,en;q=0.5', '', 'en', 'Chinese simplified'], - ['', '', '', '', 'zh-CN,zh;q=0.7,en;q=0.3', '', 'en', 'Chinese simplified'], - ['', '', '', '', 'zh-HK,zh;q=0.7,en;q=0.3', '', 'en', 'Chinese traditional'], - ['', '', '', '', 'zh-TW,zh;q=0.7,en;q=0.3', '', 'en', 'Chinese traditional'], + ['cs', 'en', '', '', '', '', '', 'cs'], + ['', 'cs', '', '', '', '', '', 'cs'], + ['', 'cs', 'en', '', '', '', '', 'cs'], + ['', '', 'cs', '', '', '', '', 'cs'], + ['', '', '', 'cs', '', '', '', 'cs'], + ['', '', '', '', 'cs,en-US;q=0.7,en;q=0.3', '', '', 'cs'], + ['', '', '', '', '', 'Mozilla/5.0 (Linux; U; Android 2.2.2; tr-tr; GM FOX)', '', 'tr'], + ['', '', '', '', '', '', 'cs', 'cs'], + ['', '', '', '', '', '', '', 'en'], + ['', '', '', '', 'pt;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'pt'], + ['', '', '', '', 'pt-PT,pt;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'pt'], + ['', '', '', '', 'pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'pt_BR'], + ['', '', '', '', 'ar;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'ar'], + ['', '', '', '', 'ar-AE,ar;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'ar'], + ['', '', '', '', 'ar-LY,ar;q=0.8,en-US;q=0.5,en;q=0.3', '', 'en', 'ar_LY'], + ['', '', '', '', 'en,pt;q=0.5', '', 'pt', 'en'], + ['', '', '', '', 'en-GB,en;q=0.7,pt;q=0.3', '', 'pt', 'en_GB'], + ['', '', '', '', 'en-US,en;q=0.7,pt;q=0.3', '', 'pt', 'en'], + ['', '', '', '', 'zh,en;q=0.5', '', 'en', 'zh_CN'], + ['', '', '', '', 'zh-CN,zh;q=0.7,en;q=0.3', '', 'en', 'zh_CN'], + ['', '', '', '', 'zh-HK,zh;q=0.7,en;q=0.3', '', 'en', 'zh_TW'], + ['', '', '', '', 'zh-TW,zh;q=0.7,en;q=0.3', '', 'en', 'zh_TW'], ]; }