110 lines
3.9 KiB
HTML
110 lines
3.9 KiB
HTML
<!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>
|
|
<script>
|
|
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.");
|
|
|
|
var container = document.createElement('div');
|
|
document.body.appendChild(container);
|
|
|
|
debug('');
|
|
debug('- Test for the case where some elements have form attribute but some others not.');
|
|
container.innerHTML = '<form id=owner>' +
|
|
' <input id=input1 name=victim />' +
|
|
' <input id=input2 name=victim form=owner />' +
|
|
' <input id=input3 name=victim />' +
|
|
'</form>';
|
|
var owner = document.getElementById('owner');
|
|
var input1 = document.getElementById('input1');
|
|
var input2 = document.getElementById('input2');
|
|
var input3 = document.getElementById('input3');
|
|
shouldBe('owner.elements.length', '3');
|
|
shouldBe('owner.elements[0]', 'input1');
|
|
shouldBe('owner.elements[1]', 'input2');
|
|
shouldBe('owner.elements[2]', 'input3');
|
|
|
|
container.innerHTML = '<form id=owner>' +
|
|
' <input id=input1 name=victim form=owner />' +
|
|
' <input id=input2 name=victim />' +
|
|
' <input id=input3 name=victim form=owner />' +
|
|
'</form>';
|
|
owner = document.getElementById('owner');
|
|
input1 = document.getElementById('input1');
|
|
input2 = document.getElementById('input2');
|
|
input3 = document.getElementById('input3');
|
|
shouldBe('owner.elements.length', '3');
|
|
shouldBe('owner.elements[0]', 'input1');
|
|
shouldBe('owner.elements[1]', 'input2');
|
|
shouldBe('owner.elements[2]', 'input3');
|
|
|
|
debug('');
|
|
debug('- Test for inserting/removing a form-associated element without form attribute.');
|
|
container.innerHTML = '<input name=victim id=before form=owner />' +
|
|
'<form id=owner action= method=GET>' +
|
|
' <input name=victim id=inner />' +
|
|
'</form>' +
|
|
'<input name=victim id=after form=owner />';
|
|
owner = document.getElementById('owner');
|
|
var before = document.getElementById('before');
|
|
var inner = document.getElementById('inner');
|
|
var after = document.getElementById('after');
|
|
|
|
var inner2 = document.createElement('input');
|
|
inner2.name = 'victim';
|
|
inner2.id = 'inner2';
|
|
owner.appendChild(inner2);
|
|
shouldBe('owner.elements.length', '4');
|
|
shouldBe('owner.elements[0]', 'before');
|
|
shouldBe('owner.elements[1]', 'inner');
|
|
shouldBe('owner.elements[2]', 'inner2');
|
|
shouldBe('owner.elements[3]', 'after');
|
|
|
|
owner.removeChild(inner);
|
|
owner.insertBefore(inner, inner2);
|
|
shouldBe('owner.elements.length', '4');
|
|
shouldBe('owner.elements[0]', 'before');
|
|
shouldBe('owner.elements[1]', 'inner');
|
|
shouldBe('owner.elements[2]', 'inner2');
|
|
shouldBe('owner.elements[3]', 'after');
|
|
|
|
debug('');
|
|
debug('- Test for inserting/removing a form-associated element with form attribute.');
|
|
var before2 = document.createElement('input');
|
|
before2.name = 'victim';
|
|
before2.id = 'before2';
|
|
before2.setAttribute('form', 'owner');
|
|
container.insertBefore(before2, owner);
|
|
var after2 = document.createElement('input');
|
|
after2.name = 'victim';
|
|
after2.id = 'after2';
|
|
after2.setAttribute('form', 'owner');
|
|
container.appendChild(after2);
|
|
shouldBe('owner.elements.length', '6');
|
|
shouldBe('owner.elements[0]', 'before');
|
|
shouldBe('owner.elements[1]', 'before2');
|
|
shouldBe('owner.elements[2]', 'inner');
|
|
shouldBe('owner.elements[3]', 'inner2');
|
|
shouldBe('owner.elements[4]', 'after');
|
|
shouldBe('owner.elements[5]', 'after2');
|
|
|
|
container.removeChild(before);
|
|
container.removeChild(after);
|
|
container.insertBefore(before, before2);
|
|
container.insertBefore(after, after2);
|
|
shouldBe('owner.elements.length', '6');
|
|
shouldBe('owner.elements[0]', 'before');
|
|
shouldBe('owner.elements[1]', 'before2');
|
|
shouldBe('owner.elements[2]', 'inner');
|
|
shouldBe('owner.elements[3]', 'inner2');
|
|
shouldBe('owner.elements[4]', 'after');
|
|
shouldBe('owner.elements[5]', 'after2');
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|