forked from inikulin/parse5
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tokenizer.test.js
37 lines (32 loc) · 1.14 KB
/
tokenizer.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
'use strict';
const assert = require('assert');
const parse5 = require('../lib');
const path = require('path');
const Tokenizer = require('../lib/tokenizer');
const Mixin = require('../lib/utils/mixin');
const ErrorReportingTokenizerMixin = require('../lib/extensions/error-reporting/tokenizer-mixin');
const generateTokenizationTests = require('../../../test/utils/generate-tokenization-tests');
generateTokenizationTests(
exports,
'Tokenizer',
path.join(__dirname, '../../../test/data/html5lib-tests/tokenizer'),
({ errors }) => {
const tokenizer = new Tokenizer();
Mixin.install(tokenizer, ErrorReportingTokenizerMixin, {
onParseError(err) {
errors.push({
code: err.code,
line: err.startLine,
col: err.startCol
});
}
});
return { tokenizer, getNextToken: () => tokenizer.getNextToken() };
}
);
exports['Regression - `<<` in comment parses correctly (GH-325)'] = {
test() {
const document = parse5.parse('<!--<<-->');
assert.equal(document.childNodes[0].data, '<<');
}
};