aboutsummaryrefslogtreecommitdiffstats
path: root/lib/htmlpurifier/tests/HTMLPurifier/Injector
diff options
context:
space:
mode:
Diffstat (limited to 'lib/htmlpurifier/tests/HTMLPurifier/Injector')
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/Injector/AutoParagraphTest.php515
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/Injector/DisplayLinkURITest.php33
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/Injector/LinkifyTest.php50
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/Injector/PurifierLinkifyTest.php59
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/Injector/RemoveEmptyTest.php80
-rwxr-xr-xlib/htmlpurifier/tests/HTMLPurifier/Injector/RemoveSpansWithoutAttributesTest.php99
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/Injector/SafeObjectTest.php88
7 files changed, 0 insertions, 924 deletions
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/Injector/AutoParagraphTest.php b/lib/htmlpurifier/tests/HTMLPurifier/Injector/AutoParagraphTest.php
deleted file mode 100644
index e6abbd1ff..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/Injector/AutoParagraphTest.php
+++ /dev/null
@@ -1,515 +0,0 @@
-<?php
-
-class HTMLPurifier_Injector_AutoParagraphTest extends HTMLPurifier_InjectorHarness
-{
-
- function setup() {
- parent::setup();
- $this->config->set('AutoFormat.AutoParagraph', true);
- }
-
- function testSingleParagraph() {
- $this->assertResult(
- 'Foobar',
- '<p>Foobar</p>'
- );
- }
-
- function testSingleMultiLineParagraph() {
- $this->assertResult(
-'Par 1
-Par 1 still',
-'<p>Par 1
-Par 1 still</p>'
- );
- }
-
- function testTwoParagraphs() {
- $this->assertResult(
-'Par1
-
-Par2',
-"<p>Par1</p>
-
-<p>Par2</p>"
- );
- }
-
- function testTwoParagraphsWithLotsOfSpace() {
- $this->assertResult(
-'Par1
-
-
-
-Par2',
-'<p>Par1</p>
-
-<p>Par2</p>'
- );
- }
-
- function testTwoParagraphsWithInlineElements() {
- $this->assertResult(
-'<b>Par1</b>
-
-<i>Par2</i>',
-'<p><b>Par1</b></p>
-
-<p><i>Par2</i></p>'
- );
- }
-
- function testSingleParagraphThatLooksLikeTwo() {
- $this->assertResult(
-'<b>Par1
-
-Par2</b>',
-'<p><b>Par1
-
-Par2</b></p>'
- );
- }
-
- function testAddParagraphAdjacentToParagraph() {
- $this->assertResult(
- 'Par1<p>Par2</p>',
-'<p>Par1</p>
-
-<p>Par2</p>'
- );
- }
-
- function testParagraphUnclosedInlineElement() {
- $this->assertResult(
- '<b>Par1',
- '<p><b>Par1</b></p>'
- );
- }
-
- function testPreservePreTags() {
- $this->assertResult(
-'<pre>Par1
-
-Par1</pre>'
- );
- }
-
- function testIgnoreTrailingWhitespace() {
- $this->assertResult(
-'Par1
-
- ',
-'<p>Par1</p>
-
-'
- );
- }
-
- function testDoNotParagraphBlockElements() {
- $this->assertResult(
-'Par1
-
-<div>Par2</div>
-
-Par3',
-'<p>Par1</p>
-
-<div>Par2</div>
-
-<p>Par3</p>'
- );
- }
-
- function testParagraphTextAndInlineNodes() {
- $this->assertResult(
-'Par<b>1</b>',
- '<p>Par<b>1</b></p>'
- );
- }
-
- function testPreserveLeadingWhitespace() {
- $this->assertResult(
-'
-
-Par',
-'
-
-<p>Par</p>'
- );
- }
-
- function testPreserveSurroundingWhitespace() {
- $this->assertResult(
-'
-
-Par
-
-',
-'
-
-<p>Par</p>
-
-'
- );
- }
-
- function testParagraphInsideBlockNode() {
- $this->assertResult(
-'<div>Par1
-
-Par2</div>',
-'<div><p>Par1</p>
-
-<p>Par2</p></div>'
- );
- }
-
- function testParagraphInlineNodeInsideBlockNode() {
- $this->assertResult(
-'<div><b>Par1</b>
-
-Par2</div>',
-'<div><p><b>Par1</b></p>
-
-<p>Par2</p></div>'
- );
- }
-
- function testNoParagraphWhenOnlyOneInsideBlockNode() {
- $this->assertResult('<div>Par1</div>');
- }
-
- function testParagraphTwoInlineNodesInsideBlockNode() {
- $this->assertResult(
-'<div><b>Par1</b>
-
-<i>Par2</i></div>',
-'<div><p><b>Par1</b></p>
-
-<p><i>Par2</i></p></div>'
- );
- }
-
- function testPreserveInlineNodesInPreTag() {
- $this->assertResult(
-'<pre><b>Par1</b>
-
-<i>Par2</i></pre>'
- );
- }
-
- function testSplitUpInternalsOfPTagInBlockNode() {
- $this->assertResult(
-'<div><p>Foo
-
-Bar</p></div>',
-'<div><p>Foo</p>
-
-<p>Bar</p></div>'
- );
- }
-
- function testSplitUpInlineNodesInPTagInBlockNode() {
- $this->assertResult(
-'<div><p><b>Foo</b>
-
-<i>Bar</i></p></div>',
-'<div><p><b>Foo</b></p>
-
-<p><i>Bar</i></p></div>'
- );
- }
-
- function testNoParagraphSingleInlineNodeInBlockNode() {
- $this->assertResult( '<div><b>Foo</b></div>' );
- }
-
- function testParagraphInBlockquote() {
- $this->assertResult(
-'<blockquote>Par1
-
-Par2</blockquote>',
-'<blockquote><p>Par1</p>
-
-<p>Par2</p></blockquote>'
- );
- }
-
- function testNoParagraphBetweenListItem() {
- $this->assertResult(
-'<ul><li>Foo</li>
-
-<li>Bar</li></ul>'
- );
- }
-
- function testParagraphSingleElementWithSurroundingSpace() {
- $this->assertResult(
-'<div>
-
-Bar
-
-</div>',
- '<div>
-
-<p>Bar</p>
-
-</div>'
- );
- }
-
- function testIgnoreExtraSpaceWithLeadingInlineNode() {
- $this->assertResult(
-'<b>Par1</b>a
-
-
-
-Par2',
-'<p><b>Par1</b>a</p>
-
-<p>Par2</p>'
- );
- }
-
- function testAbsorbExtraEndingPTag() {
- $this->assertResult(
-'Par1
-
-Par2</p>',
-'<p>Par1</p>
-
-<p>Par2</p>'
- );
- }
-
- function testAbsorbExtraEndingDivTag() {
- $this->assertResult(
-'Par1
-
-Par2</div>',
-'<p>Par1</p>
-
-<p>Par2</p>'
- );
- }
-
- function testDoNotParagraphSingleSurroundingSpaceInBlockNode() {
- $this->assertResult(
-'<div>
-Par1
-</div>'
- );
- }
-
- function testBlockNodeTextDelimeterInBlockNode() {
- $this->assertResult(
-'<div>Par1
-
-<div>Par2</div></div>',
-'<div><p>Par1</p>
-
-<div>Par2</div></div>'
- );
- }
-
- function testBlockNodeTextDelimeterWithoutDoublespaceInBlockNode() {
- $this->assertResult(
-'<div>Par1
-<div>Par2</div></div>'
- );
- }
-
- function testBlockNodeTextDelimeterWithoutDoublespace() {
- $this->assertResult(
-'Par1
-<div>Par2</div>',
-'<p>Par1
-</p>
-
-<div>Par2</div>'
- );
- }
-
- function testTwoParagraphsOfTextAndInlineNode() {
- $this->assertResult(
-'Par1
-
-<b>Par2</b>',
-'<p>Par1</p>
-
-<p><b>Par2</b></p>'
- );
- }
-
- function testLeadingInlineNodeParagraph() {
- $this->assertResult(
-'<img /> Foo',
-'<p><img /> Foo</p>'
- );
- }
-
- function testTrailingInlineNodeParagraph() {
- $this->assertResult(
-'<li>Foo <a>bar</a></li>'
- );
- }
-
- function testTwoInlineNodeParagraph() {
- $this->assertResult(
-'<li><b>baz</b><a>bar</a></li>'
- );
- }
-
- function testNoParagraphTrailingBlockNodeInBlockNode() {
- $this->assertResult(
-'<div><div>asdf</div><b>asdf</b></div>'
- );
- }
-
- function testParagraphTrailingBlockNodeWithDoublespaceInBlockNode() {
- $this->assertResult(
-'<div><div>asdf</div>
-
-<b>asdf</b></div>',
-'<div><div>asdf</div>
-
-<p><b>asdf</b></p></div>'
- );
- }
-
- function testParagraphTwoInlineNodesAndWhitespaceNode() {
- $this->assertResult(
-'<b>One</b> <i>Two</i>',
-'<p><b>One</b> <i>Two</i></p>'
- );
- }
-
- function testNoParagraphWithInlineRootNode() {
- $this->config->set('HTML.Parent', 'span');
- $this->assertResult(
-'Par
-
-Par2'
- );
- }
-
- function testInlineAndBlockTagInDivNoParagraph() {
- $this->assertResult(
- '<div><code>bar</code> mmm <pre>asdf</pre></div>'
- );
- }
-
- function testInlineAndBlockTagInDivNeedingParagraph() {
- $this->assertResult(
-'<div><code>bar</code> mmm
-
-<pre>asdf</pre></div>',
-'<div><p><code>bar</code> mmm</p>
-
-<pre>asdf</pre></div>'
- );
- }
-
- function testTextInlineNodeTextThenDoubleNewlineNeedsParagraph() {
- $this->assertResult(
-'<div>asdf <code>bar</code> mmm
-
-<pre>asdf</pre></div>',
-'<div><p>asdf <code>bar</code> mmm</p>
-
-<pre>asdf</pre></div>'
- );
- }
-
- function testUpcomingTokenHasNewline() {
- $this->assertResult(
-'<div>Test<b>foo</b>bar<b>bing</b>bang
-
-boo</div>',
-'<div><p>Test<b>foo</b>bar<b>bing</b>bang</p>
-
-<p>boo</p></div>'
-);
- }
-
- function testEmptyTokenAtEndOfDiv() {
- $this->assertResult(
-'<div><p>foo</p>
-</div>',
-'<div><p>foo</p>
-</div>'
-);
- }
-
- function testEmptyDoubleLineTokenAtEndOfDiv() {
- $this->assertResult(
-'<div><p>foo</p>
-
-</div>',
-'<div><p>foo</p>
-
-</div>'
-);
- }
-
- function testTextState11Root() {
- $this->assertResult('<div></div> ');
- }
-
- function testTextState11Element() {
- $this->assertResult(
-"<div><div></div>
-
-</div>");
- }
-
- function testTextStateLikeElementState111NoWhitespace() {
- $this->assertResult('<div><p>P</p>Boo</div>', '<div><p>P</p>Boo</div>');
- }
-
- function testElementState111NoWhitespace() {
- $this->assertResult('<div><p>P</p><b>Boo</b></div>', '<div><p>P</p><b>Boo</b></div>');
- }
-
- function testElementState133() {
- $this->assertResult(
-"<div><b>B</b><pre>Ba</pre>
-
-Bar</div>",
-"<div><b>B</b><pre>Ba</pre>
-
-<p>Bar</p></div>"
-);
- }
-
- function testElementState22() {
- $this->assertResult(
- '<ul><li>foo</li></ul>'
- );
- }
-
- function testElementState311() {
- $this->assertResult(
- '<p>Foo</p><b>Bar</b>',
-'<p>Foo</p>
-
-<p><b>Bar</b></p>'
- );
- }
-
- function testAutoClose() {
- $this->assertResult(
- '<p></p>
-<hr />'
- );
- }
-
- function testErrorNeeded() {
- $this->config->set('HTML.Allowed', 'b');
- $this->expectError('Cannot enable AutoParagraph injector because p is not allowed');
- $this->assertResult('<b>foobar</b>');
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/Injector/DisplayLinkURITest.php b/lib/htmlpurifier/tests/HTMLPurifier/Injector/DisplayLinkURITest.php
deleted file mode 100644
index 1629d9bd1..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/Injector/DisplayLinkURITest.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-class HTMLPurifier_Injector_DisplayLinkURITest extends HTMLPurifier_InjectorHarness
-{
-
- function setup() {
- parent::setup();
- $this->config->set('AutoFormat.DisplayLinkURI', true);
- }
-
- function testBasicLink() {
- $this->assertResult(
- '<a href="http://malware.example.com">Don\'t go here!</a>',
- '<a>Don\'t go here!</a> (http://malware.example.com)'
- );
- }
-
- function testEmptyLink() {
- $this->assertResult(
- '<a>Don\'t go here!</a>',
- '<a>Don\'t go here!</a>'
- );
- }
- function testEmptyText() {
- $this->assertResult(
- '<a href="http://malware.example.com"></a>',
- '<a></a> (http://malware.example.com)'
- );
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/Injector/LinkifyTest.php b/lib/htmlpurifier/tests/HTMLPurifier/Injector/LinkifyTest.php
deleted file mode 100644
index 1a1542d53..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/Injector/LinkifyTest.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-class HTMLPurifier_Injector_LinkifyTest extends HTMLPurifier_InjectorHarness
-{
-
- function setup() {
- parent::setup();
- $this->config->set('AutoFormat.Linkify', true);
- }
-
- function testLinkifyURLInRootNode() {
- $this->assertResult(
- 'http://example.com',
- '<a href="http://example.com">http://example.com</a>'
- );
- }
-
- function testLinkifyURLInInlineNode() {
- $this->assertResult(
- '<b>http://example.com</b>',
- '<b><a href="http://example.com">http://example.com</a></b>'
- );
- }
-
- function testBasicUsageCase() {
- $this->assertResult(
- 'This URL http://example.com is what you need',
- 'This URL <a href="http://example.com">http://example.com</a> is what you need'
- );
- }
-
- function testIgnoreURLInATag() {
- $this->assertResult(
- '<a>http://example.com/</a>'
- );
- }
-
- function testNeeded() {
- $this->config->set('HTML.Allowed', 'b');
- $this->expectError('Cannot enable Linkify injector because a is not allowed');
- $this->assertResult('http://example.com/');
- }
-
- function testExcludes() {
- $this->assertResult('<a><span>http://example.com</span></a>');
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/Injector/PurifierLinkifyTest.php b/lib/htmlpurifier/tests/HTMLPurifier/Injector/PurifierLinkifyTest.php
deleted file mode 100644
index 774b234ad..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/Injector/PurifierLinkifyTest.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-class HTMLPurifier_Injector_PurifierLinkifyTest extends HTMLPurifier_InjectorHarness
-{
-
- function setup() {
- parent::setup();
- $this->config->set('AutoFormat.PurifierLinkify', true);
- $this->config->set('AutoFormat.PurifierLinkify.DocURL', '#%s');
- }
-
- function testNoTriggerCharacer() {
- $this->assertResult('Foobar');
- }
-
- function testTriggerCharacterInIrrelevantContext() {
- $this->assertResult('20% off!');
- }
-
- function testPreserveNamespace() {
- $this->assertResult('%Core namespace (not recognized)');
- }
-
- function testLinkifyBasic() {
- $this->assertResult(
- '%Namespace.Directive',
- '<a href="#Namespace.Directive">%Namespace.Directive</a>'
- );
- }
-
- function testLinkifyWithAdjacentTextNodes() {
- $this->assertResult(
- 'This %Namespace.Directive thing',
- 'This <a href="#Namespace.Directive">%Namespace.Directive</a> thing'
- );
- }
-
- function testLinkifyInBlock() {
- $this->assertResult(
- '<div>This %Namespace.Directive thing</div>',
- '<div>This <a href="#Namespace.Directive">%Namespace.Directive</a> thing</div>'
- );
- }
-
- function testPreserveInATag() {
- $this->assertResult(
- '<a>%Namespace.Directive</a>'
- );
- }
-
- function testNeeded() {
- $this->config->set('HTML.Allowed', 'b');
- $this->expectError('Cannot enable PurifierLinkify injector because a is not allowed');
- $this->assertResult('%Namespace.Directive');
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/Injector/RemoveEmptyTest.php b/lib/htmlpurifier/tests/HTMLPurifier/Injector/RemoveEmptyTest.php
deleted file mode 100644
index 34dbc9515..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/Injector/RemoveEmptyTest.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-
-class HTMLPurifier_Injector_RemoveEmptyTest extends HTMLPurifier_InjectorHarness
-{
-
- public function setup() {
- parent::setup();
- $this->config->set('AutoFormat.RemoveEmpty', true);
- }
-
- function testPreserve() {
- $this->assertResult('<b>asdf</b>');
- }
-
- function testRemove() {
- $this->assertResult('<b></b>', '');
- }
-
- function testRemoveWithSpace() {
- $this->assertResult('<b> </b>', '');
- }
-
- function testRemoveWithAttr() {
- $this->assertResult('<b class="asdf"></b>', '');
- }
-
- function testRemoveIdAndName() {
- $this->assertResult('<a id="asdf" name="asdf"></a>', '');
- }
-
- function testPreserveColgroup() {
- $this->assertResult('<colgroup></colgroup>');
- }
-
- function testPreserveId() {
- $this->config->set('Attr.EnableID', true);
- $this->assertResult('<a id="asdf"></a>');
- }
-
- function testPreserveName() {
- $this->config->set('Attr.EnableID', true);
- $this->assertResult('<a name="asdf"></a>');
- }
-
- function testRemoveNested() {
- $this->assertResult('<b><i></i></b>', '');
- }
-
- function testRemoveNested2() {
- $this->assertResult('<b><i><u></u></i></b>', '');
- }
-
- function testRemoveNested3() {
- $this->assertResult('<b> <i> <u> </u> </i> </b>', '');
- }
-
- function testRemoveNbsp() {
- $this->config->set('AutoFormat.RemoveEmpty.RemoveNbsp', true);
- $this->assertResult('<b>&nbsp;</b>', '');
- }
-
- function testRemoveNbspMix() {
- $this->config->set('AutoFormat.RemoveEmpty.RemoveNbsp', true);
- $this->assertResult('<b>&nbsp; &nbsp;</b>', '');
- }
-
- function testDontRemoveNbsp() {
- $this->config->set('AutoFormat.RemoveEmpty.RemoveNbsp', true);
- $this->assertResult('<td>&nbsp;</b>', "<td>\xC2\xA0</td>");
- }
-
- function testRemoveNbspExceptionsSpecial() {
- $this->config->set('AutoFormat.RemoveEmpty.RemoveNbsp', true);
- $this->config->set('AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions', 'b');
- $this->assertResult('<b>&nbsp;</b>', "<b>\xC2\xA0</b>");
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/Injector/RemoveSpansWithoutAttributesTest.php b/lib/htmlpurifier/tests/HTMLPurifier/Injector/RemoveSpansWithoutAttributesTest.php
deleted file mode 100755
index 704c1cd7b..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/Injector/RemoveSpansWithoutAttributesTest.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-class HTMLPurifier_Injector_RemoveSpansWithoutAttributesTest extends HTMLPurifier_InjectorHarness
-{
- function setup() {
- parent::setup();
- $this->config->set('HTML.Allowed', 'span[class],div,p,strong,em');
- $this->config->set('AutoFormat.RemoveSpansWithoutAttributes', true);
- }
-
- function testSingleSpan() {
- $this->assertResult(
- '<span>foo</span>',
- 'foo'
- );
- }
-
- function testSingleSpanWithAttributes() {
- $this->assertResult(
- '<span class="bar">foo</span>',
- '<span class="bar">foo</span>'
- );
- }
-
- function testSingleNestedSpan() {
- $this->assertResult(
- '<p><span>foo</span></p>',
- '<p>foo</p>'
- );
- }
-
- function testSingleNestedSpanWithAttributes() {
- $this->assertResult(
- '<p><span class="bar">foo</span></p>',
- '<p><span class="bar">foo</span></p>'
- );
- }
-
-
- function testSpanWithChildren() {
- $this->assertResult(
- '<span>foo <strong>bar</strong> <em>baz</em></span>',
- 'foo <strong>bar</strong> <em>baz</em>'
- );
- }
-
- function testSpanWithSiblings() {
- $this->assertResult(
- '<p>before <span>inside</span> <strong>after</strong></p>',
- '<p>before inside <strong>after</strong></p>'
- );
- }
-
- function testNestedSpanWithSiblingsAndChildren() {
- $this->assertResult(
- '<p>a <span>b <em>c</em> d</span> e</p>',
- '<p>a b <em>c</em> d e</p>'
- );
- }
-
- function testNestedSpansWithoutAttributes() {
- $this->assertResult(
- '<span>one<span>two<span>three</span></span></span>',
- 'onetwothree'
- );
- }
-
- function testDeeplyNestedSpan() {
- $this->assertResult(
- '<div><div><div><span class="a">a <span>b</span> c</span></div></div></div>',
- '<div><div><div><span class="a">a b c</span></div></div></div>'
- );
- }
-
- function testSpanWithInvalidAttributes() {
- $this->assertResult(
- '<p><span snorkel buzzer="emu">foo</span></p>',
- '<p>foo</p>'
- );
- }
-
- function testNestedAlternateSpans() {
- $this->assertResult(
-'<span>a <span class="x">b <span>c <span class="y">d <span>e <span class="z">f
-</span></span></span></span></span></span>',
-'a <span class="x">b c <span class="y">d e <span class="z">f
-</span></span></span>'
- );
- }
-
- function testSpanWithSomeInvalidAttributes() {
- $this->assertResult(
- '<p><span buzzer="emu" class="bar">foo</span></p>',
- '<p><span class="bar">foo</span></p>'
- );
- }
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/Injector/SafeObjectTest.php b/lib/htmlpurifier/tests/HTMLPurifier/Injector/SafeObjectTest.php
deleted file mode 100644
index 59e0493c3..000000000
--- a/lib/htmlpurifier/tests/HTMLPurifier/Injector/SafeObjectTest.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-/**
- * This test is kinda weird, because it doesn't test the full safe object
- * functionality, just a small section of it. Or maybe it's actually the right
- * way.
- */
-class HTMLPurifier_Injector_SafeObjectTest extends HTMLPurifier_InjectorHarness
-{
-
- function setup() {
- parent::setup();
- // there is no AutoFormat.SafeObject directive
- $this->config->set('AutoFormat.Custom', array(new HTMLPurifier_Injector_SafeObject()));
- $this->config->set('HTML.Trusted', true);
- }
-
- function testPreserve() {
- $this->assertResult(
- '<b>asdf</b>'
- );
- }
-
- function testRemoveStrayParam() {
- $this->assertResult(
- '<param />',
- ''
- );
- }
-
- function testEditObjectParam() {
- $this->assertResult(
- '<object></object>',
- '<object><param name="allowScriptAccess" value="never" /><param name="allowNetworking" value="internal" /></object>'
- );
- }
-
- function testIgnoreStrayParam() {
- $this->assertResult(
- '<object><param /></object>',
- '<object><param name="allowScriptAccess" value="never" /><param name="allowNetworking" value="internal" /></object>'
- );
- }
-
- function testIgnoreDuplicates() {
- $this->assertResult(
- '<object><param name="allowScriptAccess" value="never" /><param name="allowNetworking" value="internal" /></object>'
- );
- }
-
- function testIgnoreBogusData() {
- $this->assertResult(
- '<object><param name="allowScriptAccess" value="always" /><param name="allowNetworking" value="always" /></object>',
- '<object><param name="allowScriptAccess" value="never" /><param name="allowNetworking" value="internal" /></object>'
- );
- }
-
- function testIgnoreInvalidData() {
- $this->assertResult(
- '<object><param name="foo" value="bar" /></object>',
- '<object><param name="allowScriptAccess" value="never" /><param name="allowNetworking" value="internal" /></object>'
- );
- }
-
- function testKeepValidData() {
- $this->assertResult(
- '<object><param name="movie" value="bar" /></object>',
- '<object data="bar"><param name="allowScriptAccess" value="never" /><param name="allowNetworking" value="internal" /><param name="movie" value="bar" /></object>'
- );
- }
-
- function testNested() {
- $this->assertResult(
- '<object><param name="allowScriptAccess" value="never" /><param name="allowNetworking" value="internal" /><object></object></object>',
- '<object><param name="allowScriptAccess" value="never" /><param name="allowNetworking" value="internal" /><object><param name="allowScriptAccess" value="never" /><param name="allowNetworking" value="internal" /></object></object>'
- );
- }
-
- function testNotActuallyNested() {
- $this->assertResult(
- '<object><p><param name="allowScriptAccess" value="never" /><param name="allowNetworking" value="internal" /></p></object>',
- '<object><param name="allowScriptAccess" value="never" /><param name="allowNetworking" value="internal" /><p></p></object>'
- );
- }
-
-}
-
-// vim: et sw=4 sts=4