tests covering token types

This commit is contained in:
David Greenspan
2013-04-16 19:21:00 -07:00
parent 52fda49602
commit f32e3cd87d

View File

@@ -1,8 +1,36 @@
Tinytest.add("html5-tokenizer - basic", function (test) {
test.equal(HTML5Tokenizer.tokenize('<p>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('<p>foo',
[ { type: 'StartTag', name: 'p', data: [] },
{ type: 'Characters', data: 'foo' },
{ type: 'EOF', data: 'End of File' } ]);
run('<!DOCTYPE html>',
[ { type: 'Doctype', name: 'html', correct: true,
publicId: null, systemId: null },
{ type: 'EOF', data: 'End of File' } ]);
run('<a b c=d> </a>',
[ { 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('<!--foo-->',
[{ type: 'Comment', data: 'foo' },
{ type: 'EOF', data: 'End of File' } ]);
});