Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
11 / 11 |
CRAP | |
100.00% |
53 / 53 |
ConfigurationTest | |
100.00% |
1 / 1 |
|
100.00% |
11 / 11 |
11 | |
100.00% |
53 / 53 |
setUp() | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
testTagsCanBeAllowedOrDisallowed() | |
100.00% |
1 / 1 |
1 | |
100.00% |
4 / 4 |
|||
assertTagAllowed($tag_name) | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
assertTagDisallowed($tag_name) | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
testAttributesCanBeRestrictedWithRegularExpression() | |
100.00% |
1 / 1 |
1 | |
100.00% |
6 / 6 |
|||
assertAttributeAllowed($tag_name, $attr_name, $attr_value) | |
100.00% |
1 / 1 |
1 | |
100.00% |
7 / 7 |
|||
assertAttributeDisallowed( $tag_name, $attr_name, $attr_value ) | |
100.00% |
1 / 1 |
1 | |
100.00% |
7 / 7 |
|||
testAllowedAttributeImpliesAllowedTag() | |
100.00% |
1 / 1 |
1 | |
100.00% |
3 / 3 |
|||
testAllowingAnAlreadyAllowedTagKeepsAttributeRestrictions() | |
100.00% |
1 / 1 |
1 | |
100.00% |
5 / 5 |
|||
testMultipleTagsCanBeAllowed() | |
100.00% |
1 / 1 |
1 | |
100.00% |
8 / 8 |
|||
testMultipleAttributesCanBeAllowed() | |
100.00% |
1 / 1 |
1 | |
100.00% |
7 / 7 |
<?php | |
namespace AthosHun\HTMLFilter; | |
class ConfigurationTest extends \PHPUnit_Framework_TestCase | |
{ | |
private $filter_config; | |
public function setUp() | |
{ | |
$this->filter_config = new Configuration(); | |
} | |
public function testTagsCanBeAllowedOrDisallowed() | |
{ | |
$this->filter_config->allowTag("img"); | |
$this->assertTagAllowed("img"); | |
$this->assertTagDisallowed("script"); | |
} | |
private function assertTagAllowed($tag_name) | |
{ | |
$this->assertTrue($this->filter_config->isAllowedTag($tag_name)); | |
} | |
private function assertTagDisallowed($tag_name) | |
{ | |
$this->assertFalse($this->filter_config->isAllowedTag($tag_name)); | |
} | |
public function testAttributesCanBeRestrictedWithRegularExpression() | |
{ | |
$this->filter_config->allowAttribute("img", "src", "/^hello\$/") ; | |
$this->assertAttributeAllowed("img", "src", "hello"); | |
$this->assertAttributeDisallowed("img", "src", "world"); | |
$this->assertAttributeDisallowed("img", "alt", "hello"); | |
$this->assertAttributeDisallowed("script", "src", "hello"); | |
} | |
private function assertAttributeAllowed($tag_name, $attr_name, $attr_value) | |
{ | |
$this->assertTrue( | |
$this->filter_config->isAllowedAttribute( | |
$tag_name, | |
$attr_name, | |
$attr_value | |
) | |
); | |
} | |
private function assertAttributeDisallowed( | |
$tag_name, | |
$attr_name, | |
$attr_value | |
) { | |
$this->assertFalse( | |
$this->filter_config->isAllowedAttribute( | |
$tag_name, | |
$attr_name, | |
$attr_value | |
) | |
); | |
} | |
public function testAllowedAttributeImpliesAllowedTag() | |
{ | |
$this->filter_config->allowAttribute("img", "src") ; | |
$this->assertTagAllowed("img"); | |
} | |
public function testAllowingAnAlreadyAllowedTagKeepsAttributeRestrictions() | |
{ | |
$this->filter_config->allowAttribute("img", "src", "/^hello\$/") | |
->allowTag("img"); | |
$this->assertAttributeAllowed("img", "src", "hello"); | |
$this->assertAttributeDisallowed("img", "src", "world"); | |
} | |
public function testMultipleTagsCanBeAllowed() | |
{ | |
$this->filter_config->allowTag("pre") | |
->allowTag("blockquote") | |
->allowTag("strong"); | |
$this->assertTagAllowed("pre"); | |
$this->assertTagAllowed("blockquote"); | |
$this->assertTagAllowed("strong"); | |
$this->assertTagDisallowed("table"); | |
} | |
public function testMultipleAttributesCanBeAllowed() | |
{ | |
$this->filter_config->allowAttribute("a", "href", "/^hello\$/") | |
->allowAttribute("a", "title", "/^lorem\$/"); | |
$this->assertAttributeAllowed("a", "href", "hello"); | |
$this->assertAttributeAllowed("a", "title", "lorem"); | |
$this->assertAttributeDisallowed("a", "title", "hello"); | |
$this->assertAttributeDisallowed("a", "href", "lorem"); | |
} | |
} |