From 89622c964e208fb714c9201d80415560f053ac45 Mon Sep 17 00:00:00 2001 From: "Edward Z. Yang" Date: Wed, 11 Jul 2007 20:42:58 +0000 Subject: [PATCH] [2.1.0] Genericize element contents removal. This is done in a slightly hacky way since ElementDef is not available, but should be sufficient. git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@1313 48356398-32a2-884e-a903-53898d9a118a --- NEWS | 3 ++ library/HTMLPurifier/Language/messages/en.php | 2 +- .../Strategy/RemoveForeignElements.php | 50 +++++++++++++++---- .../Strategy/RemoveForeignElementsTest.php | 11 ++++ .../RemoveForeignElements_ErrorsTest.php | 4 +- 5 files changed, 56 insertions(+), 14 deletions(-) diff --git a/NEWS b/NEWS index 1975e304..1ae3baa5 100644 --- a/NEWS +++ b/NEWS @@ -31,6 +31,9 @@ NEWS ( CHANGELOG and HISTORY ) HTMLPurifier %HTML.Allowed . ConfigForm generates textareas instead of text inputs for lists, hashes, lookups, text and itext fields +. Hidden element content removal genericized: %Core.HiddenElements can + be used to customize this behavior, by default ', 'alert();', array('Core.RemoveScriptContents' => false) ); + $this->assertResult( + '', + 'alert();', + array('Core.HiddenElements' => array()) + ); + $this->assertResult( '
  • Item 1
  • ', '' diff --git a/tests/HTMLPurifier/Strategy/RemoveForeignElements_ErrorsTest.php b/tests/HTMLPurifier/Strategy/RemoveForeignElements_ErrorsTest.php index 6b7ac74f..5843b722 100644 --- a/tests/HTMLPurifier/Strategy/RemoveForeignElements_ErrorsTest.php +++ b/tests/HTMLPurifier/Strategy/RemoveForeignElements_ErrorsTest.php @@ -48,8 +48,8 @@ class HTMLPurifier_Strategy_RemoveForeignElements_ErrorsTest extends HTMLPurifie $this->invoke(''); } - function testScriptRemoved() { - $this->collector->expectAt(0, 'send', array(E_ERROR, 'Strategy_RemoveForeignElements: Script removed')); + 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)); $this->collector->expectAt(1, 'send', array(E_ERROR, 'Strategy_RemoveForeignElements: Token removed to end', 'script')); $this->invoke('