home
/
zktecojo
/
public_html
/
htmlpurifier
/
tests
/
HTMLPurifier
/
Strategy
➕ New
📤 Upload
✎ Editing:
RemoveForeignElements_ErrorsTest.php
← Back
<?php class HTMLPurifier_Strategy_RemoveForeignElements_ErrorsTest extends HTMLPurifier_Strategy_ErrorsHarness { public function setup() { parent::setup(); $this->config->set('HTML.TidyLevel', 'heavy'); } protected function getStrategy() { return new HTMLPurifier_Strategy_RemoveForeignElements(); } public function testTagTransform() { $this->expectErrorCollection(E_NOTICE, 'Strategy_RemoveForeignElements: Tag transform', 'center'); $this->expectContext('CurrentToken', new HTMLPurifier_Token_Start('div', array('style' => 'text-align:center;'), 1)); $this->invoke('<center>'); } public function testMissingRequiredAttr() { // a little fragile, since img has two required attributes $this->expectErrorCollection(E_ERROR, 'Strategy_RemoveForeignElements: Missing required attribute', 'alt'); $this->expectContext('CurrentToken', new HTMLPurifier_Token_Empty('img', array(), 1)); $this->invoke('<img />'); } public function testForeignElementToText() { $this->config->set('Core.EscapeInvalidTags', true); $this->expectErrorCollection(E_WARNING, 'Strategy_RemoveForeignElements: Foreign element to text'); $this->expectContext('CurrentToken', new HTMLPurifier_Token_Start('invalid', array(), 1)); $this->invoke('<invalid>'); } public function testForeignElementRemoved() { // uses $CurrentToken.Serialized $this->expectErrorCollection(E_ERROR, 'Strategy_RemoveForeignElements: Foreign element removed'); $this->expectContext('CurrentToken', new HTMLPurifier_Token_Start('invalid', array(), 1)); $this->invoke('<invalid>'); } public function testCommentRemoved() { $this->expectErrorCollection(E_NOTICE, 'Strategy_RemoveForeignElements: Comment removed'); $this->expectContext('CurrentToken', new HTMLPurifier_Token_Comment(' test ', 1)); $this->invoke('<!-- test -->'); } public function testTrailingHyphenInCommentRemoved() { $this->config->set('HTML.Trusted', true); $this->expectErrorCollection(E_NOTICE, 'Strategy_RemoveForeignElements: Trailing hyphen in comment removed'); $this->expectContext('CurrentToken', new HTMLPurifier_Token_Comment(' test ', 1)); $this->invoke('<!-- test ---->'); } public function testDoubleHyphenInCommentRemoved() { $this->config->set('HTML.Trusted', true); $this->expectErrorCollection(E_NOTICE, 'Strategy_RemoveForeignElements: Hyphens in comment collapsed'); $this->expectContext('CurrentToken', new HTMLPurifier_Token_Comment(' test - test - test ', 1)); $this->invoke('<!-- test --- test -- test -->'); } public function testForeignMetaElementRemoved() { $this->collector->expectAt(0, 'send', array(E_ERROR, 'Strategy_RemoveForeignElements: Foreign meta element removed')); $this->collector->expectContextAt(0, 'CurrentToken', new HTMLPurifier_Token_Start('script', array(), 1)); $this->collector->expectAt(1, 'send', array(E_ERROR, 'Strategy_RemoveForeignElements: Token removed to end', 'script')); $this->invoke('<script>asdf'); } } // vim: et sw=4 sts=4
💾 Save Changes
Cancel
📤 Upload File
×
Select File
Upload
Cancel
➕ Create New
×
Type
📄 File
📁 Folder
Name
Create
Cancel
✎ Rename Item
×
Current Name
New Name
Rename
Cancel
🔐 Change Permissions
×
Target File
Permission (e.g., 0755, 0644)
0755
0644
0777
Apply
Cancel