Use PHPUnit's expectOutputString() instead of performing output buffering.

This commit is contained in:
Andreas Fischer 2014-04-24 15:45:07 +02:00
parent 88778b569e
commit f45080e811
1 changed files with 11 additions and 26 deletions

View File

@ -28,46 +28,31 @@ class Test_TemplateFunctions extends PHPUnit_Framework_TestCase {
} }
public function testPJavaScript() { public function testPJavaScript() {
$badString = '<img onload="alert(1)" />'; $this->expectOutputString('&lt;img onload=&quot;alert(1)&quot; /&gt;');
ob_start(); p('<img onload="alert(1)" />');
p($badString);
$result = ob_get_clean();
$this->assertEquals('&lt;img onload=&quot;alert(1)&quot; /&gt;', $result);
} }
public function testPJavaScriptWithScriptTags() { public function testPJavaScriptWithScriptTags() {
$badString = "<script>alert('Hacked!');</script>"; $this->expectOutputString('&lt;script&gt;alert(&#039;Hacked!&#039;);&lt;/script&gt;');
ob_start(); p("<script>alert('Hacked!');</script>");
p($badString);
$result = ob_get_clean();
$this->assertEquals('&lt;script&gt;alert(&#039;Hacked!&#039;);&lt;/script&gt;', $result);
} }
public function testPNormalString() { public function testPNormalString() {
$goodString = 'This is a good string without HTML.'; $string = 'This is a good string without HTML.';
ob_start(); $this->expectOutputString($string);
p($goodString); p($string);
$result = ob_get_clean();
$this->assertEquals('This is a good string without HTML.', $result);
} }
public function testPrintUnescaped() { public function testPrintUnescaped() {
$htmlString = "<script>alert('xss');</script>"; $htmlString = "<script>alert('xss');</script>";
$this->expectOutputString($htmlString);
ob_start();
print_unescaped($htmlString); print_unescaped($htmlString);
$result = ob_get_clean();
$this->assertEquals($htmlString, $result);
} }
public function testPrintUnescapedNormalString() { public function testPrintUnescapedNormalString() {
$normalString = "This is a good string!"; $string = 'This is a good string!';
ob_start(); $this->expectOutputString($string);
print_unescaped($normalString); print_unescaped($string);
$result = ob_get_clean();
$this->assertEquals("This is a good string!", $result);
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------