config->set('HTML', 'TidyLevel', 'heavy'); } function getStrategy() { return new HTMLPurifier_Strategy_RemoveForeignElements(); } 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('
'); } 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(''); } 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(''); } 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(''); } function testCommentRemoved() { $this->expectErrorCollection(E_NOTICE, 'Strategy_RemoveForeignElements: Comment removed'); $this->expectContext('CurrentToken', new HTMLPurifier_Token_Comment(' test ', 1)); $this->invoke(''); } function testScriptRemoved() { $this->collector->expectAt(0, 'send', array(E_ERROR, 'Strategy_RemoveForeignElements: Script 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('