addElementToContentSet ( 'b', 'Inline' ); $this->assertIdentical ( $module->content_sets, array ( 'Inline' => 'b' ) ); $module->addElementToContentSet ( 'i', 'Inline' ); $this->assertIdentical ( $module->content_sets, array ( 'Inline' => 'b | i' ) ); } public function test_addElement() { $module = new HTMLPurifier_HTMLModule (); $def = $module->addElement ( 'a', 'Inline', 'Optional: #PCDATA', array ( 'Common' ), array ( 'href' => 'URI' ) ); $module2 = new HTMLPurifier_HTMLModule (); $def2 = new HTMLPurifier_ElementDef (); $def2->content_model = '#PCDATA'; $def2->content_model_type = 'optional'; $def2->attr = array ( 'href' => 'URI', 0 => array ( 'Common' ) ); $module2->info ['a'] = $def2; $module2->elements = array ( 'a' ); $module2->content_sets ['Inline'] = 'a'; $this->assertIdentical ( $module, $module2 ); $this->assertIdentical ( $def, $def2 ); $this->assertReference ( $def, $module->info ['a'] ); } public function test_parseContents() { $module = new HTMLPurifier_HTMLModule (); // pre-defined templates $this->assertIdentical ( $module->parseContents ( 'Inline' ), array ( 'optional', 'Inline | #PCDATA' ) ); $this->assertIdentical ( $module->parseContents ( 'Flow' ), array ( 'optional', 'Flow | #PCDATA' ) ); $this->assertIdentical ( $module->parseContents ( 'Empty' ), array ( 'empty', '' ) ); // normalization procedures $this->assertIdentical ( $module->parseContents ( 'optional: a' ), array ( 'optional', 'a' ) ); $this->assertIdentical ( $module->parseContents ( 'OPTIONAL :a' ), array ( 'optional', 'a' ) ); $this->assertIdentical ( $module->parseContents ( 'Optional: a' ), array ( 'optional', 'a' ) ); // others $this->assertIdentical ( $module->parseContents ( 'Optional: a | b | c' ), array ( 'optional', 'a | b | c' ) ); // object pass-through generate_mock_once ( 'HTMLPurifier_AttrDef' ); $this->assertIdentical ( $module->parseContents ( new HTMLPurifier_AttrDefMock () ), array ( null, null ) ); } public function test_mergeInAttrIncludes() { $module = new HTMLPurifier_HTMLModule (); $attr = array (); $module->mergeInAttrIncludes ( $attr, 'Common' ); $this->assertIdentical ( $attr, array ( 0 => array ( 'Common' ) ) ); $attr = array ( 'a' => 'b' ); $module->mergeInAttrIncludes ( $attr, array ( 'Common', 'Good' ) ); $this->assertIdentical ( $attr, array ( 'a' => 'b', 0 => array ( 'Common', 'Good' ) ) ); } public function test_addBlankElement() { $module = new HTMLPurifier_HTMLModule (); $def = $module->addBlankElement ( 'a' ); $def2 = new HTMLPurifier_ElementDef (); $def2->standalone = false; $this->assertReference ( $module->info ['a'], $def ); $this->assertIdentical ( $def, $def2 ); } public function test_makeLookup() { $module = new HTMLPurifier_HTMLModule (); $this->assertIdentical ( $module->makeLookup ( 'foo' ), array ( 'foo' => true ) ); $this->assertIdentical ( $module->makeLookup ( array ( 'foo' ) ), array ( 'foo' => true ) ); $this->assertIdentical ( $module->makeLookup ( 'foo', 'two' ), array ( 'foo' => true, 'two' => true ) ); $this->assertIdentical ( $module->makeLookup ( array ( 'foo', 'two' ) ), array ( 'foo' => true, 'two' => true ) ); } } // vim: et sw=4 sts=4