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