factory = HTMLPurifier_LanguageFactory::instance ();
parent::setUp ();
}
public function test() {
$this->config->set ( 'Core.Language', 'en' );
$language = $this->factory->create ( $this->config, $this->context );
$this->assertIsA ( $language, 'HTMLPurifier_Language' );
$this->assertIdentical ( $language->code, 'en' );
// lazy loading test
$this->assertIdentical ( count ( $language->messages ), 0 );
$language->load ();
$this->assertNotEqual ( count ( $language->messages ), 0 );
}
public function testFallback() {
$this->config->set ( 'Core.Language', 'en-x-test' );
$language = $this->factory->create ( $this->config, $this->context );
$this->assertIsA ( $language, 'HTMLPurifier_Language_en_x_test' );
$this->assertIdentical ( $language->code, 'en-x-test' );
$language->load ();
// test overloaded message
$this->assertIdentical ( $language->getMessage ( 'HTMLPurifier' ), 'HTML Purifier X' );
// test inherited message
$this->assertIdentical ( $language->getMessage ( 'LanguageFactoryTest: Pizza' ), 'Pizza' );
}
public function testFallbackWithNoClass() {
$this->config->set ( 'Core.Language', 'en-x-testmini' );
$language = $this->factory->create ( $this->config, $this->context );
$this->assertIsA ( $language, 'HTMLPurifier_Language' );
$this->assertIdentical ( $language->code, 'en-x-testmini' );
$language->load ();
$this->assertIdentical ( $language->getMessage ( 'HTMLPurifier' ), 'HTML Purifier XNone' );
$this->assertIdentical ( $language->getMessage ( 'LanguageFactoryTest: Pizza' ), 'Pizza' );
$this->assertIdentical ( $language->error, false );
}
public function testNoSuchLanguage() {
$this->config->set ( 'Core.Language', 'en-x-testnone' );
$language = $this->factory->create ( $this->config, $this->context );
$this->assertIsA ( $language, 'HTMLPurifier_Language' );
$this->assertIdentical ( $language->code, 'en-x-testnone' );
$this->assertIdentical ( $language->error, true );
}
}
// vim: et sw=4 sts=4