summaryrefslogtreecommitdiff
path: root/library/ezyang/htmlpurifier/tests/HTMLPurifier/HTMLModule/ScriptingTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'library/ezyang/htmlpurifier/tests/HTMLPurifier/HTMLModule/ScriptingTest.php')
-rw-r--r--library/ezyang/htmlpurifier/tests/HTMLPurifier/HTMLModule/ScriptingTest.php61
1 files changed, 61 insertions, 0 deletions
diff --git a/library/ezyang/htmlpurifier/tests/HTMLPurifier/HTMLModule/ScriptingTest.php b/library/ezyang/htmlpurifier/tests/HTMLPurifier/HTMLModule/ScriptingTest.php
new file mode 100644
index 0000000000..184b57e096
--- /dev/null
+++ b/library/ezyang/htmlpurifier/tests/HTMLPurifier/HTMLModule/ScriptingTest.php
@@ -0,0 +1,61 @@
+<?php
+
+class HTMLPurifier_HTMLModule_ScriptingTest extends HTMLPurifier_HTMLModuleHarness
+{
+
+ public function setUp()
+ {
+ parent::setUp();
+ $this->config->set('HTML.Trusted', true);
+ $this->config->set('Output.CommentScriptContents', false);
+ }
+
+ public function testDefaultRemoval()
+ {
+ $this->config->set('HTML.Trusted', false);
+ $this->assertResult(
+ '<script type="text/javascript">foo();</script>', ''
+ );
+ }
+
+ public function testPreserve()
+ {
+ $this->assertResult(
+ '<script type="text/javascript">foo();</script>'
+ );
+ }
+
+ public function testCDATAEnclosure()
+ {
+ $this->assertResult(
+'<script type="text/javascript">//<![CDATA[
+alert("<This is compatible with XHTML>");
+//]]></script>'
+ );
+ }
+
+ public function testAllAttributes()
+ {
+ $this->assertResult(
+ '<script
+ defer="defer"
+ src="test.js"
+ type="text/javascript"
+ >PCDATA</script>'
+ );
+ }
+
+ public function testUnsupportedAttributes()
+ {
+ $this->assertResult(
+ '<script
+ type="text/javascript"
+ charset="utf-8"
+ >PCDATA</script>',
+ '<script type="text/javascript">PCDATA</script>'
+ );
+ }
+
+}
+
+// vim: et sw=4 sts=4