| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <p id="description"></p> |
| <div id="console"></div> |
| |
| <div id="test" style="display:none;"></div> |
| |
| <script> |
| description('Test for the datalist element.'); |
| |
| var testElement = document.getElementById("test"); |
| |
| function createForm(id) { |
| var form = document.createElement("form"); |
| form.id = id; |
| testElement.appendChild(form); |
| return form; |
| }; |
| |
| function createInput(form) { |
| var input = document.createElement("input"); |
| input.setAttribute("form", form); |
| testElement.appendChild(input); |
| return input; |
| }; |
| |
| function test1() { |
| debug("Test 1: Insert new input after form."); |
| form = createForm("test1"); |
| input = createInput("test1"); |
| shouldBe('form.elements.length', '1'); |
| shouldBe('form.elements[0]', 'input'); |
| }; |
| |
| function test2() { |
| debug("Test 2: Insert two forms with same id."); |
| input = createInput("test2"); |
| form1 = createForm("test2"); |
| form2 = createForm("test2"); |
| shouldBe('form1.elements.length', '1'); |
| shouldBe('form2.elements.length', '0'); |
| shouldBe('form1.elements[0]', 'input'); |
| }; |
| |
| function test3() { |
| debug("Test 3: Change form id."); |
| form = createForm("test3-1"); |
| input = createInput("test3-2"); |
| form.id = "test3-2"; |
| shouldBe('form.elements.length', '1'); |
| shouldBe('form.elements[0]', 'input'); |
| }; |
| |
| function test4() { |
| debug("Test 4: Order."); |
| input1 = createInput("test4"); |
| input2 = createInput("test4"); |
| form = createForm("test4"); |
| input3 = document.createElement("input"); |
| form.appendChild(input3); |
| input4 = createInput("test4"); |
| input5 = createInput("test4"); |
| |
| shouldBe('form.elements.length', '5'); |
| shouldBe('form.elements[0]', 'input1'); |
| shouldBe('form.elements[1]', 'input2'); |
| shouldBe('form.elements[2]', 'input3'); |
| shouldBe('form.elements[3]', 'input4'); |
| shouldBe('form.elements[4]', 'input5'); |
| |
| input2.setAttribute("form", ""); |
| shouldBe('form.elements.length', '4'); |
| shouldBe('form.elements[0]', 'input1'); |
| shouldBe('form.elements[1]', 'input3'); |
| shouldBe('form.elements[2]', 'input4'); |
| shouldBe('form.elements[3]', 'input5'); |
| }; |
| |
| function test5() { |
| debug("Test 5: Add new element with form attribute to the form."); |
| form = document.createElement("form"); |
| form.id = "test5"; |
| form.innerHTML = "<textarea id=\"test5-input1\"></textarea><input form=test5 id=\"test5-input2\"><select id=\"test5-input3\">"; |
| test.appendChild(form); |
| input1 = document.getElementById("test5-input1"); |
| input2 = document.getElementById("test5-input2"); |
| input3 = document.getElementById("test5-input3"); |
| shouldBe('form.elements.length', '3'); |
| shouldBe('form.elements[0]', 'input1'); |
| shouldBe('form.elements[1]', 'input2'); |
| shouldBe('form.elements[2]', 'input3'); |
| }; |
| |
| test1(); |
| test2(); |
| test3(); |
| test4(); |
| test5(); |
| |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |