mirror of
https://github.com/ezyang/htmlpurifier.git
synced 2025-07-30 19:00:10 +02:00
Properly handle nested sublists by folding into previous list item.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
This commit is contained in:
50
tests/HTMLPurifier/ChildDef/ListTest.php
Normal file
50
tests/HTMLPurifier/ChildDef/ListTest.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
class HTMLPurifier_ChildDef_ListTest extends HTMLPurifier_ChildDefHarness
|
||||
{
|
||||
|
||||
function setUp() {
|
||||
parent::setUp();
|
||||
$this->obj = new HTMLPurifier_ChildDef_List();
|
||||
}
|
||||
|
||||
function testEmptyInput() {
|
||||
$this->assertResult('', false);
|
||||
}
|
||||
|
||||
function testSingleLi() {
|
||||
$this->assertResult('<li />');
|
||||
}
|
||||
|
||||
function testSomeLi() {
|
||||
$this->assertResult('<li>asdf</li><li />');
|
||||
}
|
||||
|
||||
function testIllegal() {
|
||||
// XXX actually this never gets triggered in practice
|
||||
$this->assertResult('<li /><b />', '<li /><li><b /></li>');
|
||||
}
|
||||
|
||||
function testOlAtBeginning() {
|
||||
$this->assertResult('<ol />', '<li><ol /></li>');
|
||||
}
|
||||
|
||||
function testOlAtBeginningWithOtherJunk() {
|
||||
$this->assertResult('<ol /><li />', '<li><ol /></li><li />');
|
||||
}
|
||||
|
||||
function testOlInMiddle() {
|
||||
$this->assertResult('<li>Foo</li><ol><li>Bar</li></ol>', '<li>Foo<ol><li>Bar</li></ol></li>');
|
||||
}
|
||||
|
||||
function testMultipleOl() {
|
||||
$this->assertResult('<li /><ol /><ol />', '<li><ol /><ol /></li>');
|
||||
}
|
||||
|
||||
function testUlAtBeginning() {
|
||||
$this->assertResult('<ul />', '<li><ul /></li>');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// vim: et sw=4 sts=4
|
5
tests/HTMLPurifier/HTMLT/list-nesting.htmlt
Normal file
5
tests/HTMLPurifier/HTMLT/list-nesting.htmlt
Normal file
@@ -0,0 +1,5 @@
|
||||
--HTML--
|
||||
<ul><li>Sublist 1</li><ul><li>Bullet</li></ul></ul>
|
||||
--EXPECT--
|
||||
<ul><li>Sublist 1<ul><li>Bullet</li></ul></li></ul>
|
||||
--# vim: et sw=4 sts=4
|
@@ -35,10 +35,17 @@ class HTMLPurifier_Strategy_FixNestingTest extends HTMLPurifier_StrategyHarness
|
||||
$this->assertResult('<ul></ul>', '');
|
||||
}
|
||||
|
||||
function testRemoveIllegalPCDATA() {
|
||||
function testListHandleIllegalPCDATA() {
|
||||
$this->assertResult(
|
||||
'<ul>Illegal text<li>Legal item</li></ul>',
|
||||
'<ul><li>Legal item</li></ul>'
|
||||
'<ul><li>Illegal text</li><li>Legal item</li></ul>'
|
||||
);
|
||||
}
|
||||
|
||||
function testRemoveIllegalPCDATA() {
|
||||
$this->assertResult(
|
||||
'<table><tr>Illegal text<td></td></tr></table>',
|
||||
'<table><tr><td></td></tr></table>'
|
||||
);
|
||||
}
|
||||
|
||||
|
@@ -119,21 +119,21 @@ class HTMLPurifier_Strategy_MakeWellFormedTest extends HTMLPurifier_StrategyHarn
|
||||
function testNestedOl() {
|
||||
$this->assertResult(
|
||||
'<ol><ol><li>foo</li></ol></ol>',
|
||||
'<ol><li><ol><li>foo</li></ol></li></ol>'
|
||||
'<ol><ol><li>foo</li></ol></ol>'
|
||||
);
|
||||
}
|
||||
|
||||
function testNestedUl() {
|
||||
$this->assertResult(
|
||||
'<ul><ul><li>foo</li></ul></ul>',
|
||||
'<ul><li><ul><li>foo</li></ul></li></ul>'
|
||||
'<ul><ul><li>foo</li></ul></ul>'
|
||||
);
|
||||
}
|
||||
|
||||
function testNestedOlWithStrangeEnding() {
|
||||
$this->assertResult(
|
||||
'<ol><li><ol><ol><li>foo</li></ol></li><li>foo</li></ol>',
|
||||
'<ol><li><ol><li><ol><li>foo</li></ol></li><li>foo</li></ol></li></ol>'
|
||||
'<ol><li><ol><ol><li>foo</li></ol></ol></li><li>foo</li></ol>'
|
||||
);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user