Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(113)

Unified Diff: LayoutTests/fast/forms/select/select-add.html

Issue 213773003: select.add() should support optgroup adding and before index (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..6c83f888ab78ddf74263222eba092a479e3511df
--- /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');
+ 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 = [];
+ 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>
« no previous file with comments | « LayoutTests/fast/dom/incompatible-operations-expected.txt ('k') | LayoutTests/fast/forms/select/select-add-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698