mirror of
https://github.com/ezyang/htmlpurifier.git
synced 2024-12-23 08:51:53 +00:00
3af6457801
- Support executing a single unit tests using __only prefix - Hook in Email classes to main code, even if they're unused git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@1373 48356398-32a2-884e-a903-53898d9a118a
87 lines
2.2 KiB
PHP
87 lines
2.2 KiB
PHP
<?php
|
|
|
|
require_once 'HTMLPurifier/StrategyHarness.php';
|
|
require_once 'HTMLPurifier/Strategy/RemoveForeignElements.php';
|
|
|
|
class HTMLPurifier_Strategy_RemoveForeignElementsTest extends HTMLPurifier_StrategyHarness
|
|
{
|
|
|
|
function setUp() {
|
|
parent::setUp();
|
|
$this->obj = new HTMLPurifier_Strategy_RemoveForeignElements();
|
|
}
|
|
|
|
function testBlankInput() {
|
|
$this->assertResult('');
|
|
}
|
|
|
|
function testPreserveRecognizedElements() {
|
|
$this->assertResult('This is <b>bold text</b>.');
|
|
}
|
|
|
|
function testRemoveForeignElements() {
|
|
$this->assertResult(
|
|
'<asdf>Bling</asdf><d href="bang">Bong</d><foobar />',
|
|
'BlingBong'
|
|
);
|
|
}
|
|
|
|
function testRemoveScriptAndContents() {
|
|
$this->assertResult(
|
|
'<script>alert();</script>',
|
|
''
|
|
);
|
|
}
|
|
|
|
function testRemoveStyleAndContents() {
|
|
$this->assertResult(
|
|
'<style>.foo {blink;}</style>',
|
|
''
|
|
);
|
|
}
|
|
|
|
function testRemoveOnlyScriptTagsLegacy() {
|
|
$this->config->set('Core', 'RemoveScriptContents', false);
|
|
$this->assertResult(
|
|
'<script>alert();</script>',
|
|
'alert();'
|
|
);
|
|
}
|
|
|
|
function testRemoveOnlyScriptTags() {
|
|
$this->config->set('Core', 'HiddenElements', array());
|
|
$this->assertResult(
|
|
'<script>alert();</script>',
|
|
'alert();'
|
|
);
|
|
}
|
|
|
|
function testRemoveInvalidImg() {
|
|
$this->assertResult('<img />', '');
|
|
}
|
|
|
|
function testPreserveValidImg() {
|
|
$this->assertResult('<img src="foobar.gif" alt="foobar.gif" />');
|
|
}
|
|
|
|
function testPreserveInvalidImgWhenRemovalIsDisabled() {
|
|
$this->config->set('Core', 'RemoveInvalidImg', false);
|
|
$this->assertResult('<img />');
|
|
}
|
|
|
|
function testTextifyCommentedScriptContents() {
|
|
$this->config->set('HTML', 'Trusted', true);
|
|
$this->config->set('Output', 'CommentScriptContents', false); // simplify output
|
|
$this->assertResult(
|
|
'<script type="text/javascript"><!--
|
|
alert(<b>bold</b>);
|
|
// --></script>',
|
|
'<script type="text/javascript">
|
|
alert(<b>bold</b>);
|
|
// </script>'
|
|
);
|
|
}
|
|
|
|
}
|
|
|