mirror of
https://github.com/ezyang/htmlpurifier.git
synced 2025-08-06 06:07:26 +02:00
Implement center, menu and dir tag transformations. Font transform pending.
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@140 48356398-32a2-884e-a903-53898d9a118a
This commit is contained in:
@@ -24,6 +24,14 @@ class HTMLPurifier_Strategy_RemoveForeignElementsTest
|
||||
$inputs[2] = '<asdf>Bling</asdf><d href="bang">Bong</d><foobar />';
|
||||
$expect[2] = htmlspecialchars($inputs[2]);
|
||||
|
||||
// test simple transform
|
||||
$inputs[3] = '<menu><li>Item 1</li></menu>';
|
||||
$expect[3] = '<ul><li>Item 1</li></ul>';
|
||||
|
||||
// test center transform
|
||||
$inputs[4] = '<center>Look I am Centered!</center>';
|
||||
$expect[4] = '<div style="text-align:center;">Look I am Centered!</div>';
|
||||
|
||||
$this->assertStrategyWorks($strategy, $inputs, $expect);
|
||||
}
|
||||
|
||||
|
98
tests/HTMLPurifier/TagTransformTest.php
Normal file
98
tests/HTMLPurifier/TagTransformTest.php
Normal file
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
require_once 'HTMLPurifier/TagTransform.php';
|
||||
|
||||
class HTMLPurifier_TagTransformTest extends UnitTestCase
|
||||
{
|
||||
|
||||
function assertTransformation($transformer,
|
||||
$name, $attributes,
|
||||
$expect_name, $expect_attributes,
|
||||
$expect_added_attributes = array()) {
|
||||
|
||||
|
||||
// start tag transform
|
||||
$this->assertEqual(
|
||||
new HTMLPurifier_Token_Start($expect_name, $expect_added_attributes),
|
||||
$transformer->transform(
|
||||
new HTMLPurifier_Token_Start($name))
|
||||
);
|
||||
|
||||
// start tag transform with attributes
|
||||
$this->assertEqual(
|
||||
new HTMLPurifier_Token_Start($expect_name, $expect_attributes),
|
||||
$transformer->transform(
|
||||
new HTMLPurifier_Token_Start($name, $attributes)
|
||||
)
|
||||
);
|
||||
|
||||
// end tag transform
|
||||
$this->assertEqual(
|
||||
new HTMLPurifier_Token_End($expect_name),
|
||||
$transformer->transform(new HTMLPurifier_Token_End($name))
|
||||
);
|
||||
|
||||
// empty tag transform
|
||||
$this->assertEqual(
|
||||
new HTMLPurifier_Token_Empty($expect_name, $expect_added_attributes),
|
||||
$transformer->transform(new HTMLPurifier_Token_Empty($name))
|
||||
);
|
||||
|
||||
// empty tag transform with attributes
|
||||
$this->assertEqual(
|
||||
new HTMLPurifier_Token_Empty($expect_name, $expect_attributes),
|
||||
$transformer->transform(
|
||||
new HTMLPurifier_Token_Empty($name, $attributes))
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
function test_normalizeAttributes() {
|
||||
|
||||
$transformer = new HTMLPurifier_TagTransform();
|
||||
|
||||
$this->assertEqual(array(), $transformer->normalizeAttributes(array()));
|
||||
$this->assertEqual(array('class'=>'foo'),
|
||||
$transformer->normalizeAttributes(array('class'=>'foo')));
|
||||
$this->assertEqual(array('class'=>'foo'),
|
||||
$transformer->normalizeAttributes(array('CLASS'=>'foo')));
|
||||
|
||||
}
|
||||
|
||||
function testSimple() {
|
||||
|
||||
$transformer = new HTMLPurifier_TagTransform_Simple('ul');
|
||||
|
||||
$this->assertTransformation(
|
||||
$transformer,
|
||||
'menu', array('class' => 'boom'),
|
||||
'ul', array('class' => 'boom')
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
function testCenter() {
|
||||
|
||||
$transformer = new HTMLPurifier_TagTransform_Center();
|
||||
|
||||
$this->assertTransformation(
|
||||
$transformer,
|
||||
'center', array('class' => 'boom', 'style'=>'font-weight:bold;'),
|
||||
'div', array('class' => 'boom', 'style'=>'text-align:center;font-weight:bold;'),
|
||||
array('style'=>'text-align:center;')
|
||||
);
|
||||
|
||||
// test special case, uppercase attribute key
|
||||
$this->assertTransformation(
|
||||
$transformer,
|
||||
'center', array('STYLE'=>'font-weight:bold;'),
|
||||
'div', array('style'=>'text-align:center;font-weight:bold;'),
|
||||
array('style'=>'text-align:center;')
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
Reference in New Issue
Block a user