| Index: third_party/WebKit/LayoutTests/imported/wpt/dom/events/Event-dispatch-click.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/dom/events/Event-dispatch-click.html b/third_party/WebKit/LayoutTests/imported/wpt/dom/events/Event-dispatch-click.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a16e1a276bd939477302a84a0cc3af96b624f013
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/dom/events/Event-dispatch-click.html
|
| @@ -0,0 +1,119 @@
|
| +<!doctype html>
|
| +<title>Synthetic click event "magic"</title>
|
| +<script src="/resources/testharness.js"></script>
|
| +<script src="/resources/testharnessreport.js"></script>
|
| +<div id=log></div>
|
| +<div id=dump style=display:none></div>
|
| +<script>
|
| +var dump = document.getElementById("dump")
|
| +
|
| +async_test(function(t) {
|
| + var input = document.createElement("input")
|
| + input.type = "checkbox"
|
| + dump.appendChild(input)
|
| + input.onclick = t.step_func_done(function() {
|
| + assert_true(input.checked)
|
| + })
|
| + input.click()
|
| +}, "basic with click()")
|
| +
|
| +async_test(function(t) {
|
| + var input = document.createElement("input")
|
| + input.type = "checkbox"
|
| + dump.appendChild(input)
|
| + input.onclick = t.step_func_done(function() {
|
| + assert_true(input.checked)
|
| + })
|
| + input.dispatchEvent(new MouseEvent("click", {bubbles:true})) // equivalent to the above
|
| +}, "basic with dispatchEvent()")
|
| +
|
| +async_test(function(t) {
|
| + var input = document.createElement("input")
|
| + input.type = "checkbox"
|
| + dump.appendChild(input)
|
| + input.onclick = t.step_func_done(function() {
|
| + assert_false(input.checked)
|
| + })
|
| + input.dispatchEvent(new Event("click", {bubbles:true})) // no MouseEvent
|
| +}, "basic with wrong event class")
|
| +
|
| +async_test(function(t) {
|
| + var input = document.createElement("input")
|
| + input.type = "checkbox"
|
| + dump.appendChild(input)
|
| + var child = input.appendChild(new Text("does not matter"))
|
| + child.dispatchEvent(new MouseEvent("click")) // does not bubble
|
| + assert_false(input.checked)
|
| + t.done()
|
| +}, "look at parents only when event bubbles")
|
| +
|
| +async_test(function(t) {
|
| + var input = document.createElement("input")
|
| + input.type = "checkbox"
|
| + dump.appendChild(input)
|
| + input.onclick = t.step_func_done(function() {
|
| + assert_true(input.checked)
|
| + })
|
| + var child = input.appendChild(new Text("does not matter"))
|
| + child.dispatchEvent(new MouseEvent("click", {bubbles:true}))
|
| +}, "look at parents when event bubbles")
|
| +
|
| +async_test(function(t) {
|
| + var input = document.createElement("input")
|
| + input.type = "checkbox"
|
| + dump.appendChild(input)
|
| + input.onclick = t.step_func(function() {
|
| + assert_false(input.checked, "input pre-click must not be triggered")
|
| + })
|
| + var child = input.appendChild(document.createElement("input"))
|
| + child.type = "checkbox"
|
| + child.onclick = t.step_func(function() {
|
| + assert_true(input.checked, "child pre-click must be triggered")
|
| + })
|
| + child.dispatchEvent(new MouseEvent("click", {bubbles:true}))
|
| + t.done()
|
| +}, "pick the first with activation behavior <input type=checkbox>")
|
| +
|
| +var globalCounter = 0 // sorry
|
| +async_test(function(t) { // as above with <a>
|
| + var i = 0
|
| + var link = document.createElement("a")
|
| + link.href = "javascript:globalCounter--" // must not be triggered
|
| + dump.appendChild(link)
|
| + var child = link.appendChild(document.createElement("a"))
|
| + child.href = "javascript:globalCounter++"
|
| + child.dispatchEvent(new MouseEvent("click", {bubbles:true}))
|
| + assert_equals(globalCounter, 1)
|
| + t.done()
|
| +}, "pick the first with activation behavior <a href>")
|
| +
|
| +async_test(function(t) {
|
| + var input = document.createElement("input")
|
| + input.type = "checkbox"
|
| + dump.appendChild(input)
|
| + var clickEvent = new MouseEvent("click")
|
| + input.onchange = t.step_func_done(function() {
|
| + assert_false(clickEvent.defaultPrevented)
|
| + assert_equals(clickEvent.eventPhase, 0)
|
| + assert_equals(clickEvent.currentTarget, null)
|
| + assert_equals(clickEvent.target, input)
|
| + assert_equals(clickEvent.composedPath().length, 0)
|
| + })
|
| + input.dispatchEvent(clickEvent)
|
| +}, "event state during post-click handling")
|
| +
|
| +async_test(function(t) {
|
| + var input = document.createElement("input")
|
| + input.type = "checkbox"
|
| + dump.appendChild(input)
|
| + var clickEvent = new MouseEvent("click")
|
| + var finalTarget = document.createElement("doesnotmatter")
|
| + finalTarget.onclick = t.step_func_done(function() {
|
| + assert_equals(clickEvent.target, finalTarget)
|
| + })
|
| + input.onchange = t.step_func(function() {
|
| + finalTarget.dispatchEvent(clickEvent)
|
| + })
|
| + input.dispatchEvent(clickEvent)
|
| +}, "redispatch during post-click handling")
|
| +</script>
|
|
|