Index: LayoutTests/fast/forms/form-associated-element.html |
diff --git a/LayoutTests/fast/forms/form-associated-element.html b/LayoutTests/fast/forms/form-associated-element.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d6e62b3dc2faffd691c9a4f186d508f76968d400 |
--- /dev/null |
+++ b/LayoutTests/fast/forms/form-associated-element.html |
@@ -0,0 +1,68 @@ |
+<!doctype html> |
+<html> |
+<head> |
+<script src="../../resources/js-test.js"></script> |
+<script type="text/javascript"> |
+var formOwner; |
+function hasFormOwner(shouldHaveOwner, haveIt, event) |
+{ |
+ formOwner = haveIt || "not defined"; |
+ debug("Testing " + event.target.tagName); |
+ if (shouldHaveOwner) |
+ shouldBeEqualToString("formOwner", "defined"); |
+ else |
+ shouldBeEqualToString("formOwner", "not defined"); |
+} |
+</script> |
+</head> |
+<body> |
+<div style="display: none;"> |
+<form id=topForm> |
+<label form=topForm onclick="hasFormOwner(true, typeof canary !== 'undefined' && canary, event);"><input type=button/></label> |
+<!-- Form-associated elements per http://whatwg.org/specs/web-apps/current-work/#form-associated-element --> |
+<button onclick="hasFormOwner(true, typeof canary !== 'undefined' && canary, event);"></button> |
+<fieldset onclick="hasFormOwner(true, typeof canary !== 'undefined' && canary, event);"></fieldset> |
+<input type='radio' onclick="hasFormOwner(true, typeof canary !== 'undefined' && canary, event);"/> |
+<input type='number' onclick="hasFormOwner(true, typeof canary !== 'undefined' && canary, event);"/> |
+<keygen keytype=rsa onclick="hasFormOwner(true, typeof canary !== 'undefined' && canary, event);"></keygen> |
+<label onclick="hasFormOwner(true, typeof canary !== 'undefined' && canary, event);"><input type=button/></label> |
+<object onclick="hasFormOwner(true, typeof canary !== 'undefined' && canary, event);"></object> |
+<select onclick="hasFormOwner(true, typeof canary !== 'undefined' && canary, event);"></select> |
+<textarea onclick="hasFormOwner(true, typeof canary !== 'undefined' && canary, event);"></textarea> |
+<img onclick="hasFormOwner(true, typeof canary !== 'undefined' && canary, event);"></img> |
+ |
+<!-- Elements that aren't associated. --> |
+<option onclick="hasFormOwner(false, typeof canary !== 'undefined' && canary, event);"></option> |
+<div onclick="hasFormOwner(false, typeof canary !== 'undefined' && canary, event);"></div> |
+<a onclick="hasFormOwner(false, typeof canary !== 'undefined' && canary, event);"></a> |
+<p onclick="hasFormOwner(false, typeof canary !== 'undefined' && canary, event);"></p> |
+</form> |
+ |
+<!-- Elements that associated by 'form' reference rather than ancestor. --> |
+<input form=topForm type="number" onclick="hasFormOwner(true, typeof canary !== 'undefined' && canary, event);"/> |
+<keygen form=topForm keytype=rsa onclick="hasFormOwner(true, typeof canary !== 'undefined' && canary, event);"></keygen> |
+<object form=topForm onclick="hasFormOwner(true, typeof canary !== 'undefined' && canary, event);"></object> |
+<select form=topForm onclick="hasFormOwner(true, typeof canary !== 'undefined' && canary, event);"></select> |
+<pre form=topForm onclick="hasFormOwner(false, typeof canary !== 'undefined' && canary, event);"></pre> |
+<span form=topForm onclick="hasFormOwner(false, typeof canary !== 'undefined' && canary, event);"></span> |
+</div> |
+<script> |
+description("Verify that only elements that are 'form associatable' get a form owner."); |
+ |
+var elements; |
+function testFormAssociation() |
+{ |
+ document.forms[0].canary = "defined"; |
+ elements = document.querySelectorAll("*[onclick]"); |
+ shouldBeTrue("elements.length > 0"); |
+ for (var i = 0; i < elements.length; ++i) { |
+ var event = new Event("click"); // {bubbles: true, cancelable: true}); |
+ elements[i].dispatchEvent(event); |
+ } |
+} |
+if (window.testRunner) |
+ testRunner.dumpAsText(); |
+testFormAssociation(); |
+</script> |
+</body> |
+</html> |