chromium/third_party/blink/web_tests/fast/forms/select/remove-option.html

<!DOCTYPE html>
<link rel="help" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-select-element">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script>

var select, optionA, optionB, optionC;

function makeSelect() {
    select = document.createElement('select');
    optionA = select.appendChild(new Option('a'));
    optionB = select.appendChild(new Option('b'));
    optionC = select.appendChild(new Option('c'));
}

test(function() {
    makeSelect();
    select.remove(1);
    assert_equals(select.options[0], optionA);
    assert_equals(select.options[1], optionC);
}, 'Basics');

test(function() {
    makeSelect();
    select.remove(10);
    assert_equals(select.options[0], optionA);
    assert_equals(select.options[1], optionB);
    assert_equals(select.options[2], optionC);
}, 'Index out of range');

test(function() {
    makeSelect();
    select.remove(-1);
    assert_equals(select.options[0], optionA);
    assert_equals(select.options[1], optionB);
    assert_equals(select.options[2], optionC);
}, 'Index out of range, negative');

test(function() {
    makeSelect();
    select.remove({});
    assert_equals(select.options[0], optionB);
    assert_equals(select.options[1], optionC);
}, 'Objects are coerced to 0');


test(function() {
    makeSelect();
    select.remove(optionC);
    assert_equals(select.options[0], optionB);
    assert_equals(select.options[1], optionC);
}, 'Nodes are objects too. Coerced to 0');

</script>
</html>