From f32e3cd87d35923d8961bf70d1dbf392ebf23b18 Mon Sep 17 00:00:00 2001 From: David Greenspan Date: Tue, 16 Apr 2013 19:21:00 -0700 Subject: [PATCH] tests covering token types --- packages/html5-tokenizer/tokenizer_tests.js | 36 ++++++++++++++++++--- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/packages/html5-tokenizer/tokenizer_tests.js b/packages/html5-tokenizer/tokenizer_tests.js index af5e728c98..d71d5b3edd 100644 --- a/packages/html5-tokenizer/tokenizer_tests.js +++ b/packages/html5-tokenizer/tokenizer_tests.js @@ -1,8 +1,36 @@ Tinytest.add("html5-tokenizer - basic", function (test) { - test.equal(HTML5Tokenizer.tokenize('

foo'), - [ { type: 'StartTag', name: 'p', data: [] }, - { type: 'Characters', data: 'foo' }, - { type: 'EOF', data: 'End of File' } ]); + var run = function (input, expectedTokens) { + test.equal(HTML5Tokenizer.tokenize(input), + expectedTokens); + }; + + run('

foo', + [ { type: 'StartTag', name: 'p', data: [] }, + { type: 'Characters', data: 'foo' }, + { type: 'EOF', data: 'End of File' } ]); + + run('', + [ { type: 'Doctype', name: 'html', correct: true, + publicId: null, systemId: null }, + { type: 'EOF', data: 'End of File' } ]); + + run(' ', + [ { type: 'StartTag', name: 'a', + data: [{nodeName: 'b', nodeValue: ''}, + {nodeName: 'c', nodeValue: 'd'}] }, + { type: 'SpaceCharacters', data: ' ' }, + { type: 'EndTag', name: 'a', data: [] }, + { type: 'EOF', data: 'End of File' } ]); + + run('<3', + [{ type: 'ParseError', data: 'expected-tag-name' }, + { type: 'Characters', data: '<' }, + { type: 'Characters', data: '3' }, + { type: 'EOF', data: 'End of File' } ]); + + run('', + [{ type: 'Comment', data: 'foo' }, + { type: 'EOF', data: 'End of File' } ]); }); \ No newline at end of file