Git init
[framework/web/webkit-efl.git] / LayoutTests / fast / doctypes / doctype-parsing.html
1 <html>
2 <head>
3     <script src="resources/TestDoctype.js"></script>
4     <script>
5         if (window.layoutTestController)
6             layoutTestController.dumpAsText();
7
8         test = function(mode, doctype)
9         {
10             var doc = document.getElementsByTagName('iframe')[0].contentDocument
11             doc.open();
12             doc.write(doctype + "\n<html><body></body></html>")
13             doc.close();
14             testDoctype(doc, mode, doctype);
15         }
16
17         onload = function()
18         {
19             // Test No Doctype
20             test('Quirks', '');
21
22             // Test Doctypes that force Standards mode
23             test('Standards', '<!DOCTYPE HTML>');
24             test('Standards', '<!DOCTYPE HTML SYSTEM "http://www.w3.org/TR/REC-html40/strict.dtd">');
25             test('Standards', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">');
26             test('Standards', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">');
27             test('Standards', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">');
28             test('Standards', '<!DOCTYPE HTML PUBLIC "ISO/IEC 15445:2000//DTD HyperText Markup Language//EN">');
29             test('Standards', '<!DOCTYPE HTML PUBLIC "ISO/IEC 15445:2000//DTD HTML//EN">');
30             test('Standards', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML i18n//EN">');
31             test('Standards', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">');
32
33             // Test Doctypes that force Almost-Standards mode
34             test('Almost Standards', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">');
35             test('Almost Standards', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN">');
36             test('Almost Standards', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">');
37             test('Almost Standards', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">');
38
39             // Test Doctypes that force Quirks mode
40             test('Quirks', '<!DOCTYPE HTML NOT UNDERSTOOD>');
41             test('Quirks', '<!DOCTYPE HTML [ <!ELEMENT TEST - - (P) > ]>');
42             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">');
43             test('Quirks', '<!DOCTYPE html SYSTEM "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd">');
44             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">');
45             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">');
46             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">');
47             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//SoftQuad Software//DTD HoTMetaL PRO 6.0::19990601::extensions to HTML 4.0//EN">');
48             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//SoftQuad//DTD HoTMetaL PRO 4.0::19971010::extensions to HTML 4.0//EN">');
49             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//3.0">');
50             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//W3O//DTD W3 HTML 3.0//EN//">');
51             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//W3O//DTD W3 HTML 3.0//EN">');
52             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3 1995-03-24//EN">');
53             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">');
54             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN//">');
55             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3//EN">');
56             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Level 3//EN">');
57             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Level 3//EN//3.0">');
58             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.2//EN">');
59             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//AdvaSoft Ltd//DTD HTML 3.0 asWedit + extensions//EN">');
60             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN//3.0">');
61             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//W3O//DTD W3 HTML Strict 3.0//EN//">');
62             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict Level 3//EN">');
63             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict Level 3//EN//3.0">');
64             test('Quirks', '<!DOCTYPE HTML PUBLIC "HTML">');
65             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">');
66             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//2.0">');
67             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">');
68             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Level 2//EN">');
69             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Level 2//EN//2.0">');
70             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Level 2//EN">');
71             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Level 1//EN">');
72             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Level 1//EN//2.0".');
73             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Level 1//EN".');
74             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Level 0//EN".');
75             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Level 0//EN//2.0".');
76             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN".');
77             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN//2.0".');
78             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict Level 2//EN".');
79             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict Level 2//EN//2.0".');
80             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Strict//EN".');
81             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 2//EN".');
82             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict Level 1//EN".');
83             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict Level 1//EN//2.0".');
84             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Strict Level 1//EN".');
85             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict Level 0//EN".');
86             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict Level 0//EN//2.0".');
87             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//WebTechs//DTD Mozilla HTML//EN".');
88             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//WebTechs//DTD Mozilla HTML 2.0//EN".');
89             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//Netscape Comm. Corp.//DTD HTML//EN".');
90             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//Netscape Comm. Corp.//DTD HTML//EN".');
91             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//Netscape Comm. Corp.//DTD Strict HTML//EN".');
92             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//Microsoft//DTD Internet Explorer 2.0 HTML//EN".');
93             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//Microsoft//DTD Internet Explorer 2.0 HTML Strict//EN".');
94             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//Microsoft//DTD Internet Explorer 2.0 Tables//EN".');
95             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//Microsoft//DTD Internet Explorer 3.0 HTML//EN".');
96             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//Microsoft//DTD Internet Explorer 3.0 HTML Strict//EN".');
97             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//Microsoft//DTD Internet Explorer 3.0 Tables//EN".');
98             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//Sun Microsystems Corp.//DTD HotJava HTML//EN".');
99             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//Sun Microsystems Corp.//DTD HotJava Strict HTML//EN".');
100             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.1E//EN".');
101             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//O\'Reilly and Associates//DTD HTML Extended 1.0//EN".');
102             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//O\'Reilly and Associates//DTD HTML Extended Relaxed 1.0//EN".');
103             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//O\'Reilly and Associates//DTD HTML 2.0//EN".');
104             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//SQ//DTD HTML 2.0 HoTMetaL + extensions//EN".');
105             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//Spyglass//DTD HTML 2.0 Extended//EN".');
106             test('Quirks', '<!DOCTYPE HTML PUBLIC "+//Silmaril//DTD HTML Pro v0r11 19970101//EN".');
107             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Experimental 19960712//EN".');
108             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN".');
109             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN".');
110             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Draft//EN".');
111             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Experimental 970421//EN".');
112             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2S Draft//EN".');
113             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN".');
114             test('Quirks', '<!DOCTYPE HTML PUBLIC "-//Metrius//DTD Metrius Presentational//EN".');
115
116             // Test malformed Doctypes
117             test('Quirks', '<!DOCTYPE>');
118             test('Standards', '<!DOCTYPEhtml>');
119             test('Quirks', '<!DOCTYPEfoo>');
120             test('Standards', '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML Transitional 4.01//EN">');
121             test('Quirks', '<!DOCTYPE html PUBLIC');
122             test('Quirks', '<!DOCTYPE html PUBLIC \'');
123             test('Quirks', '<!DOCTYPE html PUBLIC \'x');
124             test('Standards', '<!DOCTYPE html SYSTEM "-//W3C//DTD HTML Transitional 4.01//EN">');
125             test('Standards', '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML Transitional 4.01//EN" "-//W3C//DTD HTML Transitional 4.01//EN">');
126             test('Quirks', '<!DOCTYPE html PUBLIC \">x');
127             test('Quirks', '<!DOCTYPE html PUBLIC \'>x');
128             test('Quirks', '<!DOCTYPE html PUBLIC "foo" \">x');
129             test('Quirks', '<!DOCTYPE html PUBLIC \'foo\' \'>x');
130             test('Quirks', '<!DOCTYPE html ');
131
132             // Test Doctypes not at the beginning of the Document
133             test('Quirks', '<html><body></body></html><!DOCTYPE html>');
134             test('Quirks', '<html><body><!DOCTYPE html></body></html>');
135             test('Standards', '<!-- comment --><!DOCTYPE html>');
136         }
137     </script>
138 </head>
139 <body>
140     <pre id='console'></pre>
141     <iframe src="resources/subframe.html"></iframe>
142 </body>
143 </html>