aboutsummaryrefslogtreecommitdiffstats
path: root/lib/htmlpurifier/tests/HTMLPurifier/DefinitionCacheFactoryTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/htmlpurifier/tests/HTMLPurifier/DefinitionCacheFactoryTest.php')
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/DefinitionCacheFactoryTest.php70
1 files changed, 70 insertions, 0 deletions
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/DefinitionCacheFactoryTest.php b/lib/htmlpurifier/tests/HTMLPurifier/DefinitionCacheFactoryTest.php
new file mode 100644
index 000000000..d50ef8be1
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/DefinitionCacheFactoryTest.php
@@ -0,0 +1,70 @@
+<?php
+
+class HTMLPurifier_DefinitionCacheFactoryTest extends HTMLPurifier_Harness
+{
+
+ protected $factory;
+ protected $oldFactory;
+
+ public function setUp() {
+ parent::setup();
+ $this->factory = new HTMLPurifier_DefinitionCacheFactory();
+ $this->oldFactory = HTMLPurifier_DefinitionCacheFactory::instance();
+ HTMLPurifier_DefinitionCacheFactory::instance($this->factory);
+ }
+
+ public function tearDown() {
+ HTMLPurifier_DefinitionCacheFactory::instance($this->oldFactory);
+ }
+
+ function test_create() {
+ $cache = $this->factory->create('Test', $this->config);
+ $this->assertEqual($cache, new HTMLPurifier_DefinitionCache_Serializer('Test'));
+ }
+
+ function test_create_withDecorator() {
+ $this->factory->addDecorator('Memory');
+ $cache = $this->factory->create('Test', $this->config);
+ $cache_real = new HTMLPurifier_DefinitionCache_Decorator_Memory();
+ $cache_real = $cache_real->decorate(new HTMLPurifier_DefinitionCache_Serializer('Test'));
+ $this->assertEqual($cache, $cache_real);
+ }
+
+ function test_create_withDecoratorObject() {
+ $this->factory->addDecorator(new HTMLPurifier_DefinitionCache_Decorator_Memory());
+ $cache = $this->factory->create('Test', $this->config);
+ $cache_real = new HTMLPurifier_DefinitionCache_Decorator_Memory();
+ $cache_real = $cache_real->decorate(new HTMLPurifier_DefinitionCache_Serializer('Test'));
+ $this->assertEqual($cache, $cache_real);
+ }
+
+ function test_create_recycling() {
+ $cache = $this->factory->create('Test', $this->config);
+ $cache2 = $this->factory->create('Test', $this->config);
+ $this->assertReference($cache, $cache2);
+ }
+
+ function test_create_invalid() {
+ $this->config->set('Cache.DefinitionImpl', 'Invalid');
+ $this->expectError('Unrecognized DefinitionCache Invalid, using Serializer instead');
+ $cache = $this->factory->create('Test', $this->config);
+ $this->assertIsA($cache, 'HTMLPurifier_DefinitionCache_Serializer');
+ }
+
+ function test_null() {
+ $this->config->set('Cache.DefinitionImpl', null);
+ $cache = $this->factory->create('Test', $this->config);
+ $this->assertEqual($cache, new HTMLPurifier_DefinitionCache_Null('Test'));
+ }
+
+ function test_register() {
+ generate_mock_once('HTMLPurifier_DefinitionCache');
+ $this->config->set('Cache.DefinitionImpl', 'TestCache');
+ $this->factory->register('TestCache', $class = 'HTMLPurifier_DefinitionCacheMock');
+ $cache = $this->factory->create('Test', $this->config);
+ $this->assertIsA($cache, $class);
+ }
+
+}
+
+// vim: et sw=4 sts=4