Bug 1417821 - Test that click bubbles to parents. r?whimboo draft
authorAndreas Tolfsen <ato@sny.no>
Thu, 23 Nov 2017 15:44:19 +0000
changeset 703218 262f107e4ee0af0a536aa2dd2e17d5a3e1e58853
parent 703217 24382949c898a1f3d808c085c329b18867b7de6e
child 703219 a2a9bdbd33df2179318cb30b657de64ad4be665e
push id90754
push userbmo:ato@sny.no
push dateFri, 24 Nov 2017 16:38:54 +0000
reviewerswhimboo
bugs1417821
milestone59.0a1
Bug 1417821 - Test that click bubbles to parents. r?whimboo MozReview-Commit-ID: 19IBZhx7jU2
testing/web-platform/meta/MANIFEST.json
testing/web-platform/tests/webdriver/tests/element_click/bubbling.py
--- 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