Index: LayoutTests/imported/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/disabled-elements-01.html |
diff --git a/LayoutTests/imported/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/disabled-elements-01.html b/LayoutTests/imported/web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/disabled-elements-01.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0a9a9e80a194f9e06b4171ed268dceb9dae4cfa4 |
--- /dev/null |
+++ b/LayoutTests/imported/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> |