tizen beta release
[framework/web/webkit-efl.git] / LayoutTests / fast / forms / script-tests / form-collection-elements-order.js
1 description("This test examines the order of form associated elements which are classified as 'listed'.");
2
3 var container = document.createElement('div');
4 document.body.appendChild(container);
5 var owner;
6
7 function checkOrder(victims) {
8     if (owner.elements.length != victims.length)
9         return 'length mismatch, elements.length = ' + owner.elements.length +
10                ', expected length = ' + victims.length;
11     for (var i = 0; i < victims.length; ++i)
12         if (owner.elements[i] != victims[i])
13             return 'element mismatch at index ' + i;
14     return 'OK';
15 }
16
17 debug('- Checks the order of form associated elements.');
18 container.innerHTML = '<form id=owner>' +
19     '<button name=victim></button>' +
20     '<fieldset name=victim>Test</fieldset>' +
21     '<input name=victim/>' +
22     '<keygen name=victim></keygen>' +
23     '<label name=victim></label>' +
24     '<meter name=victim></meter>' +
25     '<object name=victim></object>' +
26     '<output name=victim></output>' +
27     '<progress name=victim></progress>' +
28     '<select name=victim></select>' +
29     '<textarea name=victim></textarea>'+
30     '</form>';
31 owner = document.getElementById('owner');
32 var button = document.getElementsByTagName('button')[0];
33 var fieldset = document.getElementsByTagName('fieldset')[0];
34 var input = document.getElementsByTagName('input')[0];
35 var keygen = document.getElementsByTagName('keygen')[0];
36 var label = document.getElementsByTagName('label')[0];
37 var meter = document.getElementsByTagName('meter')[0];
38 var object = document.getElementsByTagName('object')[0];
39 var output = document.getElementsByTagName('output')[0];
40 var progress = document.getElementsByTagName('progress')[0];
41 var select = document.getElementsByTagName('select')[0];
42 var textarea = document.getElementsByTagName('textarea')[0];
43 shouldBe('checkOrder([button, fieldset, input, keygen, object, output, select, textarea])', '"OK"');
44
45 debug('');
46 debug('- Checks the order after some elements removed/inserted.');
47 owner.removeChild(object);
48 shouldBe('checkOrder([button, fieldset, input, keygen, output, select, textarea])', '"OK"');
49 owner.removeChild(button);
50 shouldBe('checkOrder([fieldset, input, keygen, output, select, textarea])', '"OK"');
51 owner.insertBefore(object, fieldset);
52 shouldBe('checkOrder([object, fieldset, input, keygen, output, select, textarea])', '"OK"');
53 owner.appendChild(button);
54 shouldBe('checkOrder([object, fieldset, input, keygen, output, select, textarea, button])', '"OK"');
55
56 debug('');
57 debug('- Checks the order of form associated elements with form attribute.');
58 container.innerHTML = '<button name=victim form=owner></button>' +
59     '<fieldset name=victim form=owner>Test</fieldset>' +
60     '<input name=victim form=owner />' +
61     '<keygen name=victim form=owner></keygen>' +
62     '<form id=owner>' +
63     '<label name=victim></label>' +
64     '<meter name=victim></meter>' +
65     '<object name=victim></object>' +
66     '</form>' +
67     '<output name=victim form=owner></output>' +
68     '<progress name=victim form=owner></progress>' +
69     '<select name=victim form=owner></select>' +
70     '<textarea name=victim form=owner></textarea>';
71 owner = document.getElementById('owner');
72 button = document.getElementsByTagName('button')[0];
73 fieldset = document.getElementsByTagName('fieldset')[0];
74 input = document.getElementsByTagName('input')[0];
75 keygen = document.getElementsByTagName('keygen')[0];
76 label = document.getElementsByTagName('label')[0];
77 meter = document.getElementsByTagName('meter')[0];
78 object = document.getElementsByTagName('object')[0];
79 output = document.getElementsByTagName('output')[0];
80 progress = document.getElementsByTagName('progress')[0];
81 select = document.getElementsByTagName('select')[0];
82 textarea = document.getElementsByTagName('textarea')[0];
83 shouldBe('checkOrder([button, fieldset, input, keygen, object, output, select, textarea])', '"OK"');
84
85 debug('');
86 debug('- Checks the order after some elements removed/inserted with form attribute.');
87 owner.removeChild(object);
88 shouldBe('checkOrder([button, fieldset, input, keygen, output, select, textarea])', '"OK"');
89 container.removeChild(button);
90 shouldBe('checkOrder([fieldset, input, keygen, output, select, textarea])', '"OK"');
91 container.removeChild(textarea);
92 shouldBe('checkOrder([fieldset, input, keygen, output, select])', '"OK"');
93 owner.appendChild(object);
94 shouldBe('checkOrder([fieldset, input, keygen, object, output, select])', '"OK"');
95 container.insertBefore(textarea, fieldset);
96 shouldBe('checkOrder([textarea, fieldset, input, keygen, object, output, select])', '"OK"');
97 container.appendChild(button);
98 shouldBe('checkOrder([textarea, fieldset, input, keygen, object, output, select, button])', '"OK"');