getFunctionMock(__NAMESPACE__, 'get_config'); //$gc->expects($this->once())->willReturn(10) //$cg = $this->getFunctionMock('Zotlabs\Lib\Config', 'Get'); //$cg->expects($this->once())->willReturn(10); //$this->assertEquals($langCode, detect_language($text)); // Can not unit test detect_language(), therefore test the used library // only for now to find regressions on library updates. $l = new Text_LanguageDetect; // return 2-letter ISO 639-1 (en) language code $l->setNameMode(2); $lng = $l->detectConfidence($text); $this->assertEquals($langCode, $lng['language']); $this->assertEquals($confidence, round($lng['confidence'], 6)); } public function languageExamplesProvider() { return [ 'English' => [ 'English is a West Germanic language that was first spoken in early medieval England and is now a global lingua franca.[4][5] Named after the Angles, one of the Germanic tribes that migrated to England, it ultimately derives its name from the Anglia (Angeln) peninsula in the Baltic Sea. It is closely related to the Frisian languages, but its vocabulary has been significantly influenced by other Germanic languages, particularly Norse (a North Germanic language), as well as by Latin and Romance languages, especially French.', 'en', 0.078422 ], 'German' => [ 'Deutschland ist ein Bundesstaat in Mitteleuropa. Er besteht aus 16 Ländern und ist als freiheitlich-demokratischer und sozialer Rechtsstaat verfasst. Die Bundesrepublik Deutschland stellt die jüngste Ausprägung des deutschen Nationalstaates dar. Mit rund 82,8 Millionen Einwohnern (31. Dezember 2016) zählt Deutschland zu den dicht besiedelten Flächenstaaten.', 'de', 0.134339 ], 'Norwegian' => [ 'Kongeriket Norge er et nordisk, europeisk land og en selvstendig stat vest på Den skandinaviske halvøy. Landet er langt og smalt, og kysten strekker seg langs Nord-Atlanteren, hvor også Norges kjente fjorder befinner seg. Totalt dekker det relativt tynt befolkede landet 385 000 kvadratkilometer med litt over fem millioner innbyggere (2016).', 'no', 0.007076 ] ]; } /** * @covers ::get_language_name * @dataProvider getLanguageNameProvider */ public function testGetLanguageName($lang, $name, $trans) { $this->assertEquals($name, get_language_name($lang)); foreach ($trans as $k => $v) { //echo "$k -> $v"; $this->assertEquals($v, get_language_name($lang, $k)); } } public function getLanguageNameProvider() { return [ 'empty language code' => [ '', '', ['de' => ''] ], 'invalid language code' => [ 'zz', 'zz', ['de' => 'zz'] ], 'de' => [ 'de', 'German', [ 'de' => 'Deutsch', 'nb' => 'tysk' ] ], 'de-de' => [ 'de-de', 'German', [ 'de-de' => 'Deutsch', 'nb' => 'Deutsch' // should be tysk, seems to be a bug upstream ] ], 'en' => [ 'en', 'English', [ 'de' => 'Englisch', 'nb' => 'engelsk' ] ], 'en-gb' => [ 'en-gb', 'British English', [ 'de' => 'Englisch (Vereinigtes Königreich)', 'nb' => 'engelsk (Storbritannia)' ] ], 'en-au' => [ 'en-au', 'Australian English', [ 'de' => 'Englisch (Australien)', 'nb' => 'engelsk (Australia)' ] ], 'nb' => [ 'nb', 'Norwegian Bokmål', [ 'de' => 'Norwegisch (Bokmål)', 'nb' => 'norsk bokmål' ] ] ]; } }