tizen beta release
[profile/ivi/webkit-efl.git] / LayoutTests / fast / forms / script-tests / form-attribute-elements-order2.js
1 description("This test examines the order of the elements attribute of a form element with form-associated elements with form attribute or witout form attibute.");
2
3 var container = document.createElement('div');
4 document.body.appendChild(container);
5
6 debug('');
7 debug('- Test for the case where some elements have form attribute but some others not.');
8 container.innerHTML = '<form id=owner>' +
9     '    <input id=input1 name=victim />' +
10     '    <input id=input2 name=victim form=owner />' +
11     '    <input id=input3 name=victim />' +
12     '</form>';
13 var owner = document.getElementById('owner');
14 var input1 = document.getElementById('input1');
15 var input2 = document.getElementById('input2');
16 var input3 = document.getElementById('input3');
17 shouldBe('owner.elements.length', '3');
18 shouldBe('owner.elements[0]', 'input1');
19 shouldBe('owner.elements[1]', 'input2');
20 shouldBe('owner.elements[2]', 'input3');
21
22 container.innerHTML = '<form id=owner>' +
23     '    <input id=input1 name=victim form=owner />' +
24     '    <input id=input2 name=victim />' +
25     '    <input id=input3 name=victim form=owner />' +
26     '</form>';
27 owner = document.getElementById('owner');
28 input1 = document.getElementById('input1');
29 input2 = document.getElementById('input2');
30 input3 = document.getElementById('input3');
31 shouldBe('owner.elements.length', '3');
32 shouldBe('owner.elements[0]', 'input1');
33 shouldBe('owner.elements[1]', 'input2');
34 shouldBe('owner.elements[2]', 'input3');
35
36 debug('');
37 debug('- Test for inserting/removing a form-associated element without form attribute.');
38 container.innerHTML = '<input name=victim id=before form=owner />' +
39     '<form id=owner action= method=GET>' +
40     '    <input name=victim id=inner />' +
41     '</form>' +
42     '<input name=victim id=after form=owner />';
43 owner = document.getElementById('owner');
44 var before = document.getElementById('before');
45 var inner = document.getElementById('inner');
46 var after = document.getElementById('after');
47
48 var inner2 = document.createElement('input');
49 inner2.name = 'victim';
50 inner2.id = 'inner2';
51 owner.appendChild(inner2);
52 shouldBe('owner.elements.length', '4');
53 shouldBe('owner.elements[0]', 'before');
54 shouldBe('owner.elements[1]', 'inner');
55 shouldBe('owner.elements[2]', 'inner2');
56 shouldBe('owner.elements[3]', 'after');
57
58 owner.removeChild(inner);
59 owner.insertBefore(inner, inner2);
60 shouldBe('owner.elements.length', '4');
61 shouldBe('owner.elements[0]', 'before');
62 shouldBe('owner.elements[1]', 'inner');
63 shouldBe('owner.elements[2]', 'inner2');
64 shouldBe('owner.elements[3]', 'after');
65
66 debug('');
67 debug('- Test for inserting/removing a form-associated element with form attribute.');
68 var before2 = document.createElement('input');
69 before2.name = 'victim';
70 before2.id = 'before2';
71 before2.setAttribute('form', 'owner');
72 container.insertBefore(before2, owner);
73 var after2 = document.createElement('input');
74 after2.name = 'victim';
75 after2.id = 'after2';
76 after2.setAttribute('form', 'owner');
77 container.appendChild(after2);
78 shouldBe('owner.elements.length', '6');
79 shouldBe('owner.elements[0]', 'before');
80 shouldBe('owner.elements[1]', 'before2');
81 shouldBe('owner.elements[2]', 'inner');
82 shouldBe('owner.elements[3]', 'inner2');
83 shouldBe('owner.elements[4]', 'after');
84 shouldBe('owner.elements[5]', 'after2');
85
86 container.removeChild(before);
87 container.removeChild(after);
88 container.insertBefore(before, before2);
89 container.insertBefore(after, after2);
90 shouldBe('owner.elements.length', '6');
91 shouldBe('owner.elements[0]', 'before');
92 shouldBe('owner.elements[1]', 'before2');
93 shouldBe('owner.elements[2]', 'inner');
94 shouldBe('owner.elements[3]', 'inner2');
95 shouldBe('owner.elements[4]', 'after');
96 shouldBe('owner.elements[5]', 'after2');