|
- <?php
-
- class HTMLPurifier_Strategy_RemoveForeignElementsTest extends HTMLPurifier_StrategyHarness
- {
-
- public function setUp()
- {
- parent::setUp();
- $this->obj = new HTMLPurifier_Strategy_RemoveForeignElements();
- }
-
- public function testBlankInput()
- {
- $this->assertResult('');
- }
-
- public function testPreserveRecognizedElements()
- {
- $this->assertResult('This is <b>bold text</b>.');
- }
-
- public function testRemoveForeignElements()
- {
- $this->assertResult(
- '<asdf>Bling</asdf><d href="bang">Bong</d><foobar />',
- 'BlingBong'
- );
- }
-
- public function testRemoveScriptAndContents()
- {
- $this->assertResult(
- '<script>alert();</script>',
- ''
- );
- }
-
- public function testRemoveStyleAndContents()
- {
- $this->assertResult(
- '<style>.foo {blink;}</style>',
- ''
- );
- }
-
- public function testRemoveOnlyScriptTagsLegacy()
- {
- $this->config->set('Core.RemoveScriptContents', false);
- $this->assertResult(
- '<script>alert();</script>',
- 'alert();'
- );
- }
-
- public function testRemoveOnlyScriptTags()
- {
- $this->config->set('Core.HiddenElements', array());
- $this->assertResult(
- '<script>alert();</script>',
- 'alert();'
- );
- }
-
- public function testRemoveInvalidImg()
- {
- $this->assertResult('<img />', '');
- }
-
- public function testPreserveValidImg()
- {
- $this->assertResult('<img src="foobar.gif" alt="foobar.gif" />');
- }
-
- public function testPreserveInvalidImgWhenRemovalIsDisabled()
- {
- $this->config->set('Core.RemoveInvalidImg', false);
- $this->assertResult('<img />');
- }
-
- public 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>'
- );
- }
-
- public function testRequiredAttributesTestNotPerformedOnEndTag()
- {
- $def = $this->config->getHTMLDefinition(true);
- $def->addElement('f', 'Block', 'Optional: #PCDATA', false, array('req*' => 'Text'));
- $this->assertResult('<f req="text">Foo</f> Bar');
- }
-
- public function testPreserveCommentsWithHTMLTrusted()
- {
- $this->config->set('HTML.Trusted', true);
- $this->assertResult('<!-- foo -->');
- }
-
- public function testRemoveTrailingHyphensInComment()
- {
- $this->config->set('HTML.Trusted', true);
- $this->assertResult('<!-- foo ----->', '<!-- foo -->');
- }
-
- public function testCollapseDoubleHyphensInComment()
- {
- $this->config->set('HTML.Trusted', true);
- $this->assertResult('<!-- bo --- asdf--as -->', '<!-- bo - asdf-as -->');
- }
-
- public function testPreserveCommentsWithLookup()
- {
- $this->config->set('HTML.AllowedComments', array('allowed'));
- $this->assertResult('<!-- allowed --><!-- not allowed -->', '<!-- allowed -->');
- }
-
- public function testPreserveCommentsWithRegexp()
- {
- $this->config->set('HTML.AllowedCommentsRegexp', '/^allowed[1-9]$/');
- $this->assertResult('<!-- allowed1 --><!-- not allowed -->', '<!-- allowed1 -->');
- }
-
- }
-
- // vim: et sw=4 sts=4
|