0
0
mirror of https://github.com/ezyang/htmlpurifier.git synced 2024-09-21 11:45:17 +00:00
htmlpurifier/tests/HTMLPurifier/Strategy/MakeWellFormed/EndInsertInjectorTest.php
Edward Z. Yang bfe474042f Implement "carryover" functionality, requested by Kinderlehrer <bitweaver@7doves.com>
This commit is a limited implementation of the "active formatting
elements" algorithm implemented in HTML5, which preserves certain
formatting elements such as <a> and <b> when exiting or entering nodes.

Signed-off-by: Edward Z. Yang <edwardzyang@thewritingpot.com>
2008-12-20 13:06:00 -05:00

39 lines
1.3 KiB
PHP

<?php
class HTMLPurifier_Strategy_MakeWellFormed_EndInsertInjectorTest extends HTMLPurifier_StrategyHarness
{
function setUp() {
parent::setUp();
$this->obj = new HTMLPurifier_Strategy_MakeWellFormed();
$this->config->set('AutoFormat', 'Custom', array(
new HTMLPurifier_Strategy_MakeWellFormed_EndInsertInjector()
));
}
function testEmpty() {
$this->assertResult('');
}
function testNormal() {
$this->assertResult('<i>Foo</i>', '<i>Foo<b>Comment</b></i>');
}
function testEndOfDocumentProcessing() {
$this->assertResult('<i>Foo', '<i>Foo<b>Comment</b></i>');
}
function testDoubleEndOfDocumentProcessing() {
$this->assertResult('<i><i>Foo', '<i><i>Foo<b>Comment</b></i><b>Comment</b></i>');
}
function testEndOfNodeProcessing() {
$this->assertResult('<div><i>Foo</div>asdf', '<div><i>Foo<b>Comment</b></i></div><i>asdf<b>Comment</b></i>');
}
function testEmptyToStartEndProcessing() {
$this->assertResult('<i />', '<i><b>Comment</b></i>');
}
function testSpuriousEndTag() {
$this->assertResult('</i>', '');
}
function testLessButStillSpuriousEndTag() {
$this->assertResult('<div></i></div>', '<div></div>');
}
}
// vim: et sw=4 sts=4