summaryrefslogtreecommitdiff
path: root/test/HTML5/Parser/TokenizerTest.php
diff options
context:
space:
mode:
authorTechnosophos <[email protected]>2013-04-19 17:43:28 -0500
committerTechnosophos <[email protected]>2013-04-19 17:43:28 -0500
commit9351d1c046ed3a6a82db3daa7eaab2336d5b204d (patch)
tree494bde4b282a86132e8817751dd21ea96dc8e4fa /test/HTML5/Parser/TokenizerTest.php
parent4e5458898e6d9a73d3eae7b3213187407a940ce8 (diff)
Full support for rawtext. Unit tests finished.
Diffstat (limited to 'test/HTML5/Parser/TokenizerTest.php')
-rw-r--r--test/HTML5/Parser/TokenizerTest.php57
1 files changed, 39 insertions, 18 deletions
diff --git a/test/HTML5/Parser/TokenizerTest.php b/test/HTML5/Parser/TokenizerTest.php
index 69f90b9..7ec4c76 100644
--- a/test/HTML5/Parser/TokenizerTest.php
+++ b/test/HTML5/Parser/TokenizerTest.php
@@ -395,38 +395,59 @@ class TokenizerTest extends \HTML5\Tests\TestCase {
'<pre>hello</pre</pre>' => 'hello</pre',
"<pre>\nhello</pre\n</pre>" => "\nhello</pre\n",
'<pre>&amp;</pre>' => '&amp;',
+ '<pre><!--not a comment--></pre>' => '<!--not a comment-->',
+ '<pre><![CDATA[not a comment]]></pre>' => '<![CDATA[not a comment]]>',
);
foreach ($good as $test => $expects) {
- list($tok, $events) = $this->createTokenizer($test);
-
- $tok->setTextMode(Tokenizer::TEXTMODE_RAW, 'pre');
- $tok->parse();
-
- //fprintf(STDOUT, "Test: %s\n", $test);
- fprintf(STDOUT, "Test: %s %s\n", $test, print_r($events, TRUE));
-
+ $events = $this->parse($test);
$this->assertEventEquals('startTag', 'pre', $events->get(0));
$this->assertEventEquals('text', $expects, $events->get(1));
$this->assertEventEquals('endTag', 'pre', $events->get(2));
}
$bad = array(
- '<pre>&amp;</pre' => '&amp;',
+ '<pre>&amp;</pre' => '&amp;</pre',
+ '<pre>Hello world' => 'Hello world',
);
+ foreach ($bad as $test => $expects) {
+ $events = $this->parse($test);
+ $this->assertEquals(4, $events->depth(), "Counting events for '$test': " . print_r($events, TRUE));
+ $this->assertEventEquals('startTag', 'pre', $events->get(0));
+ $this->assertEventError($events->get(1));
+ $this->assertEventEquals('text', $expects, $events->get(2));
+ }
}
public function testText() {
- $good = array(
- 'a<br>b',
- '<a>test</a>',
- 'a<![[ test ]]>b',
- 'a&amp;b',
- 'a&b',
- 'a& b& c',
- );
- $this->markTestIncomplete("Need tag parsing first.");
+ $events = $this->parse('a<br>b');
+ $this->assertEquals(4, $events->depth(), "Events: " . print_r($events, TRUE));
+ $this->assertEventEquals('text', 'a', $events->get(0));
+ $this->assertEventEquals('startTag', 'br', $events->get(1));
+ $this->assertEventEquals('text', 'b', $events->get(2));
+
+ $events = $this->parse('<a>Test</a>');
+ $this->assertEquals(4, $events->depth(), "Events: " . print_r($events, TRUE));
+ $this->assertEventEquals('startTag', 'a', $events->get(0));
+ $this->assertEventEquals('text', 'Test', $events->get(1));
+ $this->assertEventEquals('endTag', 'a', $events->get(2));
+
+ $events = $this->parse('a<![CDATA[test]]>b');
+ $this->assertEquals(4, $events->depth(), "Events: " . print_r($events, TRUE));
+ $this->assertEventEquals('text', 'a', $events->get(0));
+ $this->assertEventEquals('cdata', 'test', $events->get(1));
+ $this->assertEventEquals('text', 'b', $events->get(2));
+
+ $events = $this->parse('a<!--test-->b');
+ $this->assertEquals(4, $events->depth(), "Events: " . print_r($events, TRUE));
+ $this->assertEventEquals('text', 'a', $events->get(0));
+ $this->assertEventEquals('comment', 'test', $events->get(1));
+ $this->assertEventEquals('text', 'b', $events->get(2));
+
+ $events = $this->parse('a&amp;b');
+ $this->assertEquals(2, $events->depth(), "Events: " . print_r($events, TRUE));
+ $this->assertEventEquals('text', 'a&b', $events->get(0));
}
// ================================================================