formMethod to have empty string as default value and 'get' as invalid.
[WebKit-https.git] / LayoutTests / fast / forms / submit-form-attributes.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <html>
3 <head>
4 <script src="../../fast/js/resources/js-test-pre.js"></script>
5 </head>
6 <body>
7 <p id="description"></p>
8 <div id="console"></div>
9 <script>
10 description('Tests the behavior of .formaction, .formenctype, .formmethod and .formtarget of HTMLInputElement and HTMLButtonElement.');
11
12 var input = document.createElement('input');
13
14 debug('Ordinary values for input:');
15 input.type = "submit";
16 shouldBe('input.formAction', '""');
17 shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
18 shouldBeEqualToString("input.formMethod", "");
19 shouldBe('input.formTarget', '""');
20
21 input.setAttribute('formAction', 'http://localhost');
22 shouldBe('input.formAction', '"http://localhost/"');
23 input.setAttribute('formAction', 'http://localhost/');
24 shouldBe('input.formAction', '"http://localhost/"');
25 input.setAttribute('formEnctype', 'text/plain');
26 shouldBe('input.formEnctype', '"text/plain"');
27 input.setAttribute('formEnctype', 'na');
28 shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
29 input.setAttribute('formMethod', 'GET');
30 shouldBe('input.formMethod', '"get"');
31 input.setAttribute('formMethod', 'ni');
32 shouldBe('input.formMethod', '"get"');
33 input.setAttribute('formTarget', '_blank');
34 shouldBe('input.formTarget', '"_blank"');
35 input.setAttribute('formTarget', 'nu');
36 shouldBe('input.formTarget', '"nu"');
37
38 input.formAction = 'http://example.com';
39 shouldBe('input.formAction', '"http://example.com/"');
40 input.formAction = 'http://example.com/';
41 shouldBe('input.formAction', '"http://example.com/"');
42 input.formEnctype = 'text/plain';
43 shouldBe('input.formEnctype', '"text/plain"');
44 input.formEnctype = 'nota';
45 shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
46 input.formMethod = 'POST';
47 shouldBe('input.formMethod', '"post"');
48 input.formMethod = 'neta';
49 shouldBe('input.formMethod', '"get"');
50 input.formTarget = 'http://example.com';
51 shouldBe('input.formTarget', '"http://example.com"');
52 input.formTarget = 'nta';
53 shouldBe('input.formTarget', '"nta"');
54
55 debug('');
56 debug('Setting null for input:');
57 input.formEnctype = null;
58 shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
59 shouldBe('input.getAttribute("formEnctype")', 'null');
60 input.setAttribute('formEnctype', null);
61 shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
62 input.formMethod = null;
63 shouldBeEqualToString("input.formMethod", "");
64 shouldBe('input.getAttribute("formMethod")', 'null');
65 input.setAttribute('formMethod', null);
66 shouldBe('input.formMethod', '"get"');
67 input.formTarget = null;
68 shouldBe('input.formTarget', '""');
69 shouldBe('input.getAttribute("formTarget")', 'null');
70 input.setAttribute('formTarget', null);
71 shouldBe('input.formTarget', '"null"');
72
73 debug('');
74 debug('Setting undefined for input:');
75 input.formEnctype = undefined;
76 shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
77 shouldBe('input.getAttribute("formEnctype")', '"undefined"');
78 input.setAttribute('formEnctype', undefined);
79 shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
80 input.formMethod = undefined;
81 shouldBe('input.formMethod', '"get"');
82 shouldBe('input.getAttribute("formMethod")', '"undefined"');
83 input.setAttribute('formMethod', undefined);
84 shouldBe('input.formMethod', '"get"');
85 input.formTarget = undefined;
86 shouldBe('input.formTarget', '"undefined"');
87 shouldBe('input.getAttribute("formTarget")', '"undefined"');
88 input.setAttribute('formTarget', undefined);
89 shouldBe('input.formTarget', '"undefined"');
90
91 debug('');
92 debug('Setting non-string for input:');
93 input.formEnctype = 256;
94 shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
95 shouldBe('input.getAttribute("formEnctype")', '"256"');
96 input.setAttribute('formEnctype', 256);
97 shouldBe('input.formEnctype', '"application/x-www-form-urlencoded"');
98 input.formMethod = 256;
99 shouldBe('input.formMethod', '"get"');
100 shouldBe('input.getAttribute("formMethod")', '"256"');
101 input.setAttribute('formMethod', 256);
102 shouldBe('input.formMethod', '"get"');
103 input.formTarget = 256;
104 shouldBe('input.formTarget', '"256"');
105 shouldBe('input.getAttribute("formTarget")', '"256"');
106 input.setAttribute('formTarget', 256);
107 shouldBe('input.formTarget', '"256"');
108
109 var button = document.createElement('button');
110 debug('');
111 debug('Ordinary values for button:');
112 button.type = "submit";
113 shouldBe('button.formAction', '""');
114 shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
115 shouldBeEqualToString("button.formMethod", "");
116 shouldBe('button.formTarget', '""');
117
118 button.setAttribute('formAction', 'http://localhost');
119 shouldBe('button.formAction', '"http://localhost/"');
120 button.setAttribute('formAction', 'http://localhost/');
121 shouldBe('button.formAction', '"http://localhost/"');
122 button.setAttribute('formEnctype', 'text/plain');
123 shouldBe('button.formEnctype', '"text/plain"');
124 button.setAttribute('formEnctype', 'na');
125 shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
126 button.setAttribute('formMethod', 'GET');
127 shouldBe('button.formMethod', '"get"');
128 button.setAttribute('formMethod', 'na');
129 shouldBe('button.formMethod', '"get"');
130 button.setAttribute('formTarget', '_blank');
131 shouldBe('button.formTarget', '"_blank"');
132 button.setAttribute('formTarget', 'na');
133 shouldBe('button.formTarget', '"na"');
134
135 button.formAction = 'http://example.com';
136 shouldBe('button.formAction', '"http://example.com/"');
137 button.formAction = 'http://example.com/';
138 shouldBe('button.formAction', '"http://example.com/"');
139 button.formEnctype = 'text/plain';
140 shouldBe('button.formEnctype', '"text/plain"');
141 button.formEnctype = 'nota';
142 shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
143 button.formMethod = 'POST';
144 shouldBe('button.formMethod', '"post"');
145 button.formMethod = 'nota';
146 shouldBe('button.formMethod', '"get"');
147 button.formTarget = 'http://example.com';
148 shouldBe('button.formTarget', '"http://example.com"');
149 button.formTarget = 'nota';
150 shouldBe('button.formTarget', '"nota"');
151
152 debug('');
153 debug('Setting null for button:');
154 button.formEnctype = null;
155 shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
156 shouldBe('button.getAttribute("formEnctype")', 'null');
157 button.setAttribute('formEnctype', null);
158 shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
159 button.formMethod = null;
160 shouldBeEqualToString("button.formMethod", "");
161 shouldBe('button.getAttribute("formMethod")', 'null');
162 button.setAttribute('formMethod', null);
163 shouldBe('button.formMethod', '"get"');
164 button.formTarget = null;
165 shouldBe('button.formTarget', '""');
166 shouldBe('button.getAttribute("formTarget")', 'null');
167 button.setAttribute('formTarget', null);
168 shouldBe('button.formTarget', '"null"');
169
170 debug('');
171 debug('Setting undefined for button:');
172 button.formEnctype = undefined;
173 shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
174 shouldBe('button.getAttribute("formEnctype")', '"undefined"');
175 button.setAttribute('formEnctype', undefined);
176 shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
177 button.formMethod = undefined;
178 shouldBe('button.formMethod', '"get"');
179 shouldBe('button.getAttribute("formMethod")', '"undefined"');
180 button.setAttribute('formMethod', undefined);
181 shouldBe('button.formMethod', '"get"');
182 button.formTarget = undefined;
183 shouldBe('button.formTarget', '"undefined"');
184 shouldBe('button.getAttribute("formTarget")', '"undefined"');
185 button.setAttribute('formTarget', undefined);
186 shouldBe('button.formTarget', '"undefined"');
187
188 debug('');
189 debug('Setting non-string for button:');
190 button.formEnctype = 256;
191 shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
192 shouldBe('button.getAttribute("formEnctype")', '"256"');
193 button.setAttribute('formEnctype', 512);
194 shouldBe('button.formEnctype', '"application/x-www-form-urlencoded"');
195 button.formMethod = 128;
196 shouldBe('button.formMethod', '"get"');
197 shouldBe('button.getAttribute("formMethod")', '"128"');
198 button.setAttribute('formMethod', 17);
199 shouldBe('button.formMethod', '"get"');
200 button.formTarget = 100;
201 shouldBe('button.formTarget', '"100"');
202 shouldBe('button.getAttribute("formTarget")', '"100"');
203 button.setAttribute('formTarget', 281);
204 shouldBe('button.formTarget', '"281"');
205 </script>
206 <script src="../../fast/js/resources/js-test-post.js"></script>
207 </body>
208 </html>