mirror of
https://gitlab.gnome.org/GNOME/libxml2
synced 2025-03-28 21:33:13 +00:00
html: Test tokenizer against html5lib test suite
This commit is contained in:
parent
27752f75ca
commit
c6af101728
27
result/html-tokenizer/NOTICE
Normal file
27
result/html-tokenizer/NOTICE
Normal file
@ -0,0 +1,27 @@
|
||||
The test cases in this directory are derived from the html5lib test
|
||||
suite available from https://github.com/html5lib/html5lib-tests under
|
||||
the following license:
|
||||
|
||||
---
|
||||
|
||||
Copyright (c) 2006-2013 James Graham, Geoffrey Sneddon, and
|
||||
other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
96
result/html-tokenizer/contentModelFlags.test
Normal file
96
result/html-tokenizer/contentModelFlags.test
Normal file
@ -0,0 +1,96 @@
|
||||
0
|
||||
Character
|
||||
<head>&body;
|
||||
1
|
||||
Character
|
||||
</plaintext>&body;
|
||||
2
|
||||
Character
|
||||
foo
|
||||
EndTag
|
||||
xmp
|
||||
3
|
||||
Character
|
||||
foo
|
||||
EndTag
|
||||
xmp
|
||||
4
|
||||
Character
|
||||
foo
|
||||
EndTag
|
||||
xmp
|
||||
5
|
||||
Character
|
||||
foo
|
||||
EndTag
|
||||
xmp
|
||||
6
|
||||
Character
|
||||
foo
|
||||
7
|
||||
Character
|
||||
foo
|
||||
8
|
||||
Character
|
||||
foo</xmp
|
||||
9
|
||||
Character
|
||||
foo</xmp
|
||||
10
|
||||
Character
|
||||
foo
|
||||
11
|
||||
Character
|
||||
foo
|
||||
12
|
||||
Character
|
||||
foo</xmp<
|
||||
13
|
||||
Character
|
||||
foo</xmp<
|
||||
14
|
||||
Character
|
||||
</foo>bar
|
||||
EndTag
|
||||
xmp
|
||||
15
|
||||
Character
|
||||
</foo>bar
|
||||
EndTag
|
||||
xmp
|
||||
16
|
||||
Character
|
||||
</xmp</xmp
|
||||
EndTag
|
||||
xmp
|
||||
17
|
||||
Character
|
||||
</xmp</xmp
|
||||
EndTag
|
||||
xmp
|
||||
18
|
||||
Character
|
||||
</foo>bar</xmpaar>
|
||||
19
|
||||
Character
|
||||
</foo>bar</xmpaar>
|
||||
20
|
||||
Character
|
||||
foo
|
||||
EndTag
|
||||
xmp
|
||||
EndTag
|
||||
baz
|
||||
21
|
||||
Character
|
||||
foo
|
||||
EndTag
|
||||
xmp
|
||||
EndTag
|
||||
baz
|
||||
22
|
||||
Character
|
||||
&foo;
|
||||
23
|
||||
Character
|
||||
<
|
190
result/html-tokenizer/domjs.test
Normal file
190
result/html-tokenizer/domjs.test
Normal file
@ -0,0 +1,190 @@
|
||||
0
|
||||
Comment
|
||||
?
|
||||
|
||||
1
|
||||
Comment
|
||||
?
|
||||
|
||||
2
|
||||
Comment
|
||||
?
|
||||
|
||||
|
||||
3
|
||||
Character
|
||||
<EFBFBD>
|
||||
4
|
||||
Character
|
||||
<EFBFBD>
|
||||
5
|
||||
Character
|
||||
<EFBFBD>
|
||||
6
|
||||
Character
|
||||
<EFBFBD>
|
||||
7
|
||||
Character
|
||||
<!--test<73>--><!--test-<2D>--><!--test--<2D>-->
|
||||
8
|
||||
Character
|
||||
<!--<script><3E>--><!--<script>-<2D>--><!--<script>--<2D>-->
|
||||
9
|
||||
Character
|
||||
<!--test
|
||||
10
|
||||
Character
|
||||
<!--test-
|
||||
11
|
||||
Character
|
||||
<!--test--
|
||||
12
|
||||
Character
|
||||
<!--<script>-
|
||||
13
|
||||
Character
|
||||
<!--<script>--
|
||||
14
|
||||
Character
|
||||
<!--<script>
|
||||
15
|
||||
Character
|
||||
<!-- - -->
|
||||
16
|
||||
Character
|
||||
<!-- -< -->
|
||||
17
|
||||
Character
|
||||
<!--test--->
|
||||
18
|
||||
Character
|
||||
<!--
|
||||
EndTag
|
||||
script
|
||||
Character
|
||||
-->
|
||||
EndTag
|
||||
script
|
||||
19
|
||||
Character
|
||||
<!-- <script></script> -->
|
||||
EndTag
|
||||
script
|
||||
20
|
||||
Character
|
||||
<!-- <script><script></script>
|
||||
EndTag
|
||||
script
|
||||
Character
|
||||
-->
|
||||
EndTag
|
||||
script
|
||||
21
|
||||
Character
|
||||
<!-- <script>-->
|
||||
EndTag
|
||||
script
|
||||
Character
|
||||
-->
|
||||
EndTag
|
||||
script
|
||||
22
|
||||
Character
|
||||
<!--<scrip>
|
||||
EndTag
|
||||
script
|
||||
Character
|
||||
-->
|
||||
23
|
||||
Character
|
||||
<!--<script
|
||||
EndTag
|
||||
script
|
||||
Character
|
||||
-->
|
||||
24
|
||||
Character
|
||||
<!--<script></scrip>-->
|
||||
25
|
||||
Character
|
||||
<!--<script></script-->
|
||||
26
|
||||
Character
|
||||
foobar
|
||||
27
|
||||
Character
|
||||
foobar
|
||||
28
|
||||
Character
|
||||
foobar
|
||||
29
|
||||
Character
|
||||
foobar
|
||||
30
|
||||
Character
|
||||
≂̸
|
||||
31
|
||||
Character
|
||||
&NotEqualTild;
|
||||
32
|
||||
EndTag
|
||||
xmp
|
||||
33
|
||||
EndTag
|
||||
xmp
|
||||
34
|
||||
EndTag
|
||||
xmp
|
||||
35
|
||||
Character
|
||||
</ XMP>
|
||||
36
|
||||
Character
|
||||
</ XMP>
|
||||
37
|
||||
Character
|
||||
</ XMP>
|
||||
38
|
||||
Character
|
||||
</xm>
|
||||
39
|
||||
Character
|
||||
</xm>
|
||||
40
|
||||
Character
|
||||
</xm>
|
||||
41
|
||||
Character
|
||||
</xm
|
||||
42
|
||||
Character
|
||||
</xm
|
||||
43
|
||||
Character
|
||||
</xm
|
||||
44
|
||||
Character
|
||||
</xm/
|
||||
45
|
||||
Character
|
||||
</xm/
|
||||
46
|
||||
Character
|
||||
</xm/
|
||||
47
|
||||
StartTag
|
||||
p id=≂̸
|
||||
48
|
||||
Comment
|
||||
--!<21>
|
||||
49
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
<none>
|
||||
50
|
||||
Comment
|
||||
[CDATA[foo]]
|
||||
51
|
||||
Character
|
||||
<b>hello world</b>
|
240
result/html-tokenizer/entities.test
Normal file
240
result/html-tokenizer/entities.test
Normal file
@ -0,0 +1,240 @@
|
||||
0
|
||||
StartTag
|
||||
h a=¬i;
|
||||
1
|
||||
StartTag
|
||||
h a=&lang=
|
||||
2
|
||||
StartTag
|
||||
h a=¬=
|
||||
3
|
||||
StartTag
|
||||
h a=¬i;
|
||||
4
|
||||
StartTag
|
||||
h a=&lang=
|
||||
5
|
||||
StartTag
|
||||
h a=¬=
|
||||
6
|
||||
StartTag
|
||||
h a=¬i;
|
||||
7
|
||||
StartTag
|
||||
h a=&lang=
|
||||
8
|
||||
StartTag
|
||||
h a=¬=
|
||||
9
|
||||
Character
|
||||
&rrrraannddom;
|
||||
10
|
||||
Character
|
||||
¬i;
|
||||
11
|
||||
Character
|
||||
&ammmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmp;
|
||||
12
|
||||
Character
|
||||
|
||||
13
|
||||
Character
|
||||
|
||||
14
|
||||
Character
|
||||
€
|
||||
15
|
||||
Character
|
||||
|
||||
16
|
||||
Character
|
||||
‚
|
||||
17
|
||||
Character
|
||||
ƒ
|
||||
18
|
||||
Character
|
||||
„
|
||||
19
|
||||
Character
|
||||
…
|
||||
20
|
||||
Character
|
||||
†
|
||||
21
|
||||
Character
|
||||
‡
|
||||
22
|
||||
Character
|
||||
ˆ
|
||||
23
|
||||
Character
|
||||
‰
|
||||
24
|
||||
Character
|
||||
Š
|
||||
25
|
||||
Character
|
||||
‹
|
||||
26
|
||||
Character
|
||||
Œ
|
||||
27
|
||||
Character
|
||||
|
||||
28
|
||||
Character
|
||||
Ž
|
||||
29
|
||||
Character
|
||||
|
||||
30
|
||||
Character
|
||||
|
||||
31
|
||||
Character
|
||||
‘
|
||||
32
|
||||
Character
|
||||
’
|
||||
33
|
||||
Character
|
||||
“
|
||||
34
|
||||
Character
|
||||
”
|
||||
35
|
||||
Character
|
||||
•
|
||||
36
|
||||
Character
|
||||
–
|
||||
37
|
||||
Character
|
||||
—
|
||||
38
|
||||
Character
|
||||
˜
|
||||
39
|
||||
Character
|
||||
™
|
||||
40
|
||||
Character
|
||||
š
|
||||
41
|
||||
Character
|
||||
›
|
||||
42
|
||||
Character
|
||||
œ
|
||||
43
|
||||
Character
|
||||
|
||||
44
|
||||
Character
|
||||
€
|
||||
45
|
||||
Character
|
||||
|
||||
46
|
||||
Character
|
||||
‚
|
||||
47
|
||||
Character
|
||||
ƒ
|
||||
48
|
||||
Character
|
||||
„
|
||||
49
|
||||
Character
|
||||
…
|
||||
50
|
||||
Character
|
||||
†
|
||||
51
|
||||
Character
|
||||
‡
|
||||
52
|
||||
Character
|
||||
ˆ
|
||||
53
|
||||
Character
|
||||
‰
|
||||
54
|
||||
Character
|
||||
Š
|
||||
55
|
||||
Character
|
||||
‹
|
||||
56
|
||||
Character
|
||||
Œ
|
||||
57
|
||||
Character
|
||||
|
||||
58
|
||||
Character
|
||||
Ž
|
||||
59
|
||||
Character
|
||||
|
||||
60
|
||||
Character
|
||||
|
||||
61
|
||||
Character
|
||||
‘
|
||||
62
|
||||
Character
|
||||
’
|
||||
63
|
||||
Character
|
||||
“
|
||||
64
|
||||
Character
|
||||
”
|
||||
65
|
||||
Character
|
||||
•
|
||||
66
|
||||
Character
|
||||
–
|
||||
67
|
||||
Character
|
||||
—
|
||||
68
|
||||
Character
|
||||
˜
|
||||
69
|
||||
Character
|
||||
™
|
||||
70
|
||||
Character
|
||||
š
|
||||
71
|
||||
Character
|
||||
›
|
||||
72
|
||||
Character
|
||||
œ
|
||||
73
|
||||
Character
|
||||
|
||||
74
|
||||
Character
|
||||
ž
|
||||
75
|
||||
Character
|
||||
Ÿ
|
||||
76
|
||||
Character
|
||||
aa
|
||||
77
|
||||
Character
|
||||
aA
|
||||
78
|
||||
Character
|
||||
af
|
||||
79
|
||||
Character
|
||||
aF
|
65
result/html-tokenizer/escapeFlag.test
Normal file
65
result/html-tokenizer/escapeFlag.test
Normal file
@ -0,0 +1,65 @@
|
||||
0
|
||||
Character
|
||||
foo<!--
|
||||
EndTag
|
||||
xmp
|
||||
Character
|
||||
-->
|
||||
EndTag
|
||||
xmp
|
||||
1
|
||||
Character
|
||||
foo<!--
|
||||
EndTag
|
||||
xmp
|
||||
Character
|
||||
-->
|
||||
EndTag
|
||||
xmp
|
||||
2
|
||||
Character
|
||||
foo<!-->baz
|
||||
EndTag
|
||||
xmp
|
||||
3
|
||||
Character
|
||||
foo<!-->baz
|
||||
EndTag
|
||||
xmp
|
||||
4
|
||||
Character
|
||||
foo<!-->
|
||||
EndTag
|
||||
xmp
|
||||
Comment
|
||||
|
||||
Character
|
||||
baz
|
||||
EndTag
|
||||
xmp
|
||||
5
|
||||
Character
|
||||
foo<!-->
|
||||
EndTag
|
||||
xmp
|
||||
Comment
|
||||
|
||||
Character
|
||||
baz
|
||||
EndTag
|
||||
xmp
|
||||
6
|
||||
Character
|
||||
& <!-- & --> &
|
||||
EndTag
|
||||
xmp
|
||||
7
|
||||
Character
|
||||
foo<!-- x --x>x-- >x--!>x--<>
|
||||
EndTag
|
||||
xmp
|
||||
8
|
||||
Character
|
||||
foo<!-- x --x>x-- >x--!>x--<>
|
||||
EndTag
|
||||
xmp
|
12631
result/html-tokenizer/namedEntities.test
Normal file
12631
result/html-tokenizer/namedEntities.test
Normal file
File diff suppressed because it is too large
Load Diff
1009
result/html-tokenizer/numericEntities.test
Normal file
1009
result/html-tokenizer/numericEntities.test
Normal file
File diff suppressed because it is too large
Load Diff
3
result/html-tokenizer/pendingSpecChanges.test
Normal file
3
result/html-tokenizer/pendingSpecChanges.test
Normal file
@ -0,0 +1,3 @@
|
||||
0
|
||||
Comment
|
||||
-- >
|
231
result/html-tokenizer/test1.test
Normal file
231
result/html-tokenizer/test1.test
Normal file
@ -0,0 +1,231 @@
|
||||
0
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
<none>
|
||||
1
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
<none>
|
||||
2
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
<none>
|
||||
3
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
<none>
|
||||
4
|
||||
Comment
|
||||
DOC
|
||||
5
|
||||
DOCTYPE
|
||||
foo
|
||||
<none>
|
||||
<none>
|
||||
6
|
||||
StartTag
|
||||
h
|
||||
7
|
||||
8
|
||||
Character
|
||||
<>
|
||||
9
|
||||
StartTag
|
||||
h a=b
|
||||
10
|
||||
StartTag
|
||||
h a=b
|
||||
11
|
||||
StartTag
|
||||
h
|
||||
EndTag
|
||||
h
|
||||
12
|
||||
StartTag
|
||||
p
|
||||
Character
|
||||
One
|
||||
StartTag
|
||||
p
|
||||
Character
|
||||
Two
|
||||
13
|
||||
StartTag
|
||||
h
|
||||
EndTag
|
||||
h
|
||||
14
|
||||
StartTag
|
||||
h a=b c=d
|
||||
15
|
||||
StartTag
|
||||
h a=b c=d
|
||||
16
|
||||
StartTag
|
||||
h a=b
|
||||
17
|
||||
Comment
|
||||
comment
|
||||
18
|
||||
Comment
|
||||
-
|
||||
19
|
||||
Comment
|
||||
--comment
|
||||
20
|
||||
Comment
|
||||
<!
|
||||
21
|
||||
Comment
|
||||
comment
|
||||
22
|
||||
Comment
|
||||
<!
|
||||
23
|
||||
Comment
|
||||
-
|
||||
24
|
||||
Comment
|
||||
|
||||
25
|
||||
Comment
|
||||
|
||||
26
|
||||
Comment
|
||||
|
||||
27
|
||||
Comment
|
||||
<test
|
||||
28
|
||||
Comment
|
||||
<<
|
||||
29
|
||||
Comment
|
||||
<!test
|
||||
30
|
||||
Comment
|
||||
<!-test
|
||||
31
|
||||
Comment
|
||||
<!--test
|
||||
32
|
||||
Comment
|
||||
<<!--test
|
||||
33
|
||||
Character
|
||||
<test-->
|
||||
34
|
||||
Character
|
||||
<!test-->
|
||||
35
|
||||
Character
|
||||
<!-test-->
|
||||
36
|
||||
Character
|
||||
<!--test-->
|
||||
37
|
||||
Character
|
||||
<!-- < test -->
|
||||
38
|
||||
Character
|
||||
<!-- </ test -->
|
||||
39
|
||||
Character
|
||||
<!-- <test> -->
|
||||
40
|
||||
Character
|
||||
<!-- </test> -->
|
||||
41
|
||||
Character
|
||||
<!--<script>-</script>-->
|
||||
42
|
||||
Character
|
||||
<!--<script>--</script>-->
|
||||
43
|
||||
Character
|
||||
<!--<script>---</script>-->
|
||||
44
|
||||
Character
|
||||
<!--<script> - </script>-->
|
||||
45
|
||||
Character
|
||||
<!--<script> -- </script>-->
|
||||
46
|
||||
Character
|
||||
&
|
||||
47
|
||||
Character
|
||||
&&
|
||||
48
|
||||
Character
|
||||
&
|
||||
49
|
||||
Character
|
||||
&f
|
||||
50
|
||||
Character
|
||||
&#
|
||||
51
|
||||
Character
|
||||
&#x
|
||||
52
|
||||
Character
|
||||
I'm ¬it
|
||||
53
|
||||
Character
|
||||
I'm ∉
|
||||
54
|
||||
Character
|
||||
I'm ¬it
|
||||
55
|
||||
Character
|
||||
I'm ¬in
|
||||
56
|
||||
Character
|
||||
I'm &no
|
||||
57
|
||||
Character
|
||||
&¬;
|
||||
58
|
||||
Character
|
||||
$
|
||||
59
|
||||
Character
|
||||
?
|
||||
60
|
||||
StartTag
|
||||
h a=?
|
||||
EndTag
|
||||
h
|
||||
61
|
||||
StartTag
|
||||
h a=¬x
|
||||
62
|
||||
StartTag
|
||||
h a=¬1
|
||||
63
|
||||
StartTag
|
||||
h a=¬i
|
||||
64
|
||||
StartTag
|
||||
h a=©
|
||||
65
|
||||
StartTag
|
||||
s o=& t=
|
||||
66
|
||||
StartTag
|
||||
a a=a&
|
||||
Character
|
||||
foo
|
||||
67
|
||||
StartTag
|
||||
plaintext
|
||||
Character
|
||||
foobar
|
||||
68
|
||||
StartTag
|
||||
a a=f<
|
188
result/html-tokenizer/test2.test
Normal file
188
result/html-tokenizer/test2.test
Normal file
@ -0,0 +1,188 @@
|
||||
0
|
||||
DOCTYPE
|
||||
<none>
|
||||
<none>
|
||||
<none>
|
||||
1
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
<none>
|
||||
2
|
||||
DOCTYPE
|
||||
foo
|
||||
<none>
|
||||
<none>
|
||||
3
|
||||
DOCTYPE
|
||||
html
|
||||
-//W3C//DTD HTML Transitional 4.01//EN
|
||||
<none>
|
||||
4
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
<none>
|
||||
5
|
||||
DOCTYPE
|
||||
html
|
||||
|
||||
<none>
|
||||
6
|
||||
DOCTYPE
|
||||
html
|
||||
x
|
||||
<none>
|
||||
7
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
-//W3C//DTD HTML Transitional 4.01//EN
|
||||
8
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
-//W3C//DTD HTML Transitional 4.01//EN
|
||||
9
|
||||
DOCTYPE
|
||||
html
|
||||
-//W3C//DTD HTML Transitional 4.01//EN
|
||||
-//W3C//DTD HTML Transitional 4.01//EN
|
||||
10
|
||||
DOCTYPE
|
||||
html
|
||||
|
||||
<none>
|
||||
Character
|
||||
x
|
||||
11
|
||||
DOCTYPE
|
||||
html
|
||||
|
||||
<none>
|
||||
Character
|
||||
x
|
||||
12
|
||||
DOCTYPE
|
||||
html
|
||||
foo
|
||||
|
||||
Character
|
||||
x
|
||||
13
|
||||
DOCTYPE
|
||||
html
|
||||
foo
|
||||
|
||||
Character
|
||||
x
|
||||
14
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
<none>
|
||||
15
|
||||
Character
|
||||
<EFBFBD>
|
||||
16
|
||||
Character
|
||||
<EFBFBD>
|
||||
17
|
||||
Character
|
||||
<EFBFBD>
|
||||
18
|
||||
Character
|
||||
<EFBFBD>
|
||||
19
|
||||
Character
|
||||
<EFBFBD><EFBFBD>
|
||||
20
|
||||
Character
|
||||
ꯍ
|
||||
21
|
||||
Character
|
||||
&;
|
||||
22
|
||||
StartTag
|
||||
h a=&
|
||||
23
|
||||
StartTag
|
||||
a<b
|
||||
24
|
||||
StartTag
|
||||
h
|
||||
25
|
||||
StartTag
|
||||
br
|
||||
26
|
||||
StartTag
|
||||
br foo=bar
|
||||
27
|
||||
StartTag
|
||||
h a=b
|
||||
28
|
||||
StartTag
|
||||
h a=b
|
||||
29
|
||||
Character
|
||||
</
|
||||
30
|
||||
Comment
|
||||
1
|
||||
31
|
||||
Comment
|
||||
?namespace
|
||||
32
|
||||
Comment
|
||||
?foo--
|
||||
33
|
||||
Character
|
||||
foo < bar
|
||||
34
|
||||
Character
|
||||
<EFBFBD>
|
||||
35
|
||||
Comment
|
||||
-x
|
||||
36
|
||||
Character
|
||||
|
||||
x
|
||||
>
|
||||
|
||||
37
|
||||
StartTag
|
||||
h
|
||||
38
|
||||
StartTag
|
||||
h a= b=
|
||||
39
|
||||
StartTag
|
||||
h a= "=
|
||||
40
|
||||
StartTag
|
||||
h a= '=
|
||||
41
|
||||
Character
|
||||
abc
|
||||
42
|
||||
Character
|
||||
a
|
||||
StartTag
|
||||
b
|
||||
Character
|
||||
c
|
||||
43
|
||||
Character
|
||||
a
|
||||
Comment
|
||||
b
|
||||
Character
|
||||
c
|
||||
44
|
||||
Character
|
||||
a
|
||||
EndTag
|
||||
b
|
||||
Character
|
||||
c
|
6874
result/html-tokenizer/test3.test
Normal file
6874
result/html-tokenizer/test3.test
Normal file
File diff suppressed because it is too large
Load Diff
278
result/html-tokenizer/test4.test
Normal file
278
result/html-tokenizer/test4.test
Normal file
@ -0,0 +1,278 @@
|
||||
0
|
||||
StartTag
|
||||
z 0= <=
|
||||
1
|
||||
StartTag
|
||||
z x=<
|
||||
2
|
||||
StartTag
|
||||
z z=z=z
|
||||
3
|
||||
StartTag
|
||||
z ==
|
||||
4
|
||||
StartTag
|
||||
z ==
|
||||
5
|
||||
StartTag
|
||||
z ===
|
||||
6
|
||||
StartTag
|
||||
z ====
|
||||
7
|
||||
StartTag
|
||||
z z=&
|
||||
8
|
||||
StartTag
|
||||
z z=&'
|
||||
9
|
||||
StartTag
|
||||
z z=&
|
||||
10
|
||||
StartTag
|
||||
z z=&"
|
||||
11
|
||||
StartTag
|
||||
z z=&xlink_xmlns;
|
||||
Character
|
||||
bar
|
||||
StartTag
|
||||
z
|
||||
12
|
||||
StartTag
|
||||
z z= foo
|
||||
Character
|
||||
bar
|
||||
StartTag
|
||||
z
|
||||
13
|
||||
StartTag
|
||||
foo "=bar
|
||||
14
|
||||
StartTag
|
||||
foo '=bar
|
||||
15
|
||||
StartTag
|
||||
foo a"b=bar
|
||||
16
|
||||
StartTag
|
||||
foo a'b=bar
|
||||
17
|
||||
StartTag
|
||||
foo a=b'c
|
||||
18
|
||||
StartTag
|
||||
foo a=b"c
|
||||
19
|
||||
StartTag
|
||||
foo a=b c=
|
||||
20
|
||||
StartTag
|
||||
foo a=b c=
|
||||
21
|
||||
StartTag
|
||||
br a=b
|
||||
22
|
||||
StartTag
|
||||
bar a=b
|
||||
23
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
<none>
|
||||
24
|
||||
25
|
||||
26
|
||||
Character
|
||||
<EFBFBD>
|
||||
27
|
||||
Character
|
||||
<EFBFBD>
|
||||
28
|
||||
Character
|
||||
A
|
||||
29
|
||||
Character
|
||||
A
|
||||
30
|
||||
Character
|
||||
&#x &#X
|
||||
31
|
||||
Character
|
||||
&#xZ
|
||||
32
|
||||
Character
|
||||
&# &#;
|
||||
33
|
||||
Character
|
||||
&#A
|
||||
34
|
||||
Character
|
||||
𐀀
|
||||
35
|
||||
Character
|
||||
|
||||
36
|
||||
Character
|
||||
<EFBFBD>
|
||||
37
|
||||
Character
|
||||
<EFBFBD>
|
||||
38
|
||||
Character
|
||||
<EFBFBD>
|
||||
39
|
||||
Character
|
||||
<EFBFBD>
|
||||
40
|
||||
Character
|
||||
<EFBFBD>
|
||||
41
|
||||
Character
|
||||
<EFBFBD>
|
||||
42
|
||||
Character
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
43
|
||||
StartTag
|
||||
x
|
||||
44
|
||||
EndTag
|
||||
x
|
||||
45
|
||||
StartTag
|
||||
x x=
|
||||
46
|
||||
StartTag
|
||||
x@az[`az{ @az[`az{=
|
||||
47
|
||||
StartTag
|
||||
x x=1
|
||||
48
|
||||
EndTag
|
||||
x
|
||||
49
|
||||
EndTag
|
||||
x
|
||||
50
|
||||
StartTag
|
||||
br
|
||||
51
|
||||
StartTag
|
||||
xr
|
||||
52
|
||||
EndTag
|
||||
br
|
||||
53
|
||||
DOCTYPE
|
||||
html
|
||||
AbC
|
||||
XyZ
|
||||
54
|
||||
DOCTYPE
|
||||
html
|
||||
aBc
|
||||
xYz
|
||||
55
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
XyZ
|
||||
56
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
xYz
|
||||
57
|
||||
Comment
|
||||
doc
|
||||
Character
|
||||
<EFBFBD>
|
||||
58
|
||||
Comment
|
||||
doc<EFBFBD>
|
||||
59
|
||||
Comment
|
||||
doc
|
||||
60
|
||||
Comment
|
||||
doc
|
||||
61
|
||||
Comment
|
||||
doc
|
||||
62
|
||||
Character
|
||||
|
||||
?
|
||||
63
|
||||
Character
|
||||
|
||||
|
||||
64
|
||||
Character
|
||||
|
||||
|
||||
65
|
||||
Character
|
||||
|
||||
|
||||
66
|
||||
Character
|
||||
|
||||
|
||||
|
||||
67
|
||||
Character
|
||||
|
||||
|
||||
|
||||
68
|
||||
Character
|
||||
|
||||
|
||||
|
||||
69
|
||||
Character
|
||||
text
|
||||
|
||||
|
||||
text
|
||||
70
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
<none>
|
||||
71
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
<none>
|
||||
72
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
<none>
|
||||
73
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
<none>
|
||||
74
|
||||
DOCTYPE
|
||||
html
|
||||
<none>
|
||||
<none>
|
||||
Character
|
||||
text
|
||||
75
|
||||
StartTag
|
||||
a a=aa`
|
||||
76
|
||||
77
|
||||
78
|
||||
79
|
||||
80
|
||||
81
|
||||
82
|
||||
83
|
||||
84
|
970
result/html-tokenizer/unicodeChars.test
Normal file
970
result/html-tokenizer/unicodeChars.test
Normal file
@ -0,0 +1,970 @@
|
||||
0
|
||||
Character
|
||||
|
||||
1
|
||||
Character
|
||||
|
||||
2
|
||||
Character
|
||||
|
||||
3
|
||||
Character
|
||||
|
||||
4
|
||||
Character
|
||||
|
||||
5
|
||||
Character
|
||||
|
||||
6
|
||||
Character
|
||||
|
||||
7
|
||||
Character
|
||||
|
||||
8
|
||||
Character
|
||||
|
||||
9
|
||||
Character
|
||||
|
||||
10
|
||||
Character
|
||||
|
||||
11
|
||||
Character
|
||||
|
||||
12
|
||||
Character
|
||||
|
||||
13
|
||||
Character
|
||||
|
||||
14
|
||||
Character
|
||||
|
||||
15
|
||||
Character
|
||||
|
||||
16
|
||||
Character
|
||||
|
||||
17
|
||||
Character
|
||||
|
||||
18
|
||||
Character
|
||||
|
||||
19
|
||||
Character
|
||||
|
||||
20
|
||||
Character
|
||||
|
||||
21
|
||||
Character
|
||||
|
||||
22
|
||||
Character
|
||||
|
||||
23
|
||||
Character
|
||||
|
||||
24
|
||||
Character
|
||||
|
||||
25
|
||||
Character
|
||||
|
||||
26
|
||||
Character
|
||||
|
||||
27
|
||||
Character
|
||||
|
||||
28
|
||||
Character
|
||||
|
||||
29
|
||||
Character
|
||||
|
||||
30
|
||||
Character
|
||||
|
||||
31
|
||||
Character
|
||||
|
||||
32
|
||||
Character
|
||||
|
||||
33
|
||||
Character
|
||||
|
||||
34
|
||||
Character
|
||||
|
||||
35
|
||||
Character
|
||||
|
||||
36
|
||||
Character
|
||||
|
||||
37
|
||||
Character
|
||||
|
||||
38
|
||||
Character
|
||||
|
||||
39
|
||||
Character
|
||||
|
||||
40
|
||||
Character
|
||||
|
||||
41
|
||||
Character
|
||||
|
||||
42
|
||||
Character
|
||||
|
||||
43
|
||||
Character
|
||||
|
||||
44
|
||||
Character
|
||||
|
||||
45
|
||||
Character
|
||||
|
||||
46
|
||||
Character
|
||||
|
||||
47
|
||||
Character
|
||||
|
||||
48
|
||||
Character
|
||||
|
||||
49
|
||||
Character
|
||||
|
||||
50
|
||||
Character
|
||||
|
||||
51
|
||||
Character
|
||||
|
||||
52
|
||||
Character
|
||||
|
||||
53
|
||||
Character
|
||||
|
||||
54
|
||||
Character
|
||||
|
||||
55
|
||||
Character
|
||||
|
||||
56
|
||||
Character
|
||||
|
||||
57
|
||||
Character
|
||||
|
||||
58
|
||||
Character
|
||||
|
||||
59
|
||||
Character
|
||||
|
||||
60
|
||||
Character
|
||||
|
||||
61
|
||||
Character
|
||||
|
||||
62
|
||||
Character
|
||||
|
||||
63
|
||||
Character
|
||||
|
||||
64
|
||||
Character
|
||||
|
||||
65
|
||||
Character
|
||||
|
||||
66
|
||||
Character
|
||||
|
||||
67
|
||||
Character
|
||||
|
||||
68
|
||||
Character
|
||||
|
||||
69
|
||||
Character
|
||||
|
||||
70
|
||||
Character
|
||||
|
||||
71
|
||||
Character
|
||||
|
||||
72
|
||||
Character
|
||||
|
||||
73
|
||||
Character
|
||||
|
||||
74
|
||||
Character
|
||||
|
||||
75
|
||||
Character
|
||||
|
||||
76
|
||||
Character
|
||||
|
||||
77
|
||||
Character
|
||||
|
||||
78
|
||||
Character
|
||||
|
||||
79
|
||||
Character
|
||||
|
||||
80
|
||||
Character
|
||||
|
||||
81
|
||||
Character
|
||||
|
||||
82
|
||||
Character
|
||||
|
||||
83
|
||||
Character
|
||||
|
||||
84
|
||||
Character
|
||||
|
||||
85
|
||||
Character
|
||||
|
||||
86
|
||||
Character
|
||||
|
||||
87
|
||||
Character
|
||||
|
||||
88
|
||||
Character
|
||||
|
||||
89
|
||||
Character
|
||||
|
||||
90
|
||||
Character
|
||||
|
||||
91
|
||||
Character
|
||||
|
||||
92
|
||||
Character
|
||||
|
||||
93
|
||||
Character
|
||||
|
||||
94
|
||||
Character
|
||||
|
||||
95
|
||||
Character
|
||||
|
||||
|
||||
96
|
||||
Character
|
||||
|
||||
97
|
||||
Character
|
||||
!
|
||||
98
|
||||
Character
|
||||
"
|
||||
99
|
||||
Character
|
||||
#
|
||||
100
|
||||
Character
|
||||
$
|
||||
101
|
||||
Character
|
||||
%
|
||||
102
|
||||
Character
|
||||
&
|
||||
103
|
||||
Character
|
||||
'
|
||||
104
|
||||
Character
|
||||
(
|
||||
105
|
||||
Character
|
||||
)
|
||||
106
|
||||
Character
|
||||
*
|
||||
107
|
||||
Character
|
||||
+
|
||||
108
|
||||
Character
|
||||
,
|
||||
109
|
||||
Character
|
||||
-
|
||||
110
|
||||
Character
|
||||
.
|
||||
111
|
||||
Character
|
||||
/
|
||||
112
|
||||
Character
|
||||
0
|
||||
113
|
||||
Character
|
||||
1
|
||||
114
|
||||
Character
|
||||
2
|
||||
115
|
||||
Character
|
||||
3
|
||||
116
|
||||
Character
|
||||
4
|
||||
117
|
||||
Character
|
||||
5
|
||||
118
|
||||
Character
|
||||
6
|
||||
119
|
||||
Character
|
||||
7
|
||||
120
|
||||
Character
|
||||
8
|
||||
121
|
||||
Character
|
||||
9
|
||||
122
|
||||
Character
|
||||
:
|
||||
123
|
||||
Character
|
||||
;
|
||||
124
|
||||
Character
|
||||
=
|
||||
125
|
||||
Character
|
||||
>
|
||||
126
|
||||
Character
|
||||
?
|
||||
127
|
||||
Character
|
||||
@
|
||||
128
|
||||
Character
|
||||
A
|
||||
129
|
||||
Character
|
||||
B
|
||||
130
|
||||
Character
|
||||
C
|
||||
131
|
||||
Character
|
||||
D
|
||||
132
|
||||
Character
|
||||
E
|
||||
133
|
||||
Character
|
||||
F
|
||||
134
|
||||
Character
|
||||
G
|
||||
135
|
||||
Character
|
||||
H
|
||||
136
|
||||
Character
|
||||
I
|
||||
137
|
||||
Character
|
||||
J
|
||||
138
|
||||
Character
|
||||
K
|
||||
139
|
||||
Character
|
||||
L
|
||||
140
|
||||
Character
|
||||
M
|
||||
141
|
||||
Character
|
||||
N
|
||||
142
|
||||
Character
|
||||
O
|
||||
143
|
||||
Character
|
||||
P
|
||||
144
|
||||
Character
|
||||
Q
|
||||
145
|
||||
Character
|
||||
R
|
||||
146
|
||||
Character
|
||||
S
|
||||
147
|
||||
Character
|
||||
T
|
||||
148
|
||||
Character
|
||||
U
|
||||
149
|
||||
Character
|
||||
V
|
||||
150
|
||||
Character
|
||||
W
|
||||
151
|
||||
Character
|
||||
X
|
||||
152
|
||||
Character
|
||||
Y
|
||||
153
|
||||
Character
|
||||
Z
|
||||
154
|
||||
Character
|
||||
[
|
||||
155
|
||||
Character
|
||||
\
|
||||
156
|
||||
Character
|
||||
]
|
||||
157
|
||||
Character
|
||||
^
|
||||
158
|
||||
Character
|
||||
_
|
||||
159
|
||||
Character
|
||||
`
|
||||
160
|
||||
Character
|
||||
a
|
||||
161
|
||||
Character
|
||||
b
|
||||
162
|
||||
Character
|
||||
c
|
||||
163
|
||||
Character
|
||||
d
|
||||
164
|
||||
Character
|
||||
e
|
||||
165
|
||||
Character
|
||||
f
|
||||
166
|
||||
Character
|
||||
g
|
||||
167
|
||||
Character
|
||||
h
|
||||
168
|
||||
Character
|
||||
i
|
||||
169
|
||||
Character
|
||||
j
|
||||
170
|
||||
Character
|
||||
k
|
||||
171
|
||||
Character
|
||||
l
|
||||
172
|
||||
Character
|
||||
m
|
||||
173
|
||||
Character
|
||||
n
|
||||
174
|
||||
Character
|
||||
o
|
||||
175
|
||||
Character
|
||||
p
|
||||
176
|
||||
Character
|
||||
q
|
||||
177
|
||||
Character
|
||||
r
|
||||
178
|
||||
Character
|
||||
s
|
||||
179
|
||||
Character
|
||||
t
|
||||
180
|
||||
Character
|
||||
u
|
||||
181
|
||||
Character
|
||||
v
|
||||
182
|
||||
Character
|
||||
w
|
||||
183
|
||||
Character
|
||||
x
|
||||
184
|
||||
Character
|
||||
y
|
||||
185
|
||||
Character
|
||||
z
|
||||
186
|
||||
Character
|
||||
{
|
||||
187
|
||||
Character
|
||||
|
|
||||
188
|
||||
Character
|
||||
}
|
||||
189
|
||||
Character
|
||||
~
|
||||
190
|
||||
Character
|
||||
|
||||
191
|
||||
Character
|
||||
¡
|
||||
192
|
||||
Character
|
||||
¢
|
||||
193
|
||||
Character
|
||||
£
|
||||
194
|
||||
Character
|
||||
¤
|
||||
195
|
||||
Character
|
||||
¥
|
||||
196
|
||||
Character
|
||||
¦
|
||||
197
|
||||
Character
|
||||
§
|
||||
198
|
||||
Character
|
||||
¨
|
||||
199
|
||||
Character
|
||||
©
|
||||
200
|
||||
Character
|
||||
ª
|
||||
201
|
||||
Character
|
||||
«
|
||||
202
|
||||
Character
|
||||
¬
|
||||
203
|
||||
Character
|
||||
|
||||
204
|
||||
Character
|
||||
®
|
||||
205
|
||||
Character
|
||||
¯
|
||||
206
|
||||
Character
|
||||
°
|
||||
207
|
||||
Character
|
||||
±
|
||||
208
|
||||
Character
|
||||
²
|
||||
209
|
||||
Character
|
||||
³
|
||||
210
|
||||
Character
|
||||
´
|
||||
211
|
||||
Character
|
||||
µ
|
||||
212
|
||||
Character
|
||||
¶
|
||||
213
|
||||
Character
|
||||
·
|
||||
214
|
||||
Character
|
||||
¸
|
||||
215
|
||||
Character
|
||||
¹
|
||||
216
|
||||
Character
|
||||
º
|
||||
217
|
||||
Character
|
||||
»
|
||||
218
|
||||
Character
|
||||
¼
|
||||
219
|
||||
Character
|
||||
½
|
||||
220
|
||||
Character
|
||||
¾
|
||||
221
|
||||
Character
|
||||
¿
|
||||
222
|
||||
Character
|
||||
À
|
||||
223
|
||||
Character
|
||||
Á
|
||||
224
|
||||
Character
|
||||
Â
|
||||
225
|
||||
Character
|
||||
Ã
|
||||
226
|
||||
Character
|
||||
Ä
|
||||
227
|
||||
Character
|
||||
Å
|
||||
228
|
||||
Character
|
||||
Æ
|
||||
229
|
||||
Character
|
||||
Ç
|
||||
230
|
||||
Character
|
||||
È
|
||||
231
|
||||
Character
|
||||
É
|
||||
232
|
||||
Character
|
||||
Ê
|
||||
233
|
||||
Character
|
||||
Ë
|
||||
234
|
||||
Character
|
||||
Ì
|
||||
235
|
||||
Character
|
||||
Í
|
||||
236
|
||||
Character
|
||||
Î
|
||||
237
|
||||
Character
|
||||
Ï
|
||||
238
|
||||
Character
|
||||
Ð
|
||||
239
|
||||
Character
|
||||
Ñ
|
||||
240
|
||||
Character
|
||||
Ò
|
||||
241
|
||||
Character
|
||||
Ó
|
||||
242
|
||||
Character
|
||||
Ô
|
||||
243
|
||||
Character
|
||||
Õ
|
||||
244
|
||||
Character
|
||||
Ö
|
||||
245
|
||||
Character
|
||||
×
|
||||
246
|
||||
Character
|
||||
Ø
|
||||
247
|
||||
Character
|
||||
Ù
|
||||
248
|
||||
Character
|
||||
Ú
|
||||
249
|
||||
Character
|
||||
Û
|
||||
250
|
||||
Character
|
||||
Ü
|
||||
251
|
||||
Character
|
||||
Ý
|
||||
252
|
||||
Character
|
||||
Þ
|
||||
253
|
||||
Character
|
||||
ß
|
||||
254
|
||||
Character
|
||||
à
|
||||
255
|
||||
Character
|
||||
á
|
||||
256
|
||||
Character
|
||||
â
|
||||
257
|
||||
Character
|
||||
ã
|
||||
258
|
||||
Character
|
||||
ä
|
||||
259
|
||||
Character
|
||||
å
|
||||
260
|
||||
Character
|
||||
æ
|
||||
261
|
||||
Character
|
||||
ç
|
||||
262
|
||||
Character
|
||||
è
|
||||
263
|
||||
Character
|
||||
é
|
||||
264
|
||||
Character
|
||||
ê
|
||||
265
|
||||
Character
|
||||
ë
|
||||
266
|
||||
Character
|
||||
ì
|
||||
267
|
||||
Character
|
||||
í
|
||||
268
|
||||
Character
|
||||
î
|
||||
269
|
||||
Character
|
||||
ï
|
||||
270
|
||||
Character
|
||||
ð
|
||||
271
|
||||
Character
|
||||
ñ
|
||||
272
|
||||
Character
|
||||
ò
|
||||
273
|
||||
Character
|
||||
ó
|
||||
274
|
||||
Character
|
||||
ô
|
||||
275
|
||||
Character
|
||||
õ
|
||||
276
|
||||
Character
|
||||
ö
|
||||
277
|
||||
Character
|
||||
÷
|
||||
278
|
||||
Character
|
||||
ø
|
||||
279
|
||||
Character
|
||||
ù
|
||||
280
|
||||
Character
|
||||
ú
|
||||
281
|
||||
Character
|
||||
û
|
||||
282
|
||||
Character
|
||||
ü
|
||||
283
|
||||
Character
|
||||
ý
|
||||
284
|
||||
Character
|
||||
þ
|
||||
285
|
||||
Character
|
||||
ÿ
|
||||
286
|
||||
Character
|
||||
|
||||
287
|
||||
Character
|
||||
|
||||
288
|
||||
Character
|
||||
﷏
|
||||
289
|
||||
Character
|
||||
ﷰ
|
||||
290
|
||||
Character
|
||||
<EFBFBD>
|
||||
291
|
||||
Character
|
||||
𐀀
|
||||
292
|
||||
Character
|
||||
|
||||
293
|
||||
Character
|
||||
𠀀
|
||||
294
|
||||
Character
|
||||
|
||||
295
|
||||
Character
|
||||
𰀀
|
||||
296
|
||||
Character
|
||||
|
||||
297
|
||||
Character
|
||||
|
||||
298
|
||||
Character
|
||||
|
||||
299
|
||||
Character
|
||||
|
||||
300
|
||||
Character
|
||||
|
||||
301
|
||||
Character
|
||||
|
||||
302
|
||||
Character
|
||||
|
||||
303
|
||||
Character
|
||||
|
||||
304
|
||||
Character
|
||||
|
||||
305
|
||||
Character
|
||||
|
||||
306
|
||||
Character
|
||||
|
||||
307
|
||||
Character
|
||||
|
||||
308
|
||||
Character
|
||||
|
||||
309
|
||||
Character
|
||||
|
||||
310
|
||||
Character
|
||||
|
||||
311
|
||||
Character
|
||||
|
||||
312
|
||||
Character
|
||||
|
||||
313
|
||||
Character
|
||||
|
||||
314
|
||||
Character
|
||||
|
||||
315
|
||||
Character
|
||||
|
||||
316
|
||||
Character
|
||||
|
||||
317
|
||||
Character
|
||||
|
||||
318
|
||||
Character
|
||||
|
||||
319
|
||||
Character
|
||||
|
||||
320
|
||||
Character
|
||||
|
||||
321
|
||||
Character
|
||||
|
||||
322
|
||||
Character
|
||||
|
4
result/html-tokenizer/unicodeCharsProblematic.test
Normal file
4
result/html-tokenizer/unicodeCharsProblematic.test
Normal file
@ -0,0 +1,4 @@
|
||||
0
|
||||
Character
|
||||
|
||||
<EFBFBD>
|
230
runtest.c
230
runtest.c
@ -1600,6 +1600,231 @@ done:
|
||||
return(ret);
|
||||
}
|
||||
|
||||
#if defined(LIBXML_HTML_ENABLED) && defined(LIBXML_PUSH_ENABLED)
|
||||
typedef struct {
|
||||
int dataState;
|
||||
int inCharacters;
|
||||
const xmlChar *startTag;
|
||||
} xmlTokenizerConfig;
|
||||
|
||||
static void
|
||||
startDocumentTokenizer(void *ctx) {
|
||||
xmlParserCtxtPtr ctxt = ctx;
|
||||
xmlTokenizerConfig *config = ctxt->_private;
|
||||
|
||||
ctxt->instate = XML_PARSER_CONTENT;
|
||||
|
||||
if (config->dataState != 0) {
|
||||
ctxt->endCheckState = config->dataState;
|
||||
ctxt->name = config->startTag;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
pendingTokenizer(xmlTokenizerConfig *config) {
|
||||
if (config->inCharacters) {
|
||||
fprintf(SAXdebug, "\n");
|
||||
config->inCharacters = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
internalSubsetTokenizer(void *ctx, const xmlChar *name,
|
||||
const xmlChar *publicId, const xmlChar *systemId) {
|
||||
xmlParserCtxtPtr ctxt = ctx;
|
||||
xmlTokenizerConfig *config = ctxt->_private;
|
||||
|
||||
pendingTokenizer(config);
|
||||
|
||||
fprintf(SAXdebug, "DOCTYPE\n%s\n%s\n%s\n",
|
||||
name ? name : BAD_CAST "<none>",
|
||||
publicId ? publicId : BAD_CAST "<none>",
|
||||
systemId ? systemId : BAD_CAST "<none>");
|
||||
}
|
||||
|
||||
static void
|
||||
startElementTokenizer(void *ctx, const xmlChar *name, const xmlChar **atts) {
|
||||
xmlParserCtxtPtr ctxt = ctx;
|
||||
xmlTokenizerConfig *config = ctxt->_private;
|
||||
int i;
|
||||
|
||||
pendingTokenizer(config);
|
||||
|
||||
fprintf(SAXdebug, "StartTag\n%s", name);
|
||||
if (atts != NULL) {
|
||||
for (i = 0; atts[i] != NULL; i += 2) {
|
||||
fprintf(SAXdebug, " %s=", atts[i]);
|
||||
if (atts[i+1] != NULL)
|
||||
fprintf(SAXdebug, "%s", atts[i+1]);
|
||||
}
|
||||
}
|
||||
fprintf(SAXdebug, "\n");
|
||||
}
|
||||
|
||||
static void
|
||||
endElementTokenizer(void *ctx, const xmlChar *name) {
|
||||
xmlParserCtxtPtr ctxt = ctx;
|
||||
xmlTokenizerConfig *config = ctxt->_private;
|
||||
|
||||
pendingTokenizer(config);
|
||||
|
||||
fprintf(SAXdebug, "EndTag\n%s\n", name);
|
||||
}
|
||||
|
||||
static void
|
||||
charactersTokenizer(void *ctx, const xmlChar *ch, int len) {
|
||||
xmlParserCtxtPtr ctxt = ctx;
|
||||
xmlTokenizerConfig *config = ctxt->_private;
|
||||
|
||||
if (!config->inCharacters) {
|
||||
fprintf(SAXdebug, "Character\n");
|
||||
config->inCharacters = 1;
|
||||
}
|
||||
|
||||
fwrite(ch, 1, len, SAXdebug);
|
||||
}
|
||||
|
||||
static void
|
||||
commentTokenizer(void *ctx, const xmlChar *value) {
|
||||
xmlParserCtxtPtr ctxt = ctx;
|
||||
xmlTokenizerConfig *config = ctxt->_private;
|
||||
|
||||
pendingTokenizer(config);
|
||||
|
||||
fprintf(SAXdebug, "Comment\n%s\n", value);
|
||||
}
|
||||
|
||||
static void
|
||||
endDocumentTokenizer(void *ctx) {
|
||||
xmlParserCtxtPtr ctxt = ctx;
|
||||
xmlTokenizerConfig *config = ctxt->_private;
|
||||
|
||||
pendingTokenizer(config);
|
||||
}
|
||||
|
||||
static xmlSAXHandler tokenizeHtmlSAXHandler = {
|
||||
internalSubsetTokenizer,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
startDocumentTokenizer,
|
||||
endDocumentTokenizer,
|
||||
startElementTokenizer,
|
||||
endElementTokenizer,
|
||||
NULL,
|
||||
charactersTokenizer,
|
||||
NULL,
|
||||
NULL,
|
||||
commentTokenizer,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
1,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
/**
|
||||
* htmlTokenizerTest:
|
||||
* @filename: the file to parse
|
||||
* @result: the file with expected result
|
||||
* @err: the file with error messages
|
||||
*
|
||||
* Parse a file using the SAX API and check for errors.
|
||||
*
|
||||
* Returns 0 in case of success, an error code otherwise
|
||||
*/
|
||||
static int
|
||||
htmlTokenizerTest(const char *filename, const char *result,
|
||||
const char *err ATTRIBUTE_UNUSED,
|
||||
int options) {
|
||||
xmlTokenizerConfig config;
|
||||
char startTag[31];
|
||||
FILE *input;
|
||||
char *temp;
|
||||
unsigned testNum, dataState, size;
|
||||
int ret = 0, counter = 0;
|
||||
|
||||
nb_tests++;
|
||||
temp = resultFilename(filename, temp_directory, ".res");
|
||||
if (temp == NULL) {
|
||||
fprintf(stderr, "out of memory\n");
|
||||
fatalError();
|
||||
}
|
||||
|
||||
SAXdebug = fopen(temp, "wb");
|
||||
if (SAXdebug == NULL) {
|
||||
fprintf(stderr, "Failed to write to %s\n", temp);
|
||||
free(temp);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
input = fopen(filename, "rb");
|
||||
if (input == NULL) {
|
||||
fprintf(stderr, "%s: failed to open\n", filename);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
while (fscanf(input, "%u %30s %u %u%*1[\n]",
|
||||
&testNum, startTag, &dataState, &size) >= 4) {
|
||||
htmlParserCtxtPtr ctxt;
|
||||
char *data;
|
||||
|
||||
fprintf(SAXdebug, "%d\n", counter++);
|
||||
|
||||
data = xmlMalloc(size + 1);
|
||||
if (fread(data, 1, size, input) != size) {
|
||||
fprintf(stderr, "%s:%d: unexpected eof\n", filename, counter);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
ctxt = htmlCreatePushParserCtxt(&tokenizeHtmlSAXHandler, NULL, NULL, 0,
|
||||
NULL, XML_CHAR_ENCODING_UTF8);
|
||||
config.dataState = dataState;
|
||||
config.startTag = BAD_CAST startTag;
|
||||
config.inCharacters = 0;
|
||||
ctxt->_private = &config;
|
||||
htmlCtxtUseOptions(ctxt, options | HTML_PARSE_HTML5);
|
||||
htmlParseChunk(ctxt, data, size, 1);
|
||||
htmlFreeParserCtxt(ctxt);
|
||||
|
||||
xmlFree(data);
|
||||
}
|
||||
if (!feof(input)) {
|
||||
fprintf(stderr, "%s:%d: invalid format\n", filename, counter);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
fclose(input);
|
||||
fclose(SAXdebug);
|
||||
|
||||
if (compareFiles(temp, result)) {
|
||||
fprintf(stderr, "Got a difference for %s\n", filename);
|
||||
ret = 1;
|
||||
}
|
||||
|
||||
if (temp != NULL) {
|
||||
unlink(temp);
|
||||
free(temp);
|
||||
}
|
||||
|
||||
return(ret);
|
||||
}
|
||||
#endif /* HTML */
|
||||
|
||||
/************************************************************************
|
||||
* *
|
||||
* Parse to tree based tests *
|
||||
@ -4954,6 +5179,11 @@ testDesc testDescriptions[] = {
|
||||
{ "HTML SAX regression tests" ,
|
||||
saxParseTest, "./test/HTML/*", "result/HTML/", ".sax", NULL,
|
||||
XML_PARSE_HTML },
|
||||
#ifdef LIBXML_PUSH_ENABLED
|
||||
{ "HTML tokenization tests",
|
||||
htmlTokenizerTest,
|
||||
"./test/html-tokenizer/*.test", "result/html-tokenizer/", "", NULL, 0 },
|
||||
#endif
|
||||
#endif
|
||||
#ifdef LIBXML_VALID_ENABLED
|
||||
{ "Valid documents regression tests" ,
|
||||
|
27
test/html-tokenizer/NOTICE
Normal file
27
test/html-tokenizer/NOTICE
Normal file
@ -0,0 +1,27 @@
|
||||
The test cases in this directory are derived from the html5lib test
|
||||
suite available from https://github.com/html5lib/html5lib-tests under
|
||||
the following license:
|
||||
|
||||
---
|
||||
|
||||
Copyright (c) 2006-2013 James Graham, Geoffrey Sneddon, and
|
||||
other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
48
test/html-tokenizer/contentModelFlags.test
Normal file
48
test/html-tokenizer/contentModelFlags.test
Normal file
@ -0,0 +1,48 @@
|
||||
0 plaintext 3 12
|
||||
<head>&body;
|
||||
1 plaintext 3 18
|
||||
</plaintext>&body;
|
||||
2 xmp 1 9
|
||||
foo</xmp>
|
||||
3 xmp 2 9
|
||||
foo</xmp>
|
||||
4 xmp 1 9
|
||||
foo</xMp>
|
||||
5 xmp 2 9
|
||||
foo</xMp>
|
||||
6 xmp 1 9
|
||||
foo</xmp
|
||||
7 xmp 2 9
|
||||
foo</xmp
|
||||
8 xmp 1 8
|
||||
foo</xmp
|
||||
9 xmp 2 8
|
||||
foo</xmp
|
||||
10 xmp 1 9
|
||||
foo</xmp/
|
||||
11 xmp 2 9
|
||||
foo</xmp/
|
||||
12 xmp 1 9
|
||||
foo</xmp<
|
||||
13 xmp 2 9
|
||||
foo</xmp<
|
||||
14 xmp 1 15
|
||||
</foo>bar</xmp>
|
||||
15 xmp 2 15
|
||||
</foo>bar</xmp>
|
||||
16 xmp 1 16
|
||||
</xmp</xmp</xmp>
|
||||
17 xmp 2 16
|
||||
</xmp</xmp</xmp>
|
||||
18 xmp 1 18
|
||||
</foo>bar</xmpaar>
|
||||
19 xmp 2 18
|
||||
</foo>bar</xmpaar>
|
||||
20 xmp 1 15
|
||||
foo</xmp></baz>
|
||||
21 xmp 2 15
|
||||
foo</xmp></baz>
|
||||
22 xmp 2 5
|
||||
&foo;
|
||||
23 textarea 1 4
|
||||
<
|
BIN
test/html-tokenizer/domjs.test
Normal file
BIN
test/html-tokenizer/domjs.test
Normal file
Binary file not shown.
160
test/html-tokenizer/entities.test
Normal file
160
test/html-tokenizer/entities.test
Normal file
@ -0,0 +1,160 @@
|
||||
0 - 0 14
|
||||
<h a="¬i;">
|
||||
1 - 0 14
|
||||
<h a="&lang=">
|
||||
2 - 0 13
|
||||
<h a="¬=">
|
||||
3 - 0 14
|
||||
<h a='¬i;'>
|
||||
4 - 0 14
|
||||
<h a='&lang='>
|
||||
5 - 0 13
|
||||
<h a='¬='>
|
||||
6 - 0 12
|
||||
<h a=¬i;>
|
||||
7 - 0 12
|
||||
<h a=&lang=>
|
||||
8 - 0 11
|
||||
<h a=¬=>
|
||||
9 - 0 14
|
||||
&rrrraannddom;
|
||||
10 - 0 6
|
||||
¬i;
|
||||
11 - 0 950
|
||||
&ammmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmp;
|
||||
12 - 0 6
|
||||

|
||||
13 - 0 7
|
||||

|
||||
14 - 0 7
|
||||
€
|
||||
15 - 0 7
|
||||

|
||||
16 - 0 7
|
||||
‚
|
||||
17 - 0 7
|
||||
ƒ
|
||||
18 - 0 7
|
||||
„
|
||||
19 - 0 7
|
||||
…
|
||||
20 - 0 7
|
||||
†
|
||||
21 - 0 7
|
||||
‡
|
||||
22 - 0 7
|
||||
ˆ
|
||||
23 - 0 7
|
||||
‰
|
||||
24 - 0 7
|
||||
Š
|
||||
25 - 0 7
|
||||
‹
|
||||
26 - 0 7
|
||||
Œ
|
||||
27 - 0 7
|
||||

|
||||
28 - 0 7
|
||||
Ž
|
||||
29 - 0 7
|
||||

|
||||
30 - 0 7
|
||||

|
||||
31 - 0 7
|
||||
‘
|
||||
32 - 0 7
|
||||
’
|
||||
33 - 0 7
|
||||
“
|
||||
34 - 0 7
|
||||
”
|
||||
35 - 0 7
|
||||
•
|
||||
36 - 0 7
|
||||
–
|
||||
37 - 0 7
|
||||
—
|
||||
38 - 0 7
|
||||
˜
|
||||
39 - 0 7
|
||||
™
|
||||
40 - 0 7
|
||||
š
|
||||
41 - 0 7
|
||||
›
|
||||
42 - 0 7
|
||||
œ
|
||||
43 - 0 7
|
||||

|
||||
44 - 0 7
|
||||
€
|
||||
45 - 0 7
|
||||

|
||||
46 - 0 7
|
||||
‚
|
||||
47 - 0 7
|
||||
ƒ
|
||||
48 - 0 7
|
||||
„
|
||||
49 - 0 7
|
||||
…
|
||||
50 - 0 7
|
||||
†
|
||||
51 - 0 7
|
||||
‡
|
||||
52 - 0 7
|
||||
ˆ
|
||||
53 - 0 7
|
||||
‰
|
||||
54 - 0 7
|
||||
Š
|
||||
55 - 0 7
|
||||
‹
|
||||
56 - 0 7
|
||||
Œ
|
||||
57 - 0 7
|
||||

|
||||
58 - 0 7
|
||||
Ž
|
||||
59 - 0 7
|
||||

|
||||
60 - 0 7
|
||||

|
||||
61 - 0 7
|
||||
‘
|
||||
62 - 0 7
|
||||
’
|
||||
63 - 0 7
|
||||
“
|
||||
64 - 0 7
|
||||
”
|
||||
65 - 0 7
|
||||
•
|
||||
66 - 0 7
|
||||
–
|
||||
67 - 0 7
|
||||
—
|
||||
68 - 0 7
|
||||
˜
|
||||
69 - 0 7
|
||||
™
|
||||
70 - 0 7
|
||||
š
|
||||
71 - 0 7
|
||||
›
|
||||
72 - 0 7
|
||||
œ
|
||||
73 - 0 7
|
||||

|
||||
74 - 0 7
|
||||
ž
|
||||
75 - 0 7
|
||||
Ÿ
|
||||
76 - 0 5
|
||||
aa
|
||||
77 - 0 5
|
||||
aA
|
||||
78 - 0 5
|
||||
af
|
||||
79 - 0 5
|
||||
aF
|
18
test/html-tokenizer/escapeFlag.test
Normal file
18
test/html-tokenizer/escapeFlag.test
Normal file
@ -0,0 +1,18 @@
|
||||
0 xmp 1 22
|
||||
foo<!--</xmp>--></xmp>
|
||||
1 xmp 2 22
|
||||
foo<!--</xmp>--></xmp>
|
||||
2 xmp 1 17
|
||||
foo<!-->baz</xmp>
|
||||
3 xmp 2 17
|
||||
foo<!-->baz</xmp>
|
||||
4 xmp 1 28
|
||||
foo<!--></xmp><!-->baz</xmp>
|
||||
5 xmp 2 28
|
||||
foo<!--></xmp><!-->baz</xmp>
|
||||
6 xmp 1 34
|
||||
& <!-- & --> & </xmp>
|
||||
7 xmp 1 35
|
||||
foo<!-- x --x>x-- >x--!>x--<></xmp>
|
||||
8 xmp 2 35
|
||||
foo<!-- x --x>x-- >x--!>x--<></xmp>
|
8420
test/html-tokenizer/namedEntities.test
Normal file
8420
test/html-tokenizer/namedEntities.test
Normal file
File diff suppressed because it is too large
Load Diff
672
test/html-tokenizer/numericEntities.test
Normal file
672
test/html-tokenizer/numericEntities.test
Normal file
@ -0,0 +1,672 @@
|
||||
0 - 0 13
|
||||
�
|
||||
1 - 0 12
|
||||
�
|
||||
2 - 0 14
|
||||
�
|
||||
3 - 0 14
|
||||
�x
|
||||
4 - 0 13
|
||||
�x
|
||||
5 - 0 15
|
||||
�x
|
||||
6 - 0 14
|
||||
�
|
||||
7 - 0 13
|
||||
�
|
||||
8 - 0 15
|
||||
�
|
||||
9 - 0 8
|
||||
�
|
||||
10 - 0 8
|
||||

|
||||
11 - 0 8
|
||||

|
||||
12 - 0 8
|
||||

|
||||
13 - 0 8
|
||||

|
||||
14 - 0 8
|
||||

|
||||
15 - 0 8
|
||||

|
||||
16 - 0 8
|
||||

|
||||
17 - 0 8
|
||||

|
||||
18 - 0 8
|
||||

|
||||
19 - 0 8
|
||||

|
||||
20 - 0 8
|
||||

|
||||
21 - 0 8
|
||||

|
||||
22 - 0 8
|
||||

|
||||
23 - 0 8
|
||||

|
||||
24 - 0 8
|
||||

|
||||
25 - 0 8
|
||||

|
||||
26 - 0 8
|
||||

|
||||
27 - 0 8
|
||||

|
||||
28 - 0 8
|
||||

|
||||
29 - 0 8
|
||||

|
||||
30 - 0 8
|
||||

|
||||
31 - 0 8
|
||||

|
||||
32 - 0 8
|
||||

|
||||
33 - 0 8
|
||||

|
||||
34 - 0 8
|
||||

|
||||
35 - 0 8
|
||||

|
||||
36 - 0 8
|
||||

|
||||
37 - 0 8
|
||||

|
||||
38 - 0 8
|
||||
�
|
||||
39 - 0 8
|
||||
�
|
||||
40 - 0 8
|
||||

|
||||
41 - 0 8
|
||||

|
||||
42 - 0 8
|
||||

|
||||
43 - 0 8
|
||||

|
||||
44 - 0 8
|
||||

|
||||
45 - 0 8
|
||||

|
||||
46 - 0 8
|
||||

|
||||
47 - 0 8
|
||||

|
||||
48 - 0 8
|
||||

|
||||
49 - 0 8
|
||||

|
||||
50 - 0 8
|
||||

|
||||
51 - 0 8
|
||||

|
||||
52 - 0 8
|
||||

|
||||
53 - 0 8
|
||||

|
||||
54 - 0 8
|
||||

|
||||
55 - 0 8
|
||||

|
||||
56 - 0 8
|
||||

|
||||
57 - 0 8
|
||||

|
||||
58 - 0 8
|
||||

|
||||
59 - 0 8
|
||||

|
||||
60 - 0 8
|
||||

|
||||
61 - 0 8
|
||||

|
||||
62 - 0 8
|
||||

|
||||
63 - 0 8
|
||||

|
||||
64 - 0 8
|
||||

|
||||
65 - 0 8
|
||||

|
||||
66 - 0 8
|
||||

|
||||
67 - 0 8
|
||||

|
||||
68 - 0 8
|
||||

|
||||
69 - 0 8
|
||||

|
||||
70 - 0 8
|
||||

|
||||
71 - 0 8
|
||||

|
||||
72 - 0 8
|
||||

|
||||
73 - 0 8
|
||||

|
||||
74 - 0 9
|
||||

|
||||
75 - 0 9
|
||||

|
||||
76 - 0 9
|
||||

|
||||
77 - 0 9
|
||||

|
||||
78 - 0 9
|
||||

|
||||
79 - 0 9
|
||||

|
||||
80 - 0 9
|
||||

|
||||
81 - 0 9
|
||||

|
||||
82 - 0 9
|
||||

|
||||
83 - 0 9
|
||||

|
||||
84 - 0 9
|
||||

|
||||
85 - 0 9
|
||||

|
||||
86 - 0 9
|
||||

|
||||
87 - 0 9
|
||||

|
||||
88 - 0 9
|
||||

|
||||
89 - 0 9
|
||||

|
||||
90 - 0 9
|
||||

|
||||
91 - 0 9
|
||||

|
||||
92 - 0 9
|
||||

|
||||
93 - 0 9
|
||||

|
||||
94 - 0 9
|
||||

|
||||
95 - 0 9
|
||||

|
||||
96 - 0 9
|
||||

|
||||
97 - 0 9
|
||||

|
||||
98 - 0 9
|
||||

|
||||
99 - 0 9
|
||||

|
||||
100 - 0 9
|
||||

|
||||
101 - 0 9
|
||||

|
||||
102 - 0 9
|
||||

|
||||
103 - 0 9
|
||||

|
||||
104 - 0 10
|
||||

|
||||
105 - 0 10
|
||||

|
||||
106 - 0 8
|
||||
	
|
||||
107 - 0 8
|
||||


|
||||
108 - 0 8
|
||||
 
|
||||
109 - 0 8
|
||||
!
|
||||
110 - 0 8
|
||||
"
|
||||
111 - 0 8
|
||||
#
|
||||
112 - 0 8
|
||||
$
|
||||
113 - 0 8
|
||||
%
|
||||
114 - 0 8
|
||||
&
|
||||
115 - 0 8
|
||||
'
|
||||
116 - 0 8
|
||||
(
|
||||
117 - 0 8
|
||||
)
|
||||
118 - 0 8
|
||||
*
|
||||
119 - 0 8
|
||||
+
|
||||
120 - 0 8
|
||||
,
|
||||
121 - 0 8
|
||||
-
|
||||
122 - 0 8
|
||||
.
|
||||
123 - 0 8
|
||||
/
|
||||
124 - 0 8
|
||||
0
|
||||
125 - 0 8
|
||||
1
|
||||
126 - 0 8
|
||||
2
|
||||
127 - 0 8
|
||||
3
|
||||
128 - 0 8
|
||||
4
|
||||
129 - 0 8
|
||||
5
|
||||
130 - 0 8
|
||||
6
|
||||
131 - 0 8
|
||||
7
|
||||
132 - 0 8
|
||||
8
|
||||
133 - 0 8
|
||||
9
|
||||
134 - 0 8
|
||||
:
|
||||
135 - 0 8
|
||||
;
|
||||
136 - 0 8
|
||||
<
|
||||
137 - 0 8
|
||||
=
|
||||
138 - 0 8
|
||||
>
|
||||
139 - 0 8
|
||||
?
|
||||
140 - 0 8
|
||||
@
|
||||
141 - 0 8
|
||||
A
|
||||
142 - 0 8
|
||||
B
|
||||
143 - 0 8
|
||||
C
|
||||
144 - 0 8
|
||||
D
|
||||
145 - 0 8
|
||||
E
|
||||
146 - 0 8
|
||||
F
|
||||
147 - 0 8
|
||||
G
|
||||
148 - 0 8
|
||||
H
|
||||
149 - 0 8
|
||||
I
|
||||
150 - 0 8
|
||||
J
|
||||
151 - 0 8
|
||||
K
|
||||
152 - 0 8
|
||||
L
|
||||
153 - 0 8
|
||||
M
|
||||
154 - 0 8
|
||||
N
|
||||
155 - 0 8
|
||||
O
|
||||
156 - 0 8
|
||||
P
|
||||
157 - 0 8
|
||||
Q
|
||||
158 - 0 8
|
||||
R
|
||||
159 - 0 8
|
||||
S
|
||||
160 - 0 8
|
||||
T
|
||||
161 - 0 8
|
||||
U
|
||||
162 - 0 8
|
||||
V
|
||||
163 - 0 8
|
||||
W
|
||||
164 - 0 8
|
||||
X
|
||||
165 - 0 8
|
||||
Y
|
||||
166 - 0 8
|
||||
Z
|
||||
167 - 0 8
|
||||
[
|
||||
168 - 0 8
|
||||
\
|
||||
169 - 0 8
|
||||
]
|
||||
170 - 0 8
|
||||
^
|
||||
171 - 0 8
|
||||
_
|
||||
172 - 0 8
|
||||
`
|
||||
173 - 0 8
|
||||
a
|
||||
174 - 0 8
|
||||
b
|
||||
175 - 0 8
|
||||
c
|
||||
176 - 0 8
|
||||
d
|
||||
177 - 0 8
|
||||
e
|
||||
178 - 0 8
|
||||
f
|
||||
179 - 0 8
|
||||
g
|
||||
180 - 0 8
|
||||
h
|
||||
181 - 0 8
|
||||
i
|
||||
182 - 0 8
|
||||
j
|
||||
183 - 0 8
|
||||
k
|
||||
184 - 0 8
|
||||
l
|
||||
185 - 0 8
|
||||
m
|
||||
186 - 0 8
|
||||
n
|
||||
187 - 0 8
|
||||
o
|
||||
188 - 0 8
|
||||
p
|
||||
189 - 0 8
|
||||
q
|
||||
190 - 0 8
|
||||
r
|
||||
191 - 0 8
|
||||
s
|
||||
192 - 0 8
|
||||
t
|
||||
193 - 0 8
|
||||
u
|
||||
194 - 0 8
|
||||
v
|
||||
195 - 0 8
|
||||
w
|
||||
196 - 0 8
|
||||
x
|
||||
197 - 0 8
|
||||
y
|
||||
198 - 0 8
|
||||
z
|
||||
199 - 0 8
|
||||
{
|
||||
200 - 0 8
|
||||
|
|
||||
201 - 0 8
|
||||
}
|
||||
202 - 0 8
|
||||
~
|
||||
203 - 0 8
|
||||
 
|
||||
204 - 0 8
|
||||
¡
|
||||
205 - 0 8
|
||||
¢
|
||||
206 - 0 8
|
||||
£
|
||||
207 - 0 8
|
||||
¤
|
||||
208 - 0 8
|
||||
¥
|
||||
209 - 0 8
|
||||
¦
|
||||
210 - 0 8
|
||||
§
|
||||
211 - 0 8
|
||||
¨
|
||||
212 - 0 8
|
||||
©
|
||||
213 - 0 8
|
||||
ª
|
||||
214 - 0 8
|
||||
«
|
||||
215 - 0 8
|
||||
¬
|
||||
216 - 0 8
|
||||
­
|
||||
217 - 0 8
|
||||
®
|
||||
218 - 0 8
|
||||
¯
|
||||
219 - 0 8
|
||||
°
|
||||
220 - 0 8
|
||||
±
|
||||
221 - 0 8
|
||||
²
|
||||
222 - 0 8
|
||||
³
|
||||
223 - 0 8
|
||||
´
|
||||
224 - 0 8
|
||||
µ
|
||||
225 - 0 8
|
||||
¶
|
||||
226 - 0 8
|
||||
·
|
||||
227 - 0 8
|
||||
¸
|
||||
228 - 0 8
|
||||
¹
|
||||
229 - 0 8
|
||||
º
|
||||
230 - 0 8
|
||||
»
|
||||
231 - 0 8
|
||||
¼
|
||||
232 - 0 8
|
||||
½
|
||||
233 - 0 8
|
||||
¾
|
||||
234 - 0 8
|
||||
¿
|
||||
235 - 0 8
|
||||
À
|
||||
236 - 0 8
|
||||
Á
|
||||
237 - 0 8
|
||||
Â
|
||||
238 - 0 8
|
||||
Ã
|
||||
239 - 0 8
|
||||
Ä
|
||||
240 - 0 8
|
||||
Å
|
||||
241 - 0 8
|
||||
Æ
|
||||
242 - 0 8
|
||||
Ç
|
||||
243 - 0 8
|
||||
È
|
||||
244 - 0 8
|
||||
É
|
||||
245 - 0 8
|
||||
Ê
|
||||
246 - 0 8
|
||||
Ë
|
||||
247 - 0 8
|
||||
Ì
|
||||
248 - 0 8
|
||||
Í
|
||||
249 - 0 8
|
||||
Î
|
||||
250 - 0 8
|
||||
Ï
|
||||
251 - 0 8
|
||||
Ð
|
||||
252 - 0 8
|
||||
Ñ
|
||||
253 - 0 8
|
||||
Ò
|
||||
254 - 0 8
|
||||
Ó
|
||||
255 - 0 8
|
||||
Ô
|
||||
256 - 0 8
|
||||
Õ
|
||||
257 - 0 8
|
||||
Ö
|
||||
258 - 0 8
|
||||
×
|
||||
259 - 0 8
|
||||
Ø
|
||||
260 - 0 8
|
||||
Ù
|
||||
261 - 0 8
|
||||
Ú
|
||||
262 - 0 8
|
||||
Û
|
||||
263 - 0 8
|
||||
Ü
|
||||
264 - 0 8
|
||||
Ý
|
||||
265 - 0 8
|
||||
Þ
|
||||
266 - 0 8
|
||||
ß
|
||||
267 - 0 8
|
||||
à
|
||||
268 - 0 8
|
||||
á
|
||||
269 - 0 8
|
||||
â
|
||||
270 - 0 8
|
||||
ã
|
||||
271 - 0 8
|
||||
ä
|
||||
272 - 0 8
|
||||
å
|
||||
273 - 0 8
|
||||
æ
|
||||
274 - 0 8
|
||||
ç
|
||||
275 - 0 8
|
||||
è
|
||||
276 - 0 8
|
||||
é
|
||||
277 - 0 8
|
||||
ê
|
||||
278 - 0 8
|
||||
ë
|
||||
279 - 0 8
|
||||
ì
|
||||
280 - 0 8
|
||||
í
|
||||
281 - 0 8
|
||||
î
|
||||
282 - 0 8
|
||||
ï
|
||||
283 - 0 8
|
||||
ð
|
||||
284 - 0 8
|
||||
ñ
|
||||
285 - 0 8
|
||||
ò
|
||||
286 - 0 8
|
||||
ó
|
||||
287 - 0 8
|
||||
ô
|
||||
288 - 0 8
|
||||
õ
|
||||
289 - 0 8
|
||||
ö
|
||||
290 - 0 8
|
||||
÷
|
||||
291 - 0 8
|
||||
ø
|
||||
292 - 0 8
|
||||
ù
|
||||
293 - 0 8
|
||||
ú
|
||||
294 - 0 8
|
||||
û
|
||||
295 - 0 8
|
||||
ü
|
||||
296 - 0 8
|
||||
ý
|
||||
297 - 0 8
|
||||
þ
|
||||
298 - 0 8
|
||||
ÿ
|
||||
299 - 0 8
|
||||
퟿
|
||||
300 - 0 8
|
||||

|
||||
301 - 0 8
|
||||
﷏
|
||||
302 - 0 8
|
||||
ﷰ
|
||||
303 - 0 8
|
||||
�
|
||||
304 - 0 9
|
||||
𐀀
|
||||
305 - 0 9
|
||||
🿽
|
||||
306 - 0 9
|
||||
𠀀
|
||||
307 - 0 9
|
||||
𯿽
|
||||
308 - 0 9
|
||||
𰀀
|
||||
309 - 0 9
|
||||
𿿽
|
||||
310 - 0 9
|
||||
񀀀
|
||||
311 - 0 9
|
||||
񏿽
|
||||
312 - 0 9
|
||||
񐀀
|
||||
313 - 0 9
|
||||
񟿽
|
||||
314 - 0 9
|
||||
񠀀
|
||||
315 - 0 9
|
||||
񯿽
|
||||
316 - 0 9
|
||||
񰀀
|
||||
317 - 0 9
|
||||
񿿽
|
||||
318 - 0 9
|
||||
򀀀
|
||||
319 - 0 9
|
||||
򏿽
|
||||
320 - 0 9
|
||||
򐀀
|
||||
321 - 0 9
|
||||
򟿽
|
||||
322 - 0 9
|
||||
򠀀
|
||||
323 - 0 9
|
||||
򯿽
|
||||
324 - 0 9
|
||||
򰀀
|
||||
325 - 0 9
|
||||
򿿽
|
||||
326 - 0 9
|
||||
󀀀
|
||||
327 - 0 9
|
||||
󏿽
|
||||
328 - 0 9
|
||||
󐀀
|
||||
329 - 0 9
|
||||
󟿽
|
||||
330 - 0 9
|
||||
󠀀
|
||||
331 - 0 9
|
||||
󯿽
|
||||
332 - 0 9
|
||||
󰀀
|
||||
333 - 0 9
|
||||
󿿽
|
||||
334 - 0 10
|
||||
􀀀
|
||||
335 - 0 10
|
||||
􏿽
|
2
test/html-tokenizer/pendingSpecChanges.test
Normal file
2
test/html-tokenizer/pendingSpecChanges.test
Normal file
@ -0,0 +1,2 @@
|
||||
0 - 0 8
|
||||
<!---- >
|
138
test/html-tokenizer/test1.test
Normal file
138
test/html-tokenizer/test1.test
Normal file
@ -0,0 +1,138 @@
|
||||
0 - 0 15
|
||||
<!DOCTYPE html>
|
||||
1 - 0 15
|
||||
<!DOCTYPE HTML>
|
||||
2 - 0 15
|
||||
<!DOCTYPE HtMl>
|
||||
3 - 0 14
|
||||
<!DOCTYPE HtMl
|
||||
4 - 0 6
|
||||
<!DOC>
|
||||
5 - 0 14
|
||||
<!DOCTYPE foo>
|
||||
6 - 0 3
|
||||
<h>
|
||||
7 - 0 3
|
||||
</>
|
||||
8 - 0 2
|
||||
<>
|
||||
9 - 0 9
|
||||
<h a='b'>
|
||||
10 - 0 7
|
||||
<h a=b>
|
||||
11 - 0 7
|
||||
<h></h>
|
||||
12 - 0 12
|
||||
<p>One<p>Two
|
||||
13 - 0 13
|
||||
<h></h a='b'>
|
||||
14 - 0 15
|
||||
<h a='b' c='d'>
|
||||
15 - 0 14
|
||||
<h a='b'c='d'>
|
||||
16 - 0 15
|
||||
<h a='b' a='d'>
|
||||
17 - 0 14
|
||||
<!--comment-->
|
||||
18 - 0 8
|
||||
<!----->
|
||||
19 - 0 18
|
||||
<!-- --comment -->
|
||||
20 - 0 9
|
||||
<!--<!-->
|
||||
21 - 0 11
|
||||
<!--comment
|
||||
22 - 0 9
|
||||
<!-- <!--
|
||||
23 - 0 3
|
||||
<!-
|
||||
24 - 0 5
|
||||
<!-->
|
||||
25 - 0 6
|
||||
<!--->
|
||||
26 - 0 7
|
||||
<!---->
|
||||
27 - 0 13
|
||||
<!-- <test-->
|
||||
28 - 0 9
|
||||
<!--<<-->
|
||||
29 - 0 14
|
||||
<!-- <!test-->
|
||||
30 - 0 15
|
||||
<!-- <!-test-->
|
||||
31 - 0 16
|
||||
<!-- <!--test-->
|
||||
32 - 0 17
|
||||
<!-- <<!--test-->
|
||||
33 - 4 8
|
||||
<test-->
|
||||
34 - 4 9
|
||||
<!test-->
|
||||
35 - 4 10
|
||||
<!-test-->
|
||||
36 - 4 11
|
||||
<!--test-->
|
||||
37 - 4 15
|
||||
<!-- < test -->
|
||||
38 - 4 16
|
||||
<!-- </ test -->
|
||||
39 - 4 15
|
||||
<!-- <test> -->
|
||||
40 - 4 16
|
||||
<!-- </test> -->
|
||||
41 - 4 25
|
||||
<!--<script>-</script>-->
|
||||
42 - 4 26
|
||||
<!--<script>--</script>-->
|
||||
43 - 4 27
|
||||
<!--<script>---</script>-->
|
||||
44 - 4 27
|
||||
<!--<script> - </script>-->
|
||||
45 - 4 28
|
||||
<!--<script> -- </script>-->
|
||||
46 - 0 1
|
||||
&
|
||||
47 - 0 2
|
||||
&&
|
||||
48 - 0 2
|
||||
&
|
||||
49 - 0 2
|
||||
&f
|
||||
50 - 0 2
|
||||
&#
|
||||
51 - 0 3
|
||||
&#x
|
||||
52 - 0 11
|
||||
I'm ¬it
|
||||
53 - 0 11
|
||||
I'm ∉
|
||||
54 - 0 10
|
||||
I'm ¬it
|
||||
55 - 0 10
|
||||
I'm ¬in
|
||||
56 - 0 7
|
||||
I'm &no
|
||||
57 - 0 4
|
||||
&¬;
|
||||
58 - 0 7
|
||||
$
|
||||
59 - 0 6
|
||||
?
|
||||
60 - 0 18
|
||||
<h a='?'></h>
|
||||
61 - 0 13
|
||||
<h a='¬x'>
|
||||
62 - 0 13
|
||||
<h a='¬1'>
|
||||
63 - 0 13
|
||||
<h a='¬i'>
|
||||
64 - 0 13
|
||||
<h a='©'>
|
||||
65 - 0 9
|
||||
<s o=& t>
|
||||
66 - 0 11
|
||||
<a a=a&>foo
|
||||
67 - 0 17
|
||||
<plaintext>foobar
|
||||
68 - 0 8
|
||||
<a a=f<>
|
BIN
test/html-tokenizer/test2.test
Normal file
BIN
test/html-tokenizer/test2.test
Normal file
Binary file not shown.
BIN
test/html-tokenizer/test3.test
Normal file
BIN
test/html-tokenizer/test3.test
Normal file
Binary file not shown.
BIN
test/html-tokenizer/test4.test
Normal file
BIN
test/html-tokenizer/test4.test
Normal file
Binary file not shown.
647
test/html-tokenizer/unicodeChars.test
Normal file
647
test/html-tokenizer/unicodeChars.test
Normal file
@ -0,0 +1,647 @@
|
||||
0 - 0 1
|
||||
|
||||
1 - 0 1
|
||||
|
||||
2 - 0 1
|
||||
|
||||
3 - 0 1
|
||||
|
||||
4 - 0 1
|
||||
|
||||
5 - 0 1
|
||||
|
||||
6 - 0 1
|
||||
|
||||
7 - 0 1
|
||||
|
||||
8 - 0 1
|
||||
|
||||
9 - 0 1
|
||||
|
||||
10 - 0 1
|
||||
|
||||
11 - 0 1
|
||||
|
||||
12 - 0 1
|
||||
|
||||
13 - 0 1
|
||||
|
||||
14 - 0 1
|
||||
|
||||
15 - 0 1
|
||||
|
||||
16 - 0 1
|
||||
|
||||
17 - 0 1
|
||||
|
||||
18 - 0 1
|
||||
|
||||
19 - 0 1
|
||||
|
||||
20 - 0 1
|
||||
|
||||
21 - 0 1
|
||||
|
||||
22 - 0 1
|
||||
|
||||
23 - 0 1
|
||||
|
||||
24 - 0 1
|
||||
|
||||
25 - 0 1
|
||||
|
||||
26 - 0 1
|
||||
|
||||
27 - 0 1
|
||||
|
||||
28 - 0 3
|
||||
|
||||
29 - 0 3
|
||||
|
||||
30 - 0 3
|
||||
|
||||
31 - 0 3
|
||||
|
||||
32 - 0 3
|
||||
|
||||
33 - 0 3
|
||||
|
||||
34 - 0 3
|
||||
|
||||
35 - 0 3
|
||||
|
||||
36 - 0 3
|
||||
|
||||
37 - 0 3
|
||||
|
||||
38 - 0 3
|
||||
|
||||
39 - 0 3
|
||||
|
||||
40 - 0 3
|
||||
|
||||
41 - 0 3
|
||||
|
||||
42 - 0 3
|
||||
|
||||
43 - 0 3
|
||||
|
||||
44 - 0 3
|
||||
|
||||
45 - 0 3
|
||||
|
||||
46 - 0 3
|
||||
|
||||
47 - 0 3
|
||||
|
||||
48 - 0 3
|
||||
|
||||
49 - 0 3
|
||||
|
||||
50 - 0 3
|
||||
|
||||
51 - 0 3
|
||||
|
||||
52 - 0 3
|
||||
|
||||
53 - 0 3
|
||||
|
||||
54 - 0 3
|
||||
|
||||
55 - 0 3
|
||||
|
||||
56 - 0 3
|
||||
|
||||
57 - 0 3
|
||||
|
||||
58 - 0 3
|
||||
|
||||
59 - 0 3
|
||||
|
||||
60 - 0 3
|
||||
|
||||
61 - 0 3
|
||||
|
||||
62 - 0 4
|
||||
|
||||
63 - 0 4
|
||||
|
||||
64 - 0 4
|
||||
|
||||
65 - 0 4
|
||||
|
||||
66 - 0 4
|
||||
|
||||
67 - 0 4
|
||||
|
||||
68 - 0 4
|
||||
|
||||
69 - 0 4
|
||||
|
||||
70 - 0 4
|
||||
|
||||
71 - 0 4
|
||||
|
||||
72 - 0 4
|
||||
|
||||
73 - 0 4
|
||||
|
||||
74 - 0 4
|
||||
|
||||
75 - 0 4
|
||||
|
||||
76 - 0 4
|
||||
|
||||
77 - 0 4
|
||||
|
||||
78 - 0 4
|
||||
|
||||
79 - 0 4
|
||||
|
||||
80 - 0 4
|
||||
|
||||
81 - 0 4
|
||||
|
||||
82 - 0 4
|
||||
|
||||
83 - 0 4
|
||||
|
||||
84 - 0 4
|
||||
|
||||
85 - 0 4
|
||||
|
||||
86 - 0 4
|
||||
|
||||
87 - 0 4
|
||||
|
||||
88 - 0 4
|
||||
|
||||
89 - 0 4
|
||||
|
||||
90 - 0 4
|
||||
|
||||
91 - 0 4
|
||||
|
||||
92 - 0 4
|
||||
|
||||
93 - 0 4
|
||||
|
||||
94 - 0 1
|
||||
|
||||
95 - 0 1
|
||||
|
||||
|
||||
96 - 0 1
|
||||
|
||||
97 - 0 1
|
||||
!
|
||||
98 - 0 1
|
||||
"
|
||||
99 - 0 1
|
||||
#
|
||||
100 - 0 1
|
||||
$
|
||||
101 - 0 1
|
||||
%
|
||||
102 - 0 1
|
||||
&
|
||||
103 - 0 1
|
||||
'
|
||||
104 - 0 1
|
||||
(
|
||||
105 - 0 1
|
||||
)
|
||||
106 - 0 1
|
||||
*
|
||||
107 - 0 1
|
||||
+
|
||||
108 - 0 1
|
||||
,
|
||||
109 - 0 1
|
||||
-
|
||||
110 - 0 1
|
||||
.
|
||||
111 - 0 1
|
||||
/
|
||||
112 - 0 1
|
||||
0
|
||||
113 - 0 1
|
||||
1
|
||||
114 - 0 1
|
||||
2
|
||||
115 - 0 1
|
||||
3
|
||||
116 - 0 1
|
||||
4
|
||||
117 - 0 1
|
||||
5
|
||||
118 - 0 1
|
||||
6
|
||||
119 - 0 1
|
||||
7
|
||||
120 - 0 1
|
||||
8
|
||||
121 - 0 1
|
||||
9
|
||||
122 - 0 1
|
||||
:
|
||||
123 - 0 1
|
||||
;
|
||||
124 - 0 1
|
||||
=
|
||||
125 - 0 1
|
||||
>
|
||||
126 - 0 1
|
||||
?
|
||||
127 - 0 1
|
||||
@
|
||||
128 - 0 1
|
||||
A
|
||||
129 - 0 1
|
||||
B
|
||||
130 - 0 1
|
||||
C
|
||||
131 - 0 1
|
||||
D
|
||||
132 - 0 1
|
||||
E
|
||||
133 - 0 1
|
||||
F
|
||||
134 - 0 1
|
||||
G
|
||||
135 - 0 1
|
||||
H
|
||||
136 - 0 1
|
||||
I
|
||||
137 - 0 1
|
||||
J
|
||||
138 - 0 1
|
||||
K
|
||||
139 - 0 1
|
||||
L
|
||||
140 - 0 1
|
||||
M
|
||||
141 - 0 1
|
||||
N
|
||||
142 - 0 1
|
||||
O
|
||||
143 - 0 1
|
||||
P
|
||||
144 - 0 1
|
||||
Q
|
||||
145 - 0 1
|
||||
R
|
||||
146 - 0 1
|
||||
S
|
||||
147 - 0 1
|
||||
T
|
||||
148 - 0 1
|
||||
U
|
||||
149 - 0 1
|
||||
V
|
||||
150 - 0 1
|
||||
W
|
||||
151 - 0 1
|
||||
X
|
||||
152 - 0 1
|
||||
Y
|
||||
153 - 0 1
|
||||
Z
|
||||
154 - 0 1
|
||||
[
|
||||
155 - 0 1
|
||||
\
|
||||
156 - 0 1
|
||||
]
|
||||
157 - 0 1
|
||||
^
|
||||
158 - 0 1
|
||||
_
|
||||
159 - 0 1
|
||||
`
|
||||
160 - 0 1
|
||||
a
|
||||
161 - 0 1
|
||||
b
|
||||
162 - 0 1
|
||||
c
|
||||
163 - 0 1
|
||||
d
|
||||
164 - 0 1
|
||||
e
|
||||
165 - 0 1
|
||||
f
|
||||
166 - 0 1
|
||||
g
|
||||
167 - 0 1
|
||||
h
|
||||
168 - 0 1
|
||||
i
|
||||
169 - 0 1
|
||||
j
|
||||
170 - 0 1
|
||||
k
|
||||
171 - 0 1
|
||||
l
|
||||
172 - 0 1
|
||||
m
|
||||
173 - 0 1
|
||||
n
|
||||
174 - 0 1
|
||||
o
|
||||
175 - 0 1
|
||||
p
|
||||
176 - 0 1
|
||||
q
|
||||
177 - 0 1
|
||||
r
|
||||
178 - 0 1
|
||||
s
|
||||
179 - 0 1
|
||||
t
|
||||
180 - 0 1
|
||||
u
|
||||
181 - 0 1
|
||||
v
|
||||
182 - 0 1
|
||||
w
|
||||
183 - 0 1
|
||||
x
|
||||
184 - 0 1
|
||||
y
|
||||
185 - 0 1
|
||||
z
|
||||
186 - 0 1
|
||||
{
|
||||
187 - 0 1
|
||||
|
|
||||
188 - 0 1
|
||||
}
|
||||
189 - 0 1
|
||||
~
|
||||
190 - 0 2
|
||||
|
||||
191 - 0 2
|
||||
¡
|
||||
192 - 0 2
|
||||
¢
|
||||
193 - 0 2
|
||||
£
|
||||
194 - 0 2
|
||||
¤
|
||||
195 - 0 2
|
||||
¥
|
||||
196 - 0 2
|
||||
¦
|
||||
197 - 0 2
|
||||
§
|
||||
198 - 0 2
|
||||
¨
|
||||
199 - 0 2
|
||||
©
|
||||
200 - 0 2
|
||||
ª
|
||||
201 - 0 2
|
||||
«
|
||||
202 - 0 2
|
||||
¬
|
||||
203 - 0 2
|
||||
|
||||
204 - 0 2
|
||||
®
|
||||
205 - 0 2
|
||||
¯
|
||||
206 - 0 2
|
||||
°
|
||||
207 - 0 2
|
||||
±
|
||||
208 - 0 2
|
||||
²
|
||||
209 - 0 2
|
||||
³
|
||||
210 - 0 2
|
||||
´
|
||||
211 - 0 2
|
||||
µ
|
||||
212 - 0 2
|
||||
¶
|
||||
213 - 0 2
|
||||
·
|
||||
214 - 0 2
|
||||
¸
|
||||
215 - 0 2
|
||||
¹
|
||||
216 - 0 2
|
||||
º
|
||||
217 - 0 2
|
||||
»
|
||||
218 - 0 2
|
||||
¼
|
||||
219 - 0 2
|
||||
½
|
||||
220 - 0 2
|
||||
¾
|
||||
221 - 0 2
|
||||
¿
|
||||
222 - 0 2
|
||||
À
|
||||
223 - 0 2
|
||||
Á
|
||||
224 - 0 2
|
||||
Â
|
||||
225 - 0 2
|
||||
Ã
|
||||
226 - 0 2
|
||||
Ä
|
||||
227 - 0 2
|
||||
Å
|
||||
228 - 0 2
|
||||
Æ
|
||||
229 - 0 2
|
||||
Ç
|
||||
230 - 0 2
|
||||
È
|
||||
231 - 0 2
|
||||
É
|
||||
232 - 0 2
|
||||
Ê
|
||||
233 - 0 2
|
||||
Ë
|
||||
234 - 0 2
|
||||
Ì
|
||||
235 - 0 2
|
||||
Í
|
||||
236 - 0 2
|
||||
Î
|
||||
237 - 0 2
|
||||
Ï
|
||||
238 - 0 2
|
||||
Ð
|
||||
239 - 0 2
|
||||
Ñ
|
||||
240 - 0 2
|
||||
Ò
|
||||
241 - 0 2
|
||||
Ó
|
||||
242 - 0 2
|
||||
Ô
|
||||
243 - 0 2
|
||||
Õ
|
||||
244 - 0 2
|
||||
Ö
|
||||
245 - 0 2
|
||||
×
|
||||
246 - 0 2
|
||||
Ø
|
||||
247 - 0 2
|
||||
Ù
|
||||
248 - 0 2
|
||||
Ú
|
||||
249 - 0 2
|
||||
Û
|
||||
250 - 0 2
|
||||
Ü
|
||||
251 - 0 2
|
||||
Ý
|
||||
252 - 0 2
|
||||
Þ
|
||||
253 - 0 2
|
||||
ß
|
||||
254 - 0 2
|
||||
à
|
||||
255 - 0 2
|
||||
á
|
||||
256 - 0 2
|
||||
â
|
||||
257 - 0 2
|
||||
ã
|
||||
258 - 0 2
|
||||
ä
|
||||
259 - 0 2
|
||||
å
|
||||
260 - 0 2
|
||||
æ
|
||||
261 - 0 2
|
||||
ç
|
||||
262 - 0 2
|
||||
è
|
||||
263 - 0 2
|
||||
é
|
||||
264 - 0 2
|
||||
ê
|
||||
265 - 0 2
|
||||
ë
|
||||
266 - 0 2
|
||||
ì
|
||||
267 - 0 2
|
||||
í
|
||||
268 - 0 2
|
||||
î
|
||||
269 - 0 2
|
||||
ï
|
||||
270 - 0 2
|
||||
ð
|
||||
271 - 0 2
|
||||
ñ
|
||||
272 - 0 2
|
||||
ò
|
||||
273 - 0 2
|
||||
ó
|
||||
274 - 0 2
|
||||
ô
|
||||
275 - 0 2
|
||||
õ
|
||||
276 - 0 2
|
||||
ö
|
||||
277 - 0 2
|
||||
÷
|
||||
278 - 0 2
|
||||
ø
|
||||
279 - 0 2
|
||||
ù
|
||||
280 - 0 2
|
||||
ú
|
||||
281 - 0 2
|
||||
û
|
||||
282 - 0 2
|
||||
ü
|
||||
283 - 0 2
|
||||
ý
|
||||
284 - 0 2
|
||||
þ
|
||||
285 - 0 2
|
||||
ÿ
|
||||
286 - 0 3
|
||||
|
||||
287 - 0 3
|
||||
|
||||
288 - 0 3
|
||||
﷏
|
||||
289 - 0 3
|
||||
ﷰ
|
||||
290 - 0 3
|
||||
<EFBFBD>
|
||||
291 - 0 4
|
||||
𐀀
|
||||
292 - 0 4
|
||||
|
||||
293 - 0 4
|
||||
𠀀
|
||||
294 - 0 4
|
||||
|
||||
295 - 0 4
|
||||
𰀀
|
||||
296 - 0 4
|
||||
|
||||
297 - 0 4
|
||||
|
||||
298 - 0 4
|
||||
|
||||
299 - 0 4
|
||||
|
||||
300 - 0 4
|
||||
|
||||
301 - 0 4
|
||||
|
||||
302 - 0 4
|
||||
|
||||
303 - 0 4
|
||||
|
||||
304 - 0 4
|
||||
|
||||
305 - 0 4
|
||||
|
||||
306 - 0 4
|
||||
|
||||
307 - 0 4
|
||||
|
||||
308 - 0 4
|
||||
|
||||
309 - 0 4
|
||||
|
||||
310 - 0 4
|
||||
|
||||
311 - 0 4
|
||||
|
||||
312 - 0 4
|
||||
|
||||
313 - 0 4
|
||||
|
||||
314 - 0 4
|
||||
|
||||
315 - 0 4
|
||||
|
||||
316 - 0 4
|
||||
|
||||
317 - 0 4
|
||||
|
||||
318 - 0 4
|
||||
|
||||
319 - 0 4
|
||||
|
||||
320 - 0 4
|
||||
|
||||
321 - 0 4
|
||||
|
||||
322 - 0 4
|
||||
|
BIN
test/html-tokenizer/unicodeCharsProblematic.test
Normal file
BIN
test/html-tokenizer/unicodeCharsProblematic.test
Normal file
Binary file not shown.
86
tools/genHtml5LibTests.py
Normal file
86
tools/genHtml5LibTests.py
Normal file
@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import glob
|
||||
import json
|
||||
import re
|
||||
|
||||
state_map = {
|
||||
'Data state': 0,
|
||||
'RCDATA state': 1,
|
||||
'RAWTEXT state': 2,
|
||||
'PLAINTEXT state': 3,
|
||||
'Script data state': 4,
|
||||
'CDATA section state': 5,
|
||||
}
|
||||
|
||||
for filename in sorted(glob.glob('../html5lib-tests/tokenizer/*.test')):
|
||||
match = re.search('/([^/]*).test$', filename)
|
||||
if match is None:
|
||||
continue
|
||||
testname = match[1]
|
||||
if testname == 'xmlViolation':
|
||||
continue
|
||||
|
||||
with open(filename) as json_data:
|
||||
root = json.load(json_data)
|
||||
|
||||
test_out = open(f'test/html-tokenizer/{testname}.test', 'w')
|
||||
result_out = open(f'result/html-tokenizer/{testname}.test', 'w')
|
||||
|
||||
counter = 0
|
||||
|
||||
for tests in root.values():
|
||||
for test in tests:
|
||||
input = test['input']
|
||||
|
||||
# Skip surrogate tests
|
||||
if re.search(r'\\uD[89A-F]', input, re.I):
|
||||
continue
|
||||
|
||||
input = re.sub(r'\\u([A-Fa-f0-9]{4})',
|
||||
lambda m: chr(int(m[1], 16)),
|
||||
input)
|
||||
|
||||
output = ''
|
||||
for token in test['output']:
|
||||
output += token[0] + '\n'
|
||||
|
||||
if token[0] == 'DOCTYPE':
|
||||
for i in range(1, 4):
|
||||
if token[i] is None:
|
||||
output += '<none>\n'
|
||||
else:
|
||||
output += token[i] + '\n'
|
||||
else:
|
||||
output += token[1]
|
||||
if token[0] == 'StartTag':
|
||||
for name, value in token[2].items():
|
||||
output += f' {name}={value}'
|
||||
output += '\n'
|
||||
|
||||
output = re.sub(r'\\u([A-Fa-f0-9]{4})',
|
||||
lambda m: chr(int(m[1], 16)),
|
||||
output)
|
||||
output = re.sub(r'\x00', '\uFFFD', output)
|
||||
|
||||
for state in test.get('initialStates', ['Data state']):
|
||||
state_no = state_map.get(state)
|
||||
if state_no is None:
|
||||
raise Exception(f'{filename}: unknown state: {state}')
|
||||
if state_no == 5:
|
||||
continue
|
||||
|
||||
start_tag = test.get('lastStartTag', '-')
|
||||
|
||||
test_out.write(f'{counter} {start_tag} {state_no} '
|
||||
f'{len(input.encode())}\n')
|
||||
test_out.write(input)
|
||||
test_out.write('\n')
|
||||
|
||||
result_out.write(f'{counter}\n')
|
||||
result_out.write(output)
|
||||
|
||||
counter += 1
|
||||
|
||||
test_out.close()
|
||||
result_out.close()
|
Loading…
x
Reference in New Issue
Block a user