assertEquals($language, $translationWriter->getLanguage()); $this->assertFalse($translationWriter->hasTranslations()); } public function getValidConstructorData() { return array( array('en', ''), array('de', ''), array('en', 'ExamplePlugin'), ); } /** * @group Core * * @expectedException \Exception */ public function testConstructorInvalid() { new Writer('en', 'InValIdPlUGin'); } /** * @group Core */ public function testHasTranslations() { $writer = new Writer('de'); $writer->setTranslations(array('General' => array('test' => 'test'))); $this->assertTrue($writer->hasTranslations()); } /** * @group Core */ public function testHasNoTranslations() { $writer = new Writer('de'); $this->assertFalse($writer->hasTranslations()); } /** * @group Core */ public function testSetTranslationsEmpty() { $writer = new Writer('de'); $writer->setTranslations(array()); $this->assertTrue($writer->isValid()); $this->assertFalse($writer->hasTranslations()); } /** * @group Core * * @dataProvider getInvalidTranslations */ public function testSetTranslationsInvalid($translations, $error) { $writer = new Writer('de'); $writer->setTranslations($translations); $writer->addValidator(new NoScripts()); $writer->addValidator(new CoreTranslations()); $this->assertFalse($writer->isValid()); $this->assertEquals($error, $writer->getValidationMessage()); } public function getInvalidTranslations() { $translations = json_decode(file_get_contents(PIWIK_INCLUDE_PATH.'/lang/de.json'), true); return array( array(array('General' => array('Locale' => '')) + $translations, CoreTranslations::ERRORSTATE_LOCALEREQUIRED), array(array('General' => array('Locale' => 'de_DE.UTF-8')) + $translations, CoreTranslations::ERRORSTATE_TRANSLATORINFOREQUIRED), array(array('General' => array('Locale' => 'invalid', 'TranslatorName' => 'name')) + $translations, CoreTranslations::ERRORSTATE_LOCALEINVALID), array(array('General' => array('Locale' => 'xx_DE.UTF-8', 'TranslatorName' => 'name')) + $translations, CoreTranslations::ERRORSTATE_LOCALEINVALIDLANGUAGE), array(array('General' => array('Locale' => 'de_XX.UTF-8', 'TranslatorName' => 'name')) + $translations, CoreTranslations::ERRORSTATE_LOCALEINVALIDCOUNTRY), array(array('General' => array('Locale' => '