Added: trunk/LayoutTests/fast/dom/HTMLSelectElement/select-add-optgroup-expected.txt (0 => 177629)
--- trunk/LayoutTests/fast/dom/HTMLSelectElement/select-add-optgroup-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/dom/HTMLSelectElement/select-add-optgroup-expected.txt 2014-12-22 02:00:04 UTC (rev 177629)
@@ -0,0 +1,44 @@
+Test select.add() with optgroup
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS deepCopy() is "0,1,2,Y1"
+PASS deepCopy() is "0,1,2,Y2,Y1"
+PASS deepCopy() is "0,1,2,Y3,Y2,Y1"
+PASS deepCopy() is "0,1,2,Y4,Y3,Y2,Y1"
+PASS deepCopy() is "0,1,2,X,Y"
+PASS deepCopy() is "0,1,X,Y,2"
+PASS deepCopy() is "0,1,X,Y,X,Y,2"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS deepCopy() is "0,1,2,Y"
+PASS mySelect.add("foo") is undefined.
+PASS mySelect.add("foo", 0) is undefined.
+PASS mySelect.add(undefined) is undefined.
+PASS mySelect.add(undefined, 0) is undefined.
+PASS mySelect.add(null) is undefined.
+PASS mySelect.add(null, 0) is undefined.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/fast/dom/HTMLSelectElement/select-add-optgroup.html (0 => 177629)
--- trunk/LayoutTests/fast/dom/HTMLSelectElement/select-add-optgroup.html (rev 0)
+++ trunk/LayoutTests/fast/dom/HTMLSelectElement/select-add-optgroup.html 2014-12-22 02:00:04 UTC (rev 177629)
@@ -0,0 +1,170 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+</head>
+<body>
+<script>
+description('Test select.add() with optgroup');
+
+var mySelect;
+var selectedOptions;
+
+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(",");
+}
+
+resetSelection();
+var option1 = document.createElement("option");
+option1.text = "X1";
+option1.value = "Y1";
+mySelect.add(option1);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y1');
+
+var option2 = document.createElement("option");
+option2.text = "X2";
+option2.value = "Y2";
+mySelect.add(option2, option1);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y2,Y1');
+
+var option3 = document.createElement("option");
+option3.text = "X3";
+option3.value = "Y3";
+mySelect.add(option3, option2);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y3,Y2,Y1');
+
+var option4 = document.createElement("option");
+option4.text = "X4";
+option4.value = "Y4";
+mySelect.add(option4, mySelect.options[3]);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y4,Y3,Y2,Y1');
+
+resetSelection();
+var group1 = document.createElement('optgroup');
+group1.appendChild(new Option('X', 'X', false, false));
+group1.appendChild(new Option('Y', 'Y', false, false));
+mySelect.add(group1);
+shouldBeEqualToString('deepCopy()', '0,1,2,X,Y');
+
+resetSelection();
+var group2 = document.createElement('optgroup');
+group2.appendChild(new Option('X', 'X', false, false));
+group2.appendChild(new Option('Y', 'Y', false, false));
+mySelect.add(group2,mySelect.options[2]);
+shouldBeEqualToString('deepCopy()', '0,1,X,Y,2');
+
+var group3 = document.createElement('optgroup');
+group3.appendChild(new Option('X', 'X', false, false));
+group3.appendChild(new Option('Y', 'Y', false, false));
+mySelect.add(group3,group2);
+shouldBeEqualToString('deepCopy()', '0,1,X,Y,X,Y,2');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), null);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false));
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), 0);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), 1);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), 2);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), 100);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), -100);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), "2");
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), "1");
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), "0");
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), 2147483647);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), 2147483648);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), -2147483647);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), -2147483648);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), -2147483649);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), true);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), false);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), undefined);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), Infinity);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), -Infinity);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), "foo");
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+mySelect.add(new Option("X", "Y", false, false), NaN);
+shouldBeEqualToString('deepCopy()', '0,1,2,Y');
+
+resetSelection();
+shouldBeUndefined('mySelect.add("foo")');
+shouldBeUndefined('mySelect.add("foo", 0)');
+shouldBeUndefined('mySelect.add(undefined)');
+shouldBeUndefined('mySelect.add(undefined, 0)');
+shouldBeUndefined('mySelect.add(null)');
+shouldBeUndefined('mySelect.add(null, 0)');
+
+</script>
+</body>
+</html>