diff options
Diffstat (limited to 'lib/htmlpurifier/tests/HTMLPurifier/LanguageFactoryTest.php')
-rw-r--r-- | lib/htmlpurifier/tests/HTMLPurifier/LanguageFactoryTest.php | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/LanguageFactoryTest.php b/lib/htmlpurifier/tests/HTMLPurifier/LanguageFactoryTest.php new file mode 100644 index 000000000..9fea24f42 --- /dev/null +++ b/lib/htmlpurifier/tests/HTMLPurifier/LanguageFactoryTest.php @@ -0,0 +1,70 @@ +<?php + +class HTMLPurifier_LanguageFactoryTest extends HTMLPurifier_Harness +{ + + /** + * Protected reference of global factory we're testing. + */ + protected $factory; + + public function setUp() { + $this->factory = HTMLPurifier_LanguageFactory::instance(); + parent::setUp(); + } + + 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); + + } + + 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'); + + } + + 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); + } + + 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 |