76 lines
2.3 KiB
HTML
76 lines
2.3 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../../resources/js-test.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
description('Test select.add() with optgroup');
|
|
|
|
var mySelect;
|
|
|
|
function resetSelection() {
|
|
mySelect = document.createElement('select');
|
|
mySelect.appendChild(new Option("0", "0", false, false));
|
|
mySelect.appendChild(new Option("1", "1", false, false));
|
|
mySelect.appendChild(new Option("2", "2", false, false));
|
|
}
|
|
|
|
function deepCopy() {
|
|
var copy = [];
|
|
for(var i = 0; i < mySelect.options.length; ++i)
|
|
copy.push(mySelect.options[i].value);
|
|
return copy.join(",");
|
|
}
|
|
|
|
function createOption(value) {
|
|
return new Option(value + "X", value, false, false);
|
|
}
|
|
|
|
function createGroup(value1, value2) {
|
|
var group = document.createElement('optgroup');
|
|
group.appendChild(new Option(value1 + "X", value1, false, false));
|
|
group.appendChild(new Option(value2 + "Y", value2, false, false));
|
|
return group;
|
|
}
|
|
|
|
function testAdd1(element) {
|
|
resetSelection();
|
|
mySelect.add(element);
|
|
return deepCopy();
|
|
}
|
|
|
|
function testAdd2(newelement, element) {
|
|
mySelect.add(newelement, element);
|
|
return deepCopy();
|
|
}
|
|
|
|
function testAdd3(newelement, index) {
|
|
resetSelection();
|
|
mySelect.add(newelement, index);
|
|
return deepCopy();
|
|
}
|
|
|
|
resetSelection();
|
|
debug('list elements are = ' + deepCopy());
|
|
shouldBeEqualToString('testAdd3(createGroup("Y1", "Y2"), null)', '0,1,2,Y1,Y2');
|
|
shouldBeEqualToString('testAdd3(createGroup("Y3", "Y4"), 0)', 'Y3,Y4,0,1,2');
|
|
shouldBeEqualToString('testAdd3(createGroup("Y5", "Y6"), 2)', '0,1,Y5,Y6,2');
|
|
shouldBeEqualToString('testAdd1(createGroup("Y7", "Y8"))', '0,1,2,Y7,Y8');
|
|
shouldBeEqualToString('testAdd1(createOption("Y9"))', '0,1,2,Y9');
|
|
resetSelection();
|
|
debug('list elements are = ' + deepCopy());
|
|
shouldBeEqualToString('testAdd2(createOption("Y10"), mySelect.options[2])', '0,1,Y10,2');
|
|
shouldBeEqualToString('testAdd2(createOption("Y11"), mySelect.options[1])', '0,Y11,1,Y10,2');
|
|
resetSelection();
|
|
debug('list elements are = ' + deepCopy());
|
|
shouldBeEqualToString('testAdd2(createGroup("Y12", "Y13"), mySelect.options[1])', '0,Y12,Y13,1,2');
|
|
shouldBeEqualToString('testAdd2(createGroup("Y14", "Y15"), mySelect.options[3])', '0,Y12,Y13,Y14,Y15,1,2');
|
|
resetSelection();
|
|
debug('list elements are = ' + deepCopy());
|
|
shouldThrow('testAdd2(createOption("Y16"), createOption("Y17"))');
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|