/[suikacvs]/markup/html/whatpm/t/tokenizer-test-1.test
Suika

Contents of /markup/html/whatpm/t/tokenizer-test-1.test

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.13 - (hide annotations) (download)
Sat Jun 30 13:12:33 2007 UTC (18 years ago) by wakaba
Branch: MAIN
Changes since 1.12: +4 -0 lines
++ whatpm/t/ChangeLog	30 Jun 2007 12:28:52 -0000
2007-06-30  Wakaba  <wakaba@suika.fam.cx>

	* URIChecker.t: Error level names in test results has
	been changed.

	* tokenizer-test-1.test: A test for bogus SYSTEM identifier
	is added.

	* content-model-1.dat, content-model-2.dat, content-model-3.dat,
	content-model-4.dat: Error messages has been changed.

	* ContentChecker.t: Appends error level to the error
	message if any.

++ whatpm/Whatpm/ChangeLog	30 Jun 2007 13:03:50 -0000
2007-06-30  Wakaba  <wakaba@suika.fam.cx>

	* IMTChecker.pm: Report warning for unregistered
	and private types/subtypes.

	* ContentChecker.pm, HTML.pm.src, IMTChecker.pm,
	URIChecker.pm, HTMLTable.pm: Error messages are now
	consistent; they are all listed in
	<http://suika.fam.cx/gate/2005/sw/Whatpm%20Error%20Types>.

