OLD | NEW |
---|---|
(Empty) | |
1 <!doctype html> | |
2 <html> | |
3 <body> | |
esprehn
2013/12/19 11:02:48
We usually leave out <html> and <body>
sof
2013/12/19 12:15:05
Done.
| |
4 <script src="../../resources/js-test.js"></script> | |
5 <form id="f1"> | |
6 <button id=n1></button> | |
7 <fieldset id=n1><legend id=legend1></legend></fieldset> | |
8 <input name=n1 type=hidden> | |
9 <input name=n1 type=image> | |
10 <input name=n1 type=text> | |
11 <input name=n1 type=radio> | |
12 <keygen id=n1></keygen> | |
13 <output id=n1></output> | |
14 <object name=n1></object> | |
15 <select name=n1><option id=n1></option></select> | |
16 <textarea id=n1></textarea> | |
17 <div id=n1></div> | |
18 <option id=n1></option> | |
19 </form> | |
20 <form id="f2"> | |
21 <button id=n1></button> | |
esprehn
2013/12/19 11:02:48
You have duplicate ids in here, is that on purpose
sof
2013/12/19 12:15:05
It's key that they are for this test, yes.
| |
22 <keygen id=n1></keygen> | |
23 <output id=n1></output> | |
24 <object name=n1></object> | |
25 <select name=n1><option id=n1></option></select> | |
26 <input name=n1 type=hidden> | |
27 <input name=n1 type=image> | |
28 <input name=n1 type=text> | |
29 <input name=n2 type=image> | |
30 <img name=n2></img> | |
31 <img id=n2></img> | |
32 </form> | |
33 <script> | |
34 description("Test RadioNodeLists returned by the HTMLFormElement named-getter.") ; | |
35 | |
36 var form1 = document.getElementById("f1"); | |
37 shouldBe("form1.elements.length", "10"); | |
38 | |
39 var radioNodeList; | |
40 | |
41 function testListedElements() { | |
42 debug("Check that only 'listed elements' are included in the list, if any.") ; | |
43 radioNodeList = form1["n1"]; | |
44 shouldBe("radioNodeList.length", "10"); | |
45 | |
46 shouldBeTrue("radioNodeList[0] instanceof HTMLButtonElement"); | |
47 shouldBeTrue("radioNodeList[1] instanceof HTMLFieldSetElement"); | |
48 shouldBeTrue("radioNodeList[2] instanceof HTMLInputElement"); | |
49 shouldBe("radioNodeList[2].type", "'hidden'"); | |
50 shouldBeTrue("radioNodeList[3] instanceof HTMLInputElement"); | |
51 shouldBe("radioNodeList[3].type", "'text'"); | |
52 shouldBeTrue("radioNodeList[4] instanceof HTMLInputElement"); | |
53 shouldBe("radioNodeList[4].type", "'radio'"); | |
54 shouldBeTrue("radioNodeList[5] instanceof HTMLKeygenElement"); | |
55 shouldBeTrue("radioNodeList[6] instanceof HTMLOutputElement"); | |
56 shouldBeTrue("radioNodeList[7] instanceof HTMLObjectElement"); | |
57 shouldBeTrue("radioNodeList[8] instanceof HTMLSelectElement"); | |
58 shouldBeTrue("radioNodeList[9] instanceof HTMLTextAreaElement"); | |
59 debug(""); | |
esprehn
2013/12/19 11:02:48
Remove this empty debug.
sof
2013/12/19 12:15:05
Done.
| |
60 } | |
61 | |
62 function testImageElement2ndPhase() { | |
esprehn
2013/12/19 11:02:48
Can this just be a separate test?
sof
2013/12/19 12:15:05
ok, done.
| |
63 debug("Check that if no 'listed elements' match by name, img elements are pi cked instead."); | |
64 | |
65 function verifyLength(n) { | |
66 shouldBe("radioNodeList.length", n.toString()); | |
67 for (var i = 0; i < n; i++) | |
68 shouldBeTrue("radioNodeList[" + i + "] instanceof HTMLImageElement") ; | |
esprehn
2013/12/19 11:02:48
Dynamic tests like this are very hard to follow, I
sof
2013/12/19 12:15:05
ok, abstracted out.
| |
69 } | |
70 | |
71 var form2 = document.getElementById("f2"); | |
72 radioNodeList = form2["n2"]; | |
73 verifyLength(2); | |
74 | |
75 var button = document.createElement("button"); | |
76 button.name = "n2"; | |
77 form2.appendChild(button); | |
78 verifyLength(2); | |
79 | |
80 var img = document.createElement("img"); | |
81 img.name = "n2"; | |
82 form2.appendChild(img); | |
83 verifyLength(3); | |
84 } | |
85 | |
86 testListedElements(); | |
87 testImageElement2ndPhase(); | |
88 </script> | |
89 <p id="description"></p> | |
90 </body> | |
91 </html> | |
OLD | NEW |