diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/forms/attributes-common-to-form-controls/disabled-elements-01.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/forms/attributes-common-to-form-controls/disabled-elements-01.html | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/forms/attributes-common-to-form-controls/disabled-elements-01.html b/testing/web-platform/tests/html/semantics/forms/attributes-common-to-form-controls/disabled-elements-01.html new file mode 100644 index 0000000000..14443e4099 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/attributes-common-to-form-controls/disabled-elements-01.html @@ -0,0 +1,84 @@ +<!DOCTYPE html> +<title>HTMLFormElement: the disabled attribute</title> +<link rel="author" title="Eric Casler" href="mailto:ericorange@gmail.com"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/#enabling-and-disabling-form-controls:-the-disabled-attribute"> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div id="log"></div> +<div id="root"></div> +<script> +// Elements tested for in this file +var types = ["button", "input", "select", "textarea"]; +// no tests for: optgroup, option, fieldset + +var root = document.getElementById("root"); +for (var element_type = 0; element_type < types.length; element_type++) { + test(function() { + root.innerHTML = "<"+types[element_type]+" + id='elem'></"+types[element_type]+">"; + + var elem = document.getElementById("elem"); + assert_false(elem.disabled); + }, + "Test ["+types[element_type]+"]: default behaviour is NOT disabled"); + + test(function() { + var formats = ["disabled", + "disabled=disabled", "disabled='disabled'", + "disabled='true'", "disabled=true", + "disabled='false'", "disabled=false"]; + + for (var f = 0; f < formats.length; f++) { + root.innerHTML = "<"+types[element_type]+" id='elem' " + formats[f] + "></"+types[element_type]+">"; + + var elem = document.getElementById("elem"); + assert_true(elem.disabled); + } + }, + "Test ["+types[element_type]+"]: verify disabled acts as boolean attribute"); + + test(function() { + root.innerHTML = "<"+types[element_type]+" id='elem'></"+types[element_type]+"><input id='other' value='no event dispatched'></input>"; + var elem = document.getElementById("elem"), + other = document.getElementById("other"); + + assert_equals(other.value, "no event dispatched"); + + elem.disabled = true; + assert_true(elem.disabled); + + elem.onclick = function () { + // change value of other element, to avoid *.value returning "" for disabled elements + document.getElementById("other").value = "event dispatched"; + }; + + // Check if dispatched event executes + var evObj = document.createEvent('Events'); + evObj.initEvent("click", true, false); + elem.dispatchEvent(evObj); + assert_equals(other.value, "event dispatched"); + }, + "Test ["+types[element_type]+"]: synthetic click events should be dispatched"); + + test(function() { + root.innerHTML = "<"+types[element_type]+" id='elem'></"+types[element_type]+"><input id='other' value='no event dispatched'></input>"; + var elem = document.getElementById("elem"), + other = document.getElementById("other"); + + assert_equals(other.value, "no event dispatched"); + + elem.disabled = true; + assert_true(elem.disabled); + + elem.onclick = function () { + // change value of other element, to avoid *.value returning "" for disabled elements + document.getElementById("other").value = "event dispatched"; + }; + + // Check that click() on a disabled element doesn't dispatch a click event. + elem.click(); + assert_equals(other.value, "no event dispatched"); + }, + "Test ["+types[element_type]+"]: click() should not dispatch a click event"); +} +root.innerHTML = ""; +</script> |