Chromium Code Reviews| Index: LayoutTests/fast/forms/select/select-add.html |
| diff --git a/LayoutTests/fast/forms/select/select-add.html b/LayoutTests/fast/forms/select/select-add.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..993d06a91b170ec3c353fb73add25bc8a8cf75a2 |
| --- /dev/null |
| +++ b/LayoutTests/fast/forms/select/select-add.html |
| @@ -0,0 +1,93 @@ |
| +<!DOCTYPE html> |
| +<html> |
| +<head> |
| +<script src="../../../resources/js-test.js"></script> |
| +</head> |
| +<body> |
| +<script> |
| +description('Test select.add() method'); |
| + |
| +debug('Test select'); |
| +test(false); |
| + |
| +debug('Test select multiple'); |
| +test(true); |
| + |
| +var select; |
| + |
| +function resetSelect(multiple) { |
| + select = document.createElement('select'); |
|
tkent
2014/03/27 06:13:35
We usually use four space indentation.
keishi
2014/03/27 06:52:03
Done.
|
| + select.multiple = multiple; |
| + select.appendChild(new Option("0", "0", false, false)); |
| + select.appendChild(new Option("1", "1", false, false)); |
| + select.appendChild(new Option("2", "2", false, false)); |
| +} |
| + |
| +function addOption(index) { |
| + select.add(new Option('X', 'X', false, false), index); |
| + return getSelectOptions(); |
| +} |
| + |
| +function getSelectOptions() { |
| + var values = []; |
|
tkent
2014/03/27 06:13:35
Ditto.
keishi
2014/03/27 06:52:03
Done.
|
| + for (var i = 0; i < select.options.length; ++i) { |
| + values.push(select.options[i].value); |
| + } |
| + return values.join(","); |
| +} |
| + |
| +function test(multiple) { |
| + resetSelect(multiple); |
| + shouldBeEqualToString('addOption(0)', 'X,0,1,2'); |
| + |
| + resetSelect(multiple); |
| + shouldBeEqualToString('addOption(1)', '0,X,1,2'); |
| + |
| + resetSelect(multiple); |
| + shouldBeEqualToString('addOption(2)', '0,1,X,2'); |
| + |
| + resetSelect(multiple); |
| + shouldBeEqualToString('addOption(3)', '0,1,2,X'); |
| + |
| + resetSelect(multiple); |
| + shouldBeEqualToString('addOption(100)', '0,1,2,X'); |
| + |
| + resetSelect(multiple); |
| + shouldBeEqualToString('addOption(-100)', '0,1,2,X'); |
| + |
| + resetSelect(multiple); |
| + select.add(new Option('X', 'X', false, false)); |
| + shouldBeEqualToString('getSelectOptions()', '0,1,2,X'); |
| + |
| + resetSelect(multiple); |
| + shouldBeEqualToString('addOption(null)', '0,1,2,X'); |
| + |
| + resetSelect(multiple); |
| + shouldBeEqualToString('addOption(NaN)', 'X,0,1,2'); |
| + |
| + resetSelect(multiple); |
| + shouldBeEqualToString('addOption(Infinity)', 'X,0,1,2'); |
| + |
| + resetSelect(multiple); |
| + shouldBeEqualToString('addOption(-Infinity)', 'X,0,1,2'); |
| + |
| + resetSelect(multiple); |
| + shouldBeEqualToString('addOption("foo")', 'X,0,1,2'); |
| + |
| + resetSelect(multiple); |
| + shouldThrow('select.add()'); |
| + shouldThrow('select.add("foo")'); |
| + shouldThrow('select.add("foo", 0)'); |
| + shouldThrow('select.add(null)'); |
| + shouldThrow('select.add(null, 0)'); |
| + |
| + resetSelect(multiple); |
| + var group = document.createElement('optgroup'); |
| + group.appendChild(new Option('X', 'X', false, false)); |
| + group.appendChild(new Option('Y', 'Y', false, false)); |
| + select.add(group, 1); |
| + shouldBeEqualToString('getSelectOptions()', '0,X,Y,1,2'); |
| +} |
| +</script> |
| +</body> |
| +</html> |