aboutsummaryrefslogtreecommitdiffstats
path: root/lib/htmlpurifier/tests/HTMLPurifier/ChildDef/RequiredTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/htmlpurifier/tests/HTMLPurifier/ChildDef/RequiredTest.php')
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/ChildDef/RequiredTest.php73
1 files changed, 73 insertions, 0 deletions
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/ChildDef/RequiredTest.php b/lib/htmlpurifier/tests/HTMLPurifier/ChildDef/RequiredTest.php
new file mode 100644
index 000000000..8bb4f45ee
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/ChildDef/RequiredTest.php
@@ -0,0 +1,73 @@
+<?php
+
+class HTMLPurifier_ChildDef_RequiredTest extends HTMLPurifier_ChildDefHarness
+{
+
+ function testPrepareString() {
+ $def = new HTMLPurifier_ChildDef_Required('foobar | bang |gizmo');
+ $this->assertIdentical($def->elements,
+ array(
+ 'foobar' => true
+ ,'bang' => true
+ ,'gizmo' => true
+ ));
+ }
+
+ function testPrepareArray() {
+ $def = new HTMLPurifier_ChildDef_Required(array('href', 'src'));
+ $this->assertIdentical($def->elements,
+ array(
+ 'href' => true
+ ,'src' => true
+ ));
+ }
+
+ function setUp() {
+ parent::setUp();
+ $this->obj = new HTMLPurifier_ChildDef_Required('dt | dd');
+ }
+
+ function testEmptyInput() {
+ $this->assertResult('', false);
+ }
+
+ function testRemoveIllegalTagsAndElements() {
+ $this->assertResult(
+ '<dt>Term</dt>Text in an illegal location'.
+ '<dd>Definition</dd><b>Illegal tag</b>',
+ '<dt>Term</dt><dd>Definition</dd>');
+ $this->assertResult('How do you do!', false);
+ }
+
+ function testIgnoreWhitespace() {
+ // whitespace shouldn't trigger it
+ $this->assertResult("\n<dd>Definition</dd> ");
+ }
+
+ function testPreserveWhitespaceAfterRemoval() {
+ $this->assertResult(
+ '<dd>Definition</dd> <b></b> ',
+ '<dd>Definition</dd> '
+ );
+ }
+
+ function testDeleteNodeIfOnlyWhitespace() {
+ $this->assertResult("\t ", false);
+ }
+
+ function testPCDATAAllowed() {
+ $this->obj = new HTMLPurifier_ChildDef_Required('#PCDATA | b');
+ $this->assertResult('Out <b>Bold text</b><img />', 'Out <b>Bold text</b>');
+ }
+
+ function testPCDATAAllowedWithEscaping() {
+ $this->obj = new HTMLPurifier_ChildDef_Required('#PCDATA | b');
+ $this->config->set('Core.EscapeInvalidChildren', true);
+ $this->assertResult(
+ 'Out <b>Bold text</b><img />',
+ 'Out <b>Bold text</b>&lt;img /&gt;'
+ );
+ }
+}
+
+// vim: et sw=4 sts=4