Release 2.1.0, merged in 1313 to HEAD.
[htmlpurifier.git] / tests / HTMLPurifier / DoctypeRegistryTest.php
blobcec9dfcd98b2cba2b9e9877962a206afe3448f49
1 <?php
3 require_once 'HTMLPurifier/DoctypeRegistry.php';
5 class HTMLPurifier_DoctypeRegistryTest extends HTMLPurifier_Harness
8 function test_register() {
10 $registry = new HTMLPurifier_DoctypeRegistry();
12 $d =& $registry->register(
13 $name = 'XHTML 1.0 Transitional',
14 $xml = true,
15 $modules = array('module-one', 'module-two'),
16 $tidyModules = array('lenient-module'),
17 $aliases = array('X10T')
20 $d2 = new HTMLPurifier_Doctype($name, $xml, $modules, $tidyModules, $aliases);
22 $this->assertIdentical($d, $d2);
23 $this->assertReference($d, $registry->get('XHTML 1.0 Transitional'));
25 // test shorthand
26 $d =& $registry->register(
27 $name = 'XHTML 1.0 Strict', true, 'module', 'Tidy', 'X10S'
29 $d2 = new HTMLPurifier_Doctype($name, true, array('module'), array('Tidy'), array('X10S'));
31 $this->assertIdentical($d, $d2);
35 function test_get() {
37 // see also alias and register tests
39 $registry = new HTMLPurifier_DoctypeRegistry();
41 $this->expectError('Doctype XHTML 2.0 does not exist');
42 $registry->get('XHTML 2.0');
44 // prevent XSS
45 $this->expectError('Doctype &lt;foo&gt; does not exist');
46 $registry->get('<foo>');
50 function testAliases() {
52 $registry = new HTMLPurifier_DoctypeRegistry();
54 $d1 =& $registry->register('Doc1', true, array(), array(), array('1'));
56 $this->assertReference($d1, $registry->get('Doc1'));
57 $this->assertReference($d1, $registry->get('1'));
59 $d2 =& $registry->register('Doc2', true, array(), array(), array('2'));
61 $this->assertReference($d2, $registry->get('Doc2'));
62 $this->assertReference($d2, $registry->get('2'));
64 $d3 =& $registry->register('1', true, array(), array(), array());
66 // literal name overrides alias
67 $this->assertReference($d3, $registry->get('1'));
69 $d4 =& $registry->register('One', true, array(), array(), array('1'));
71 $this->assertReference($d4, $registry->get('One'));
72 // still it overrides
73 $this->assertReference($d3, $registry->get('1'));