79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| class HTMLPurifier_ChildDef_RequiredTest extends HTMLPurifier_ChildDefHarness
 | |
| {
 | |
| 
 | |
|     public function testPrepareString()
 | |
|     {
 | |
|         $def = new HTMLPurifier_ChildDef_Required('foobar | bang |gizmo');
 | |
|         $this->assertIdentical($def->elements,
 | |
|           array(
 | |
|             'foobar' => true
 | |
|            ,'bang'   => true
 | |
|            ,'gizmo'  => true
 | |
|           ));
 | |
|     }
 | |
| 
 | |
|     public function testPrepareArray()
 | |
|     {
 | |
|         $def = new HTMLPurifier_ChildDef_Required(array('href', 'src'));
 | |
|         $this->assertIdentical($def->elements,
 | |
|           array(
 | |
|             'href' => true
 | |
|            ,'src'  => true
 | |
|           ));
 | |
|     }
 | |
| 
 | |
|     public function setUp()
 | |
|     {
 | |
|         parent::setUp();
 | |
|         $this->obj = new HTMLPurifier_ChildDef_Required('dt | dd');
 | |
|     }
 | |
| 
 | |
|     public function testEmptyInput()
 | |
|     {
 | |
|         $this->assertResult('', false);
 | |
|     }
 | |
| 
 | |
|     public 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);
 | |
|     }
 | |
| 
 | |
|     public function testIgnoreWhitespace()
 | |
|     {
 | |
|         // whitespace shouldn't trigger it
 | |
|         $this->assertResult("\n<dd>Definition</dd>       ");
 | |
|     }
 | |
| 
 | |
|     public function testPreserveWhitespaceAfterRemoval()
 | |
|     {
 | |
|         $this->assertResult(
 | |
|           '<dd>Definition</dd>       <b></b>       ',
 | |
|           '<dd>Definition</dd>              '
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     public function testDeleteNodeIfOnlyWhitespace()
 | |
|     {
 | |
|         $this->assertResult("\t      ", false);
 | |
|     }
 | |
| 
 | |
|     public function testPCDATAAllowed()
 | |
|     {
 | |
|         $this->obj = new HTMLPurifier_ChildDef_Required('#PCDATA | b');
 | |
|         $this->assertResult('Out <b>Bold text</b><img />', 'Out <b>Bold text</b>');
 | |
|     }
 | |
|     public function testPCDATAAllowedJump()
 | |
|     {
 | |
|         $this->obj = new HTMLPurifier_ChildDef_Required('#PCDATA | b');
 | |
|         $this->assertResult('A <i>foo</i>', 'A foo');
 | |
|     }
 | |
| }
 | |
| 
 | |
| // vim: et sw=4 sts=4
 | 
