8e6914c6ffd06ed5beb2a12bdf342aea5c0de856
[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="../../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', 'location.href');
17 shouldBeEqualToString('input.formEnctype', '');
18 shouldBeEqualToString('input.formMethod', '');
19 shouldBeEqualToString('input.formTarget', '');
20
21 input.setAttribute('formAction', 'http://localhost');
22 shouldBeEqualToString('input.formAction', 'http://localhost/');
23 input.setAttribute('formAction', 'http://localhost/');
24 shouldBeEqualToString('input.formAction', 'http://localhost/');
25 input.setAttribute('formEnctype', 'text/plain');
26 shouldBeEqualToString('input.formEnctype', 'text/plain');
27 input.setAttribute('formEnctype', 'na');
28 shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
29 input.setAttribute('formMethod', 'GET');
30 shouldBeEqualToString('input.formMethod', 'get');
31 input.setAttribute('formMethod', 'ni');
32 shouldBeEqualToString('input.formMethod', 'get');
33 input.setAttribute('formTarget', '_blank');
34 shouldBeEqualToString('input.formTarget', '_blank');
35 input.setAttribute('formTarget', 'nu');
36 shouldBeEqualToString('input.formTarget', 'nu');
37
38 input.formAction = 'http://example.com';
39 shouldBeEqualToString('input.formAction', 'http://example.com/');
40 input.formAction = 'http://example.com/';
41 shouldBeEqualToString('input.formAction', 'http://example.com/');
42 input.formEnctype = 'text/plain';
43 shouldBeEqualToString('input.formEnctype', 'text/plain');
44 input.formEnctype = 'nota';
45 shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
46 input.formMethod = 'POST';
47 shouldBeEqualToString('input.formMethod', 'post');
48 input.formMethod = 'neta';
49 shouldBeEqualToString('input.formMethod', 'get');
50 input.formTarget = 'http://example.com';
51 shouldBeEqualToString('input.formTarget', 'http://example.com');
52 input.formTarget = 'nta';
53 shouldBeEqualToString('input.formTarget', 'nta');
54
55 debug('');
56 debug('Setting null for input:');
57 input.formEnctype = null;
58 shouldBeEqualToString('input.formEnctype', '');
59 shouldBe('input.getAttribute("formEnctype")', 'null');
60 input.setAttribute('formEnctype', null);
61 shouldBeEqualToString('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 shouldBeEqualToString('input.formMethod', 'get');
67 input.formTarget = null;
68 shouldBeEqualToString('input.formTarget', '');
69 shouldBe('input.getAttribute("formTarget")', 'null');
70 input.setAttribute('formTarget', null);
71 shouldBeEqualToString('input.formTarget', 'null');
72
73 debug('');
74 debug('Setting undefined for input:');
75 input.formEnctype = undefined;
76 shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
77 shouldBeEqualToString('input.getAttribute("formEnctype")', 'undefined');
78 input.setAttribute('formEnctype', undefined);
79 shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
80 input.formMethod = undefined;
81 shouldBeEqualToString('input.formMethod', 'get');
82 shouldBeEqualToString('input.getAttribute("formMethod")', 'undefined');
83 input.setAttribute('formMethod', undefined);
84 shouldBeEqualToString('input.formMethod', 'get');
85 input.formTarget = undefined;
86 shouldBeEqualToString('input.formTarget', 'undefined');
87 shouldBeEqualToString('input.getAttribute("formTarget")', 'undefined');
88 input.setAttribute('formTarget', undefined);
89 shouldBeEqualToString('input.formTarget', 'undefined');
90
91 debug('');
92 debug('Setting non-string for input:');
93 input.formEnctype = 256;
94 shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
95 shouldBeEqualToString('input.getAttribute("formEnctype")', '256');
96 input.setAttribute('formEnctype', 256);
97 shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
98 input.formMethod = 256;
99 shouldBeEqualToString('input.formMethod', 'get');
100 shouldBeEqualToString('input.getAttribute("formMethod")', '256');
101 input.setAttribute('formMethod', 256);
102 shouldBeEqualToString('input.formMethod', 'get');
103 input.formTarget = 256;
104 shouldBeEqualToString('input.formTarget', '256');
105 shouldBeEqualToString('input.getAttribute("formTarget")', '256');
106 input.setAttribute('formTarget', 256);
107 shouldBeEqualToString('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', 'location.href');
114 shouldBeEqualToString('button.formEnctype', '');
115 shouldBeEqualToString('button.formMethod', '');
116 shouldBeEqualToString('button.formTarget', '');
117
118 button.setAttribute('formAction', 'http://localhost');
119 shouldBeEqualToString('button.formAction', 'http://localhost/');
120 button.setAttribute('formAction', 'http://localhost/');
121 shouldBeEqualToString('button.formAction', 'http://localhost/');
122 button.setAttribute('formEnctype', 'text/plain');
123 shouldBeEqualToString('button.formEnctype', 'text/plain');
124 button.setAttribute('formEnctype', 'na');
125 shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
126 button.setAttribute('formMethod', 'GET');
127 shouldBeEqualToString('button.formMethod', 'get');
128 button.setAttribute('formMethod', 'na');
129 shouldBeEqualToString('button.formMethod', 'get');
130 button.setAttribute('formTarget', '_blank');
131 shouldBeEqualToString('button.formTarget', '_blank');
132 button.setAttribute('formTarget', 'na');
133 shouldBeEqualToString('button.formTarget', 'na');
134
135 button.formAction = 'http://example.com';
136 shouldBeEqualToString('button.formAction', 'http://example.com/');
137 button.formAction = 'http://example.com/';
138 shouldBeEqualToString('button.formAction', 'http://example.com/');
139 button.formEnctype = 'text/plain';
140 shouldBeEqualToString('button.formEnctype', 'text/plain');
141 button.formEnctype = 'nota';
142 shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
143 button.formMethod = 'POST';
144 shouldBeEqualToString('button.formMethod', 'post');
145 button.formMethod = 'nota';
146 shouldBeEqualToString('button.formMethod', 'get');
147 button.formTarget = 'http://example.com';
148 shouldBeEqualToString('button.formTarget', 'http://example.com');
149 button.formTarget = 'nota';
150 shouldBeEqualToString('button.formTarget', 'nota');
151
152 debug('');
153 debug('Setting null for button:');
154 button.formEnctype = null;
155 shouldBeEqualToString('button.formEnctype', '');
156 shouldBe('button.getAttribute("formEnctype")', 'null');
157 button.setAttribute('formEnctype', null);
158 shouldBeEqualToString('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 shouldBeEqualToString('button.formMethod', 'get');
164 button.formTarget = null;
165 shouldBeEqualToString('button.formTarget', '');
166 shouldBe('button.getAttribute("formTarget")', 'null');
167 button.setAttribute('formTarget', null);
168 shouldBeEqualToString('button.formTarget', 'null');
169
170 debug('');
171 debug('Setting undefined for button:');
172 button.formEnctype = undefined;
173 shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
174 shouldBeEqualToString('button.getAttribute("formEnctype")', 'undefined');
175 button.setAttribute('formEnctype', undefined);
176 shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
177 button.formMethod = undefined;
178 shouldBeEqualToString('button.formMethod', 'get');
179 shouldBeEqualToString('button.getAttribute("formMethod")', 'undefined');
180 button.setAttribute('formMethod', undefined);
181 shouldBeEqualToString('button.formMethod', 'get');
182 button.formTarget = undefined;
183 shouldBeEqualToString('button.formTarget', 'undefined');
184 shouldBeEqualToString('button.getAttribute("formTarget")', 'undefined');
185 button.setAttribute('formTarget', undefined);
186 shouldBeEqualToString('button.formTarget', 'undefined');
187
188 debug('');
189 debug('Setting non-string for button:');
190 button.formEnctype = 256;
191 shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
192 shouldBeEqualToString('button.getAttribute("formEnctype")', '256');
193 button.setAttribute('formEnctype', 512);
194 shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
195 button.formMethod = 128;
196 shouldBeEqualToString('button.formMethod', 'get');
197 shouldBeEqualToString('button.getAttribute("formMethod")', '128');
198 button.setAttribute('formMethod', 17);
199 shouldBeEqualToString('button.formMethod', 'get');
200 button.formTarget = 100;
201 shouldBeEqualToString('button.formTarget', '100');
202 shouldBeEqualToString('button.getAttribute("formTarget")', '100');
203 button.setAttribute('formTarget', 281);
204 shouldBeEqualToString('button.formTarget', '281');
205 </script>
206 <script src="../../resources/js-test-post.js"></script>
207 </body>
208 </html>