Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Unified Diff: third_party/WebKit/LayoutTests/imported/wpt/dom/events/Event-dispatch-click.html

Issue 2446483002: Import wpt@c5a14f553cba5f197743b9af605a84eddd8692a2 (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698