diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/forms/the-form-element/form-indexed-element.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/forms/the-form-element/form-indexed-element.html | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/forms/the-form-element/form-indexed-element.html b/testing/web-platform/tests/html/semantics/forms/the-form-element/form-indexed-element.html new file mode 100644 index 0000000000..5ea96d3d1b --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/the-form-element/form-indexed-element.html @@ -0,0 +1,45 @@ +<!doctype html> +<meta charset="utf-8"> +<title>form.elements: indexed</title> +<link rel="author" title="Ivan.Yang" href="mailto:jsyangwenjie@gmail.com"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<div id="test"> +<form id=form> +<input type="radio" name="radio1" id="r1" value=1> +<input type="radio" name="radio2" id="r2" value=2> +</form> +</div> +<script> +test(function() { + var form = document.getElementById("form"); + assert_equals(form[0], document.getElementById("r1")); + assert_equals(form[1], document.getElementById("r2")); + assert_equals(form[2], undefined); + assert_equals(form[-1], undefined); +}, "form.elements should be accessed correctly by index") + +test(function(){ + var form = document.getElementById("form"); + var old_item = form[0]; + var old_desc = Object.getOwnPropertyDescriptor(form, 0); + assert_equals(old_desc.value, old_item); + assert_true(old_desc.enumerable); + assert_true(old_desc.configurable); + assert_false(old_desc.writable); + + Object.prototype[0] = 5; + this.add_cleanup(function () { delete Object.prototype[0]; }); + assert_equals(form[0], old_item); + + delete form[0]; + assert_equals(form[0], old_item); + + assert_throws_js(TypeError, function() { + "use strict"; + delete form[0]; + }); + assert_equals(form[0], old_item); +}, 'Trying to delete an indexed property name should never work'); +</script> |