diff options
Diffstat (limited to 'lib/htmlpurifier/tests/HTMLPurifier/Lexer')
-rw-r--r-- | lib/htmlpurifier/tests/HTMLPurifier/Lexer/DirectLexTest.php | 130 | ||||
-rw-r--r-- | lib/htmlpurifier/tests/HTMLPurifier/Lexer/DirectLex_ErrorsTest.php | 58 |
2 files changed, 0 insertions, 188 deletions
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/Lexer/DirectLexTest.php b/lib/htmlpurifier/tests/HTMLPurifier/Lexer/DirectLexTest.php deleted file mode 100644 index 095b5c952..000000000 --- a/lib/htmlpurifier/tests/HTMLPurifier/Lexer/DirectLexTest.php +++ /dev/null @@ -1,130 +0,0 @@ -<?php - -class HTMLPurifier_Lexer_DirectLexTest extends HTMLPurifier_Harness -{ - - protected $DirectLex; - - function setUp() { - $this->DirectLex = new HTMLPurifier_Lexer_DirectLex(); - } - - // internals testing - function test_parseAttributeString() { - - $input[0] = 'href="about:blank" rel="nofollow"'; - $expect[0] = array('href'=>'about:blank', 'rel'=>'nofollow'); - - $input[1] = "href='about:blank'"; - $expect[1] = array('href'=>'about:blank'); - - // note that the single quotes aren't /really/ escaped - $input[2] = 'onclick="javascript:alert(\'asdf\');"'; - $expect[2] = array('onclick' => "javascript:alert('asdf');"); - - $input[3] = 'selected'; - $expect[3] = array('selected'=>'selected'); - - // [INVALID] - $input[4] = '="nokey"'; - $expect[4] = array(); - - // [SIMPLE] - $input[5] = 'color=blue'; - $expect[5] = array('color' => 'blue'); - - // [INVALID] - $input[6] = 'href="about:blank'; - $expect[6] = array('href' => 'about:blank'); - - // [INVALID] - $input[7] = '"='; - $expect[7] = array('"' => ''); - // we ought to get array() - - $input[8] = 'href ="about:blank"rel ="nofollow"'; - $expect[8] = array('href' => 'about:blank', 'rel' => 'nofollow'); - - $input[9] = 'two bool'; - $expect[9] = array('two' => 'two', 'bool' => 'bool'); - - $input[10] = 'name="input" selected'; - $expect[10] = array('name' => 'input', 'selected' => 'selected'); - - $input[11] = '=""'; - $expect[11] = array(); - - $input[12] = '="" =""'; - $expect[12] = array('"' => ''); // tough to say, just don't throw a loop - - $input[13] = 'href="'; - $expect[13] = array('href' => ''); - - $input[14] = 'href=" <'; - $expect[14] = array('href' => ' <'); - - $config = HTMLPurifier_Config::createDefault(); - $context = new HTMLPurifier_Context(); - $size = count($input); - for($i = 0; $i < $size; $i++) { - $result = $this->DirectLex->parseAttributeString($input[$i], $config, $context); - $this->assertIdentical($expect[$i], $result, 'Test ' . $i . ': %s'); - } - - } - - function testLineNumbers() { - - // . . . . . . . . . . - // 01234567890123 01234567890123 0123456789012345 0123456789012 012345 - $html = "<b>Line 1</b>\n<i>Line 2</i>\nStill Line 2<br\n/>Now Line 4\n\n<br />"; - - $expect = array( - // line 1 - 0 => new HTMLPurifier_Token_Start('b') - ,1 => new HTMLPurifier_Token_Text('Line 1') - ,2 => new HTMLPurifier_Token_End('b') - ,3 => new HTMLPurifier_Token_Text("\n") - // line 2 - ,4 => new HTMLPurifier_Token_Start('i') - ,5 => new HTMLPurifier_Token_Text('Line 2') - ,6 => new HTMLPurifier_Token_End('i') - ,7 => new HTMLPurifier_Token_Text("\nStill Line 2") - // line 3 - ,8 => new HTMLPurifier_Token_Empty('br') - // line 4 - ,9 => new HTMLPurifier_Token_Text("Now Line 4\n\n") - // line SIX - ,10 => new HTMLPurifier_Token_Empty('br') - ); - - $context = new HTMLPurifier_Context(); - $config = HTMLPurifier_Config::createDefault(); - $output = $this->DirectLex->tokenizeHTML($html, $config, $context); - - $this->assertIdentical($output, $expect); - - $context = new HTMLPurifier_Context(); - $config = HTMLPurifier_Config::create(array( - 'Core.MaintainLineNumbers' => true - )); - $expect[0]->position(1, 0); - $expect[1]->position(1, 3); - $expect[2]->position(1, 9); - $expect[3]->position(2, -1); - $expect[4]->position(2, 0); - $expect[5]->position(2, 3); - $expect[6]->position(2, 9); - $expect[7]->position(3, -1); - $expect[8]->position(3, 12); - $expect[9]->position(4, 2); - $expect[10]->position(6, 0); - - $output = $this->DirectLex->tokenizeHTML($html, $config, $context); - $this->assertIdentical($output, $expect); - - } - -} - -// vim: et sw=4 sts=4 diff --git a/lib/htmlpurifier/tests/HTMLPurifier/Lexer/DirectLex_ErrorsTest.php b/lib/htmlpurifier/tests/HTMLPurifier/Lexer/DirectLex_ErrorsTest.php deleted file mode 100644 index 69d3c628d..000000000 --- a/lib/htmlpurifier/tests/HTMLPurifier/Lexer/DirectLex_ErrorsTest.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php - -class HTMLPurifier_Lexer_DirectLex_ErrorsTest extends HTMLPurifier_ErrorsHarness -{ - - function invoke($input) { - $lexer = new HTMLPurifier_Lexer_DirectLex(); - $lexer->tokenizeHTML($input, $this->config, $this->context); - } - - function invokeAttr($input) { - $lexer = new HTMLPurifier_Lexer_DirectLex(); - $lexer->parseAttributeString($input, $this->config, $this->context); - } - - function testExtractBody() { - $this->expectErrorCollection(E_WARNING, 'Lexer: Extracted body'); - $this->invoke('<body>foo</body>'); - } - - function testUnclosedComment() { - $this->expectErrorCollection(E_WARNING, 'Lexer: Unclosed comment'); - $this->expectContext('CurrentLine', 1); - $this->invoke('<!-- >'); - } - - function testUnescapedLt() { - $this->expectErrorCollection(E_NOTICE, 'Lexer: Unescaped lt'); - $this->expectContext('CurrentLine', 1); - $this->invoke('< foo>'); - } - - function testMissingGt() { - $this->expectErrorCollection(E_WARNING, 'Lexer: Missing gt'); - $this->expectContext('CurrentLine', 1); - $this->invoke('<a href=""'); - } - - // these are sub-errors, will only be thrown in context of collector - - function testMissingAttributeKey1() { - $this->expectErrorCollection(E_ERROR, 'Lexer: Missing attribute key'); - $this->invokeAttr('=""'); - } - - function testMissingAttributeKey2() { - $this->expectErrorCollection(E_ERROR, 'Lexer: Missing attribute key'); - $this->invokeAttr('foo="bar" =""'); - } - - function testMissingEndQuote() { - $this->expectErrorCollection(E_ERROR, 'Lexer: Missing end quote'); - $this->invokeAttr('src="foo'); - } - -} - -// vim: et sw=4 sts=4 |