Bug 1417821 - Test that click bubbles to parents. r?whimboo
MozReview-Commit-ID: 19IBZhx7jU2
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -575976,17 +575976,17 @@
"9455d1504590154ad2a540f102455baff602aefb",
"wdspec"
],
"webdriver/tests/element_click/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/element_click/bubbling.py": [
- "e73935ac7ba09487a507f796bf0029da51cb2be1",
+ "3168c91456dae68fbc4c289d1ad39b4cd11fc219",
"wdspec"
],
"webdriver/tests/element_click/select.py": [
"5ba51b660c7203bba3ada597c2f56fe094358e1f",
"wdspec"
],
"webdriver/tests/element_click/stale.py": [
"37af63203540dfe11d36fe05d74694f05c6505f2",
--- a/testing/web-platform/tests/webdriver/tests/element_click/bubbling.py
+++ b/testing/web-platform/tests/webdriver/tests/element_click/bubbling.py
@@ -4,16 +4,51 @@ from tests.support.inline import inline
def click(session, element):
return session.transport.send(
"POST", "/session/{session_id}/element/{element_id}/click".format(
session_id=session.session_id,
element_id=element.id))
+def test_click_event_bubbles_to_parents(session):
+ session.url = inline("""
+ <style>
+ body * {
+ margin: 10px;
+ padding: 10px;
+ border: 1px solid blue;
+ }
+ </style>
+
+ <div id=three>THREE
+ <div id=two>TWO
+ <div id=one>ONE</div>
+ </div>
+ </div>
+
+ <script>
+ window.clicks = [];
+
+ for (let level of document.querySelectorAll("div")) {
+ level.addEventListener("click", ({currentTarget}) => {
+ window.clicks.push(currentTarget);
+ });
+ }
+ </script>
+ """)
+ three, two, one = session.find.css("div")
+ one.click()
+
+ clicks = session.execute_script("return window.clicks")
+ assert one in clicks
+ assert two in clicks
+ assert three in clicks
+
+
def test_element_disappears_during_click(session):
"""
When an element in the event bubbling order disappears (its CSS
display style is set to "none") during a click, Gecko and Blink
exhibit different behaviour. Whilst Chrome fires a "click"
DOM event on <body>, Firefox does not.
A WebDriver implementation may choose to wait for this event to let