select-remove.html (2379B)
1 <!doctype html> 2 <meta charset=utf-8> 3 <title>HTMLSelectElement.remove</title> 4 <link rel="author" title="Ms2ger" href="Ms2ger@gmail.com"> 5 <link rel="help" href="https://dom.spec.whatwg.org/#dom-childnode-remove"> 6 <link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-select-remove"> 7 <link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-htmloptionscollection-remove"> 8 <script src="/resources/testharness.js"></script> 9 <script src="/resources/testharnessreport.js"></script> 10 <div id=log></div> 11 <script> 12 function testRemove(getter, desc) { 13 test(function() { 14 var div = document.createElement("div"); 15 var select = document.createElement("select"); 16 div.appendChild(select); 17 assert_equals(select.parentNode, div); 18 19 var options = []; 20 for (var i = 0; i < 3; ++i) { 21 var option = document.createElement("option"); 22 option.textContent = String(i); 23 select.appendChild(option); 24 options.push(option); 25 } 26 27 getter(select).remove(-1); 28 assert_array_equals(select.options, options, "After remove(-1)"); 29 assert_equals(select.parentNode, div); 30 31 getter(select).remove(3); 32 assert_array_equals(select.options, options, "After remove(3)"); 33 assert_equals(select.parentNode, div); 34 35 getter(select).remove(0); 36 assert_array_equals(select.options, [options[1], options[2]], "After remove(0)"); 37 assert_equals(select.parentNode, div); 38 }, desc) 39 } 40 testRemove(function(select) { return select; }, "select.remove(n) should work"); 41 testRemove(function(select) { return select.options; }, "select.options.remove(n) should work"); 42 test(function() { 43 var div = document.createElement("div"); 44 var select = document.createElement("select"); 45 div.appendChild(select); 46 assert_equals(select.parentNode, div); 47 assert_equals(div.firstChild, select); 48 49 select.remove(); 50 assert_equals(select.parentNode, null); 51 assert_equals(div.firstChild, null); 52 }, "remove() should work on select elements.") 53 test(function() { 54 var div = document.createElement("div"); 55 var select = document.createElement("select"); 56 div.appendChild(select); 57 assert_equals(select.parentNode, div); 58 assert_equals(div.firstChild, select); 59 60 Element.prototype.remove.call(select); 61 assert_equals(select.parentNode, null); 62 assert_equals(div.firstChild, null); 63 }, "Element#remove() should work on select elements.") 64 </script>