Bug 1387678 - Update tests to not use shadow DOM like a frame; r?ato draft
authorDavid Burns <dburns@mozilla.com>
Wed, 09 May 2018 09:14:21 +0100
changeset 801166 36e9c0b58611a64ab73ebfdea5445a48ed8746b7
parent 801165 da48b40ae5f2294a7599eb7135e4c8ec7f909c7e
child 801167 c208092f50d11bb76a693015e57869fc26487ce4
push id111602
push userbmo:dburns@mozilla.com
push dateTue, 29 May 2018 22:11:56 +0000
reviewersato
bugs1387678
milestone62.0a1
Bug 1387678 - Update tests to not use shadow DOM like a frame; r?ato The current element finding and interaction code expects the shadow DOM to act like a frame when it comes to keeping references to elements found or not found on the document. This expectation is not correct for the way shadow DOM works in reality. MozReview-Commit-ID: JFWvlbEylj4
testing/marionette/harness/marionette_harness/tests/unit/test_shadow_dom.py
--- a/testing/marionette/harness/marionette_harness/tests/unit/test_shadow_dom.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_shadow_dom.py
@@ -33,23 +33,16 @@ class TestShadowDom(MarionetteTestCase):
         with self.marionette.using_context("chrome"):
             self.assertRaises(UnsupportedOperationException,
                               self.marionette.switch_to_shadow_root)
 
     def test_shadow_dom(self):
         # Button in shadow root should be actionable
         self.button.click()
 
-    def test_shadow_dom_after_switch_away_from_shadow_root(self):
-        # Button in shadow root should be actionable
-        self.button.click()
-        self.marionette.switch_to_shadow_root()
-        # After switching back to top content, button should be stale
-        self.assertRaises(StaleElementException, self.button.click)
-
     def test_shadow_dom_raises_stale_element_exception_when_button_remove(self):
         self.marionette.execute_script(
             'document.getElementById("host").shadowRoot.getElementById("button").remove();')
         # After removing button from shadow DOM, button should be stale
         self.assertRaises(StaleElementException, self.button.click)
 
     def test_shadow_dom_raises_stale_element_exception_when_host_removed(self):
         self.marionette.execute_script('document.getElementById("host").remove();')
@@ -67,16 +60,8 @@ class TestShadowDom(MarionetteTestCase):
         # Button in shadow root should be actionable
         self.button.click()
         self.inner_host = self.marionette.find_element(By.ID, "inner-host")
         self.marionette.switch_to_shadow_root(self.inner_host)
         self.inner_button = self.marionette.find_element(By.ID, "inner-button")
         # Nested nutton in nested shadow root should be actionable
         self.inner_button.click()
         self.marionette.switch_to_shadow_root()
-        # After jumping back to parent shadow root, button should again be actionable but inner
-        # button should now be stale
-        self.button.click()
-        self.assertRaises(StaleElementException, self.inner_button.click)
-        self.marionette.switch_to_shadow_root()
-        # After switching back to top content, both buttons should now be stale
-        self.assertRaises(StaleElementException, self.button.click)
-        self.assertRaises(StaleElementException, self.inner_button.click)