mirror of
https://github.com/ezyang/htmlpurifier.git
synced 2025-07-31 19:30:21 +02:00
[3.1.2] Implement comments when %HTML.Trusted is on.
Some implementation notes: not all comments are valid; HTML makes sure double-hyphens and trailing hyphens are not found in comments. In addition, two new localizable messages were added. Requested-by: Waldo Jaquith <waldo@vqronline.org> Signed-off-by: Edward Z. Yang <edwardzyang@thewritingpot.com>
This commit is contained in:
@@ -88,5 +88,20 @@ alert(<b>bold</b>);
|
||||
$this->assertResult('<f req="text">Foo</f> Bar');
|
||||
}
|
||||
|
||||
function testPreserveCommentsWithHTMLTrusted() {
|
||||
$this->config->set('HTML', 'Trusted', true);
|
||||
$this->assertResult('<!-- foo -->');
|
||||
}
|
||||
|
||||
function testRemoveTrailingHyphensInComment() {
|
||||
$this->config->set('HTML', 'Trusted', true);
|
||||
$this->assertResult('<!-- foo ----->', '<!-- foo -->');
|
||||
}
|
||||
|
||||
function testCollapseDoubleHyphensInComment() {
|
||||
$this->config->set('HTML', 'Trusted', true);
|
||||
$this->assertResult('<!-- bo --- asdf--as -->', '<!-- bo - asdf-as -->');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@@ -45,6 +45,20 @@ class HTMLPurifier_Strategy_RemoveForeignElements_ErrorsTest extends HTMLPurifie
|
||||
$this->invoke('<!-- test -->');
|
||||
}
|
||||
|
||||
function testTrailingHyphenInCommentRemoved() {
|
||||
$this->config->set('HTML', 'Trusted', true);
|
||||
$this->expectErrorCollection(E_NOTICE, 'Strategy_RemoveForeignElements: Trailing hyphen in comment removed');
|
||||
$this->expectContext('CurrentToken', new HTMLPurifier_Token_Comment(' test --', 1));
|
||||
$this->invoke('<!-- test ---->');
|
||||
}
|
||||
|
||||
function testDoubleHyphenInCommentRemoved() {
|
||||
$this->config->set('HTML', 'Trusted', true);
|
||||
$this->expectErrorCollection(E_NOTICE, 'Strategy_RemoveForeignElements: Hyphens in comment collapsed');
|
||||
$this->expectContext('CurrentToken', new HTMLPurifier_Token_Comment(' test --- test -- test ', 1));
|
||||
$this->invoke('<!-- test --- test -- test -->');
|
||||
}
|
||||
|
||||
function testForeignMetaElementRemoved() {
|
||||
$this->collector->expectAt(0, 'send', array(E_ERROR, 'Strategy_RemoveForeignElements: Foreign meta element removed'));
|
||||
$this->collector->expectContextAt(0, 'CurrentToken', new HTMLPurifier_Token_Start('script', array(), 1));
|
||||
|
Reference in New Issue
Block a user