Piwik\Plugins\LanguagesManager\Test\Integration\LanguagesManagerTest::testGetLanguageNamesInEnglish PHP Method

testGetLanguageNamesInEnglish() public method

test English short name for language
    function testGetLanguageNamesInEnglish()
    {
        $languages = API::getInstance()->getAvailableLanguages();
        /** @var LanguageDataProvider $dataProvider */
        $dataProvider = StaticContainer::get('Piwik\\Intl\\Data\\Provider\\LanguageDataProvider');
        $languagesReference = $dataProvider->getLanguageList();
        foreach ($languages as $language) {
            $data = file_get_contents(PIWIK_INCLUDE_PATH . "/plugins/Intl/lang/{$language}.json");
            $translations = json_decode($data, true);
            $name = $translations['Intl']['EnglishLanguageName'];
            if ($language != 'en') {
                $this->assertFalse($name == 'English', "for {$language}");
            }
            $languageCode = substr($language, 0, 2);
            $this->assertTrue(isset($languagesReference[$languageCode]));
            $names = $languagesReference[$languageCode];
            if (isset($languagesReference[$language])) {
                if (is_array($names)) {
                    $this->assertTrue(in_array($name, $names), "{$language}: failed because {$name} not a known language name");
                } else {
                    $this->assertTrue($name == $names, "{$language}: failed because {$name} == {$names}");
                }
            } else {
                if (is_array($names)) {
                    $this->assertTrue(strpos($name, $names[0]) !== false);
                } else {
                    $this->fail("{$language}: expected an array of language names");
                }
            }
        }
    }