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