1 wakaba 1.1 {"tests": [
2    
3 wakaba 1.3 {"description":"<!DOCTYPE",
4     "input":"<!DOCTYPE",
5 wakaba 1.9 "output":["ParseError","ParseError",["DOCTYPE", null, null, null, false]]},
6 wakaba 1.3
7     {"description":"<!DOCTYPE ",
8     "input":"<!DOCTYPE ",
9 wakaba 1.9 "output":["ParseError",["DOCTYPE", null, null, null, false]]},
10 wakaba 1.3
11     {"description":"<!DOCTYPE >",
12     "input":"<!DOCTYPE >",
13 wakaba 1.9 "output":["ParseError",["DOCTYPE", null, null, null, false]]},
14 wakaba 1.3
15     {"description":"<!DOCTYPE h",
16     "input":"<!DOCTYPE h",
17 wakaba 1.9 "output":["ParseError",["DOCTYPE", "h", null, null, false]]},
18 wakaba 1.3
19     {"description":"<!DOCTYPE H",
20     "input":"<!DOCTYPE H",
21 wakaba 1.9 "output":["ParseError",["DOCTYPE", "H", null, null, false]]},
22 wakaba 1.3
23     {"description":"<!DOCTYPE h>",
24     "input":"<!DOCTYPE h>",
25 wakaba 1.9 "output":[["DOCTYPE", "h", null, null, true]]},
26 wakaba 1.3
27     {"description":"<!DOCTYPE H>",
28     "input":"<!DOCTYPE H>",
29 wakaba 1.9 "output":[["DOCTYPE", "H", null, null, true]]},
30 wakaba 1.3
31     {"description":"<!DOCTYPE ht",
32     "input":"<!DOCTYPE ht",
33 wakaba 1.9 "output":["ParseError",["DOCTYPE", "ht", null, null, false]]},
34 wakaba 1.3
35     {"description":"<!DOCTYPE Ht",
36     "input":"<!DOCTYPE Ht",
37 wakaba 1.9 "output":["ParseError",["DOCTYPE", "Ht", null, null, false]]},
38 wakaba 1.3
39     {"description":"<!DOCTYPE hT",
40     "input":"<!DOCTYPE hT",
41 wakaba 1.9 "output":["ParseError",["DOCTYPE", "hT", null, null, false]]},
42 wakaba 1.3
43     {"description":"<!DOCTYPE ht>",
44     "input":"<!DOCTYPE ht>",
45 wakaba 1.9 "output":[["DOCTYPE", "ht", null, null, true]]},
46 wakaba 1.3
47     {"description":"<!DOCTYPE Ht>",
48     "input":"<!DOCTYPE Ht>",
49 wakaba 1.9 "output":[["DOCTYPE", "Ht", null, null, true]]},
50 wakaba 1.3
51     {"description":"<!DOCTYPE hT>",
52     "input":"<!DOCTYPE hT>",
53 wakaba 1.9 "output":[["DOCTYPE", "hT", null, null, true]]},
54 wakaba 1.3
55     {"description":"<!DOCTYPE hT>",
56     "input":"<!DOCTYPE hT>",
57 wakaba 1.9 "output":[["DOCTYPE", "hT", null, null, true]]},
58 wakaba 1.3
59     {"description":"<!DOCTYPE htm",
60     "input":"<!DOCTYPE htm",
61 wakaba 1.9 "output":["ParseError",["DOCTYPE", "htm", null, null, false]]},
62 wakaba 1.3
63     {"description":"<!DOCTYPE Htm",
64     "input":"<!DOCTYPE Htm",
65 wakaba 1.9 "output":["ParseError",["DOCTYPE", "Htm", null, null, false]]},
66 wakaba 1.3
67     {"description":"<!DOCTYPE hTM",
68     "input":"<!DOCTYPE hTM",
69 wakaba 1.9 "output":["ParseError",["DOCTYPE", "hTM", null, null, false]]},
70 wakaba 1.3
71     {"description":"<!DOCTYPE htm>",
72     "input":"<!DOCTYPE htm>",
73 wakaba 1.9 "output":[["DOCTYPE", "htm", null, null, true]]},
74 wakaba 1.3
75     {"description":"<!DOCTYPE Htm>",
76     "input":"<!DOCTYPE Htm>",
77 wakaba 1.9 "output":[["DOCTYPE", "Htm", null, null, true]]},
78 wakaba 1.3
79     {"description":"<!DOCTYPE hTM>",
80     "input":"<!DOCTYPE hTM>",
81 wakaba 1.9 "output":[["DOCTYPE", "hTM", null, null, true]]},
82 wakaba 1.3
83     {"description":"<!DOCTYPE html5",
84     "input":"<!DOCTYPE html5",
85 wakaba 1.9 "output":["ParseError",["DOCTYPE", "html5", null, null, false]]},
86 wakaba 1.3
87     {"description":"<!DOCTYPE html5>",
88     "input":"<!DOCTYPE html5>",
89 wakaba 1.9 "output":[["DOCTYPE", "html5", null, null, true]]},
90    
91     {"description":"PUBLIC\u0022\u0022",
92     "input":"<!DOCTYPE html PUBLIC\u0022\u0022>",
93     "output":[["DOCTYPE", "html", "", null, true]]},
94    
95     {"description":"PUBLIC''",
96     "input":"<!DOCTYPE html PUBLIC''>",
97     "output":[["DOCTYPE", "html", "", null, true]]},
98    
99     {"description":"PUBLICbogus",
100     "input":"<!DOCTYPE html PUBLICbogus>",
101     "output":["ParseError",["DOCTYPE", "html", null, null, false]]},
102    
103     {"description":"PUBLIC bogus",
104     "input":"<!DOCTYPE html PUBLIC bogus>",
105     "output":["ParseError",["DOCTYPE", "html", null, null, false]]},
106    
107     {"description":"PUBLIC \u0022\u0022bogus",
108     "input":"<!DOCTYPE html PUBLIC \u0022\u0022bogus>",
109     "output":["ParseError",["DOCTYPE", "html", "", null, false]]},
110    
111     {"description":"PUBLIC \u0022\u0022 bogus",
112     "input":"<!DOCTYPE html PUBLIC \u0022\u0022 bogus>",
113     "output":["ParseError",["DOCTYPE", "html", "", null, false]]},
114    
115     {"description":"PUBLIC \u0022\u0022 \u0022\u0022bogus",
116     "input":"<!DOCTYPE html PUBLIC \u0022\u0022 \u0022\u0022bogus>",
117     "output":["ParseError",["DOCTYPE", "html", "", "", false]]},
118    
119     {"description":"PUBLIC \u0022\u0022 \u0022\u0022 bogus",
120     "input":"<!DOCTYPE html PUBLIC \u0022\u0022 \u0022\u0022 bogus>",
121     "output":["ParseError",["DOCTYPE", "html", "", "", false]]},
122    
123     {"description":"PUBLIC \u0022\u0022\u0022\u0022>",
124     "input":"<!DOCTYPE html PUBLIC \u0022\u0022\u0022\u0022>",
125     "output":[["DOCTYPE", "html", "", "", true]]},
126    
127     {"description":"PUBLIC \u0022\u0022''>",
128     "input":"<!DOCTYPE html PUBLIC \u0022\u0022''>",
129     "output":[["DOCTYPE", "html", "", "", true]]},
130 wakaba 1.3
131 wakaba 1.13 {"description":"SYSTEM a",
132     "input":"<!DOCTYPE html SYSTEM a>",
133     "output":["ParseError", ["DOCTYPE", "html", null, null, false]]},
134    
135 wakaba 1.1 {"description":"non-PCDATA content model flag, start tag-like string",
136     "contentModelFlags":["PLAINTEXT","RCDATA","CDATA"],
137     "input":"<div>",
138 wakaba 1.2 "output":[["Character", "<div>"]]},
139    
140     {"description":"end tag followed by character data",
141     "contentModelFlags":["RCDATA","CDATA"],
142     "lastStartTag":"xxx",
143     "input":"AB</xxx>CD",
144 wakaba 1.4 "output":[["Character", "AB"],["EndTag", "xxx"],["Character", "CD"]]},
145 wakaba 1.1
146 wakaba 1.12 {"description":"NULL character reference",
147     "input":"&#0;",
148     "output":["ParseError", ["Character", "\uFFFD"]]},
149    
150     {"description":"NULL character reference",
151     "input":"&#x0;",
152     "output":["ParseError", ["Character", "\uFFFD"]]},
153    
154     {"description":"character entity &#13;",
155     "input":"&#13;",
156     "output":["ParseError", ["Character", "\u000A"]]},
157    
158     {"description":"character entity &#xd;",
159     "input":"&#xd;",
160     "output":["ParseError", ["Character", "\u000A"]]},
161    
162     {"description":"character entities &#13;&#10;",
163     "input":"&#13;&#10;",
164     "output":["ParseError", ["Character", "\u000A\u000A"]]},
165    
166     {"description":"character entity &#13; followed by a LF",
167     "input":"&#13;\u000A",
168     "output":["ParseError", ["Character", "\u000A\u000A"]]},
169    
170 wakaba 1.4 {"description":"c1 character references",
171     "input":"&#128;&#129;&#130;&#131;&#132;&#133;&#134;&#135;",
172     "output":[
173     "ParseError", ["Character", "\u20AC"],
174     "ParseError", ["Character", "\uFFFD"],
175     "ParseError", ["Character", "\u201A"],
176     "ParseError", ["Character", "\u0192"],
177     "ParseError", ["Character", "\u201E"],
178     "ParseError", ["Character", "\u2026"],
179     "ParseError", ["Character", "\u2020"],
180     "ParseError", ["Character", "\u2021"]
181     ]},
182     {"description":"c1 character references",
183     "input":"&#136;&#137;&#138;&#139;&#140;&#141;&#142;&#143;",
184     "output":[
185     "ParseError", ["Character", "\u02C6"],
186     "ParseError", ["Character", "\u2030"],
187     "ParseError", ["Character", "\u0160"],
188     "ParseError", ["Character", "\u2039"],
189     "ParseError", ["Character", "\u0152"],
190     "ParseError", ["Character", "\uFFFD"],
191     "ParseError", ["Character", "\u017D"],
192     "ParseError", ["Character", "\uFFFD"]
193     ]},
194     {"description":"c1 character references",
195     "input":"&#144;&#145;&#146;&#147;&#148;&#149;&#150;&#151;",
196     "output":[
197     "ParseError", ["Character", "\uFFFD"],
198     "ParseError", ["Character", "\u2018"],
199     "ParseError", ["Character", "\u2019"],
200     "ParseError", ["Character", "\u201C"],
201     "ParseError", ["Character", "\u201D"],
202     "ParseError", ["Character", "\u2022"],
203     "ParseError", ["Character", "\u2013"],
204     "ParseError", ["Character", "\u2014"]
205     ]},
206     {"description":"c1 character references",
207     "input":"&#152;&#153;&#154;&#155;&#156;&#157;&#158;&#159;",
208     "output":[
209     "ParseError", ["Character", "\u02DC"],
210     "ParseError", ["Character", "\u2122"],
211     "ParseError", ["Character", "\u0161"],
212     "ParseError", ["Character", "\u203A"],
213     "ParseError", ["Character", "\u0153"],
214     "ParseError", ["Character", "\uFFFD"],
215     "ParseError", ["Character", "\u017E"],
216     "ParseError", ["Character", "\u0178"]
217     ]},
218    
219     {"description":"c1 character references",
220     "input":"&#x80;&#x81;&#x82;&#x83;&#x84;&#x85;&#x86;&#x87;",
221     "output":[
222     "ParseError", ["Character", "\u20AC"],
223     "ParseError", ["Character", "\uFFFD"],
224     "ParseError", ["Character", "\u201A"],
225     "ParseError", ["Character", "\u0192"],
226     "ParseError", ["Character", "\u201E"],
227     "ParseError", ["Character", "\u2026"],
228     "ParseError", ["Character", "\u2020"],
229     "ParseError", ["Character", "\u2021"]
230     ]},
231     {"description":"c1 character references",
232     "input":"&#x88;&#x89;&#x8a;&#x8b;&#x8c;&#x8d;&#x8e;&#x8f;",
233     "output":[
234     "ParseError", ["Character", "\u02C6"],
235     "ParseError", ["Character", "\u2030"],
236     "ParseError", ["Character", "\u0160"],
237     "ParseError", ["Character", "\u2039"],
238     "ParseError", ["Character", "\u0152"],
239     "ParseError", ["Character", "\uFFFD"],
240     "ParseError", ["Character", "\u017D"],
241     "ParseError", ["Character", "\uFFFD"]
242     ]},
243     {"description":"c1 character references",
244     "input":"&#x90;&#x91;&#x92;&#x93;&#x94;&#x95;&#x96;&#x97;",
245     "output":[
246     "ParseError", ["Character", "\uFFFD"],
247     "ParseError", ["Character", "\u2018"],
248     "ParseError", ["Character", "\u2019"],
249     "ParseError", ["Character", "\u201C"],
250     "ParseError", ["Character", "\u201D"],
251     "ParseError", ["Character", "\u2022"],
252     "ParseError", ["Character", "\u2013"],
253     "ParseError", ["Character", "\u2014"]
254     ]},
255     {"description":"c1 character references",
256     "input":"&#x98;&#x99;&#x9a;&#x9b;&#x9c;&#x9d;&#x9e;&#x9f;",
257     "output":[
258     "ParseError", ["Character", "\u02DC"],
259     "ParseError", ["Character", "\u2122"],
260     "ParseError", ["Character", "\u0161"],
261     "ParseError", ["Character", "\u203A"],
262     "ParseError", ["Character", "\u0153"],
263     "ParseError", ["Character", "\uFFFD"],
264     "ParseError", ["Character", "\u017E"],
265     "ParseError", ["Character", "\u0178"]
266 wakaba 1.5 ]},
267    
268 wakaba 1.12 {"description":"surrogate character reference",
269     "input":"&#xD800;",
270     "output":["ParseError", ["Character", "\uFFFD"]]},
271    
272     {"description":"surrogate character references",
273     "input":"&#xD800;&#xDFFF;",
274     "output":["ParseError", ["Character", "\uFFFD"],
275     "ParseError", ["Character", "\uFFFD"]]},
276    
277     {"description":"surrogate character reference",
278     "input":"\uD800&#xDFFF;",
279     "output":[["Character", "\uD800"],
280     "ParseError", ["Character", "\uFFFD"]]},
281    
282     {"description":"surrogate character reference",
283     "input":"&#xD800;\uDFFF",
284     "output":["ParseError", ["Character", "\uFFFD\uDFFF"]]},
285    
286     {"description":"surrogate character reference",
287     "input":"&#55296;",
288     "output":["ParseError", ["Character", "\uFFFD"]]},
289    
290     {"description":"surrogate character reference",
291     "input":"&#57343;",
292     "output":["ParseError", ["Character", "\uFFFD"]]},
293    
294     {"description":"non-Unicode character reference",
295     "input":"&#1114112;",
296     "output":["ParseError", ["Character", "\uFFFD"]]},
297    
298     {"description":"non-Unicode character reference",
299     "input":"&#x110000;",
300     "output":["ParseError", ["Character", "\uFFFD"]]},
301    
302 wakaba 1.5 {"description":"NULL character",
303     "input":"\u0000",
304 wakaba 1.6 "output":["ParseError",["Character", "\uFFFD"]]},
305    
306     {"description":"&TRADE;",
307     "input":"&TRADE;",
308 wakaba 1.7 "output":[["Character", "\u2122"]]},
309    
310     {"description":"&lang;",
311     "input":"&lang;",
312     "output":[["Character", "\u3008"]]},
313    
314     {"description":"&rang;",
315     "input":"&rang;",
316     "output":[["Character", "\u3009"]]},
317    
318     {"description":"&amp;;",
319     "input":"&amp;;",
320 wakaba 1.8 "output":[["Character", "&;"]]},
321    
322 wakaba 1.11 {"description":"&HT",
323     "input":"&\u0009",
324     "output":[["Character", "&\u0009"]]},
325    
326     {"description":"&LF",
327     "input":"&\u000A",
328     "output":[["Character", "&\u000A"]]},
329    
330     {"description":"&VT",
331     "input":"&\u000B",
332     "output":[["Character", "&\u000B"]]},
333    
334     {"description":"&FF",
335     "input":"&\u000C",
336     "output":[["Character", "&\u000C"]]},
337    
338     {"description":"&SP",
339     "input":"& ",
340     "output":[["Character", "& "]]},
341    
342     {"description":"&<",
343     "input":"&<",
344 wakaba 1.12 "output":[["Character", "&"], "ParseError", ["Character", "<"]]},
345 wakaba 1.11
346     {"description":"&<p>",
347     "input":"&<p>",
348     "output":[["Character", "&"], ["StartTag", "p", {}]]},
349    
350     {"description":"&&",
351     "input":"&&",
352     "output":[["Character", "&&"]]},
353    
354     {"description":"&&amp;",
355     "input":"&&amp;",
356     "output":[["Character", "&&"]]},
357    
358     {"description":"&",
359     "input":"&",
360     "output":[["Character", "&"]]},
361 wakaba 1.12
362     {"description":"named character reference w/o refc",
363     "input":"&ampabc",
364     "output":["ParseError", ["Character", "&abc"]]},
365    
366     {"description":"named character reference",
367     "input":"&amp;abc",
368     "output":[["Character", "&abc"]]},
369    
370     {"description":"named character reference w/o refc",
371     "input":"&abc",
372     "output":["ParseError", ["Character", "&abc"]]},
373    
374     {"description":"unknown named character reference",
375     "input":"&abc;",
376     "output":["ParseError", ["Character", "&abc;"]]},
377    
378     {"description":"named character reference w/o refc in attr",
379     "input":"<a href='&ampabc'>",
380     "output":["ParseError", ["StartTag", "a", {"href": "&ampabc"}]]},
381    
382     {"description":"named character reference in attr",
383     "input":"<a href='&amp;abc'>",
384     "output":[["StartTag", "a", {"href": "&abc"}]]},
385    
386     {"description":"named character reference w/o refc in attr",
387     "input":"<a href='&abc'>",
388     "output":["ParseError", ["StartTag", "a", {"href": "&abc"}]]},
389    
390     {"description":"unknown named character reference in attr",
391     "input":"<a href='&abc;'>",
392     "output":["ParseError", ["StartTag", "a", {"href": "&abc;"}]]},
393 wakaba 1.11
394 wakaba 1.8 {"description":"cdata end tag containing <",
395     "contentModelFlags":["RCDATA","CDATA"],
396     "lastStartTag":"xxx",
397     "input":"</xxx<div>",
398 wakaba 1.10 "output":[["Character", "</xxx<div>"]]},
399 wakaba 1.8
400     {"description":"< in tag name state",
401     "input":"<p<div>",
402     "output":[["StartTag", "p<div", {}]]},
403    
404     {"description":"< in before attribute name state",
405     "input":"<p <div>",
406     "output":[["StartTag", "p", {"<div":""}]]},
407    
408     {"description":"< in attribute name state",
409     "input":"<p align<div>",
410     "output":[["StartTag", "p", {"align<div":""}]]},
411    
412     {"description":"< in after attribute name state",
413     "input":"<p align <div>",
414     "output":[["StartTag", "p", {"align":"","<div":""}]]},
415    
416     {"description":"< in before attribute value state",
417     "input":"<p align=<div>",
418     "output":[["StartTag", "p", {"align":"<div"}]]},
419    
420     {"description":"< in attribute value (unquoted) state",
421     "input":"<p align=left<div>",
422     "output":[["StartTag", "p", {"align":"left<div"}]]},
423    
424     {"description":"< in attribute value (single-unquoted) state",
425     "input":"<p align='left<div>",
426     "output":["ParseError", ["StartTag", "p", {"align":"left<div>"}]]},
427    
428     {"description":"< in attribute value (double-unquoted) state",
429     "input":"<p align=\u0022left<div>",
430     "output":["ParseError", ["StartTag", "p", {"align":"left<div>"}]]}
431 wakaba 1.4
432     ]}

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24