1
0
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:
Edward Z. Yang
2006-08-02 02:24:03 +00:00
parent d243545142
commit 626cfc1172
6 changed files with 220 additions and 1 deletions

View File

@@ -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);
}

View 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;')
);
}
}
?>