1 description('Various tests for .willValidate property');
3 var parent = document.createElement('div');
4 document.body.appendChild(parent);
6 debug('Existence of .willValidate');
7 parent.innerHTML = '<form>'
8 + '<input name="victim"/>'
9 + '<textarea name="victim"></textarea>'
10 + '<fieldset name="victim">Test</fieldset>'
11 + '<button name="victim">'
12 + '<select name="victim"></select>'
13 + '<output name="victim"></output>'
14 + '<object name="victim"></object>'
15 + '<keygen name="victim">'
17 var controls = document.getElementsByName('victim');
18 for (var i = 0; i < controls.length; i++)
19 shouldBe('typeof controls[i].willValidate', '"boolean"');
22 debug('Form association');
23 parent.innerHTML = '<input name="test">';
24 var input = document.getElementsByTagName("input")[0];
25 shouldBeTrue('input.willValidate');
26 parent.innerHTML = '<form><input name="test"></form>';
27 input = document.getElementsByTagName("input")[0];
28 shouldBeTrue('input.willValidate');
31 debug('Control name');
32 parent.innerHTML = '<form><input></form>';
33 input = document.getElementsByTagName("input")[0];
34 shouldBeTrue('input.willValidate');
35 parent.innerHTML = '<form><input name="test"></form>';
36 input = document.getElementsByTagName("input")[0];
37 shouldBeTrue('input.willValidate');
40 debug('Disabled control');
41 parent.innerHTML = '<form><input name="test" disabled></form>';
42 input = document.getElementsByTagName("input")[0];
43 shouldBeFalse('input.willValidate');
46 debug('Read-only control');
47 parent.innerHTML = '<form><input name="test" readonly></form>';
48 input = document.getElementsByTagName("input")[0];
49 shouldBeFalse('input.willValidate');
53 parent.innerHTML = '<form><input name="test"></form>';
54 input = document.getElementsByTagName("input")[0];
55 shouldBeTrue('input.willValidate');
56 shouldBeFalse('input.type = "button"; input.willValidate');
57 shouldBeTrue('input.type = "submit"; input.willValidate');
58 shouldBeFalse('input.type = "hidden"; input.willValidate');
59 shouldBeFalse('input.type = "reset"; input.willValidate');
62 debug('Fieldset element');
63 parent.innerHTML = '<form><fieldset><p>Fieldset test</p></fieldtset></form>';
64 shouldBeFalse('document.getElementsByTagName("fieldset")[0].willValidate');
67 debug('Textarea element');
68 parent.innerHTML = '<form><textarea name="text"></textarea></form>';
69 shouldBeTrue('document.getElementsByTagName("textarea")[0].willValidate');
72 debug('Output element');
73 parent.innerHTML = '<form><output></output></form>';
74 shouldBeFalse('document.getElementsByTagName("output")[0].willValidate');
77 debug('Object element');
78 parent.innerHTML = '<form><object></object></form>';
79 shouldBeFalse('document.getElementsByTagName("object")[0].willValidate');
82 debug('Keygen element');
83 parent.innerHTML = '<form><keygen></form>';
84 shouldBeFalse('document.getElementsByTagName("keygen")[0].willValidate');