summaryrefslogtreecommitdiffstats
path: root/testing/marionette/harness/marionette_harness/tests/unit/test_anonymous_content.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/marionette/harness/marionette_harness/tests/unit/test_anonymous_content.py')
-rw-r--r--testing/marionette/harness/marionette_harness/tests/unit/test_anonymous_content.py90
1 files changed, 90 insertions, 0 deletions
diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_anonymous_content.py b/testing/marionette/harness/marionette_harness/tests/unit/test_anonymous_content.py
new file mode 100644
index 000000000..1e7779661
--- /dev/null
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_anonymous_content.py
@@ -0,0 +1,90 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+from marionette_driver.by import By
+from marionette_driver.errors import NoSuchElementException
+from marionette_driver.marionette import HTMLElement
+
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
+
+
+class TestAnonymousNodes(WindowManagerMixin, MarionetteTestCase):
+
+ def setUp(self):
+ super(TestAnonymousNodes, self).setUp()
+ self.marionette.set_context("chrome")
+
+ def open_window_with_js():
+ self.marionette.execute_script("""
+ window.open('chrome://marionette/content/test_anonymous_content.xul',
+ 'foo', 'chrome,centerscreen');
+ """)
+
+ new_window = self.open_window(trigger=open_window_with_js)
+ self.marionette.switch_to_window(new_window)
+
+ def tearDown(self):
+ self.close_all_windows()
+
+ super(TestAnonymousNodes, self).tearDown()
+
+ def test_switch_to_anonymous_frame(self):
+ self.marionette.find_element(By.ID, "testAnonymousContentBox")
+ anon_browser_el = self.marionette.find_element(By.ID, "browser")
+ self.assertTrue("test_anonymous_content.xul" in self.marionette.get_url())
+ self.marionette.switch_to_frame(anon_browser_el)
+ self.assertTrue("test.xul" in self.marionette.get_url())
+ self.marionette.find_element(By.ID, "testXulBox")
+ self.assertRaises(NoSuchElementException,
+ self.marionette.find_element, By.ID, "testAnonymousContentBox")
+
+ def test_switch_to_anonymous_iframe(self):
+ self.marionette.find_element(By.ID, "testAnonymousContentBox")
+ el = self.marionette.find_element(By.ID, "container2")
+ anon_iframe_el = el.find_element(By.ANON_ATTRIBUTE, {"anonid": "iframe"})
+ self.marionette.switch_to_frame(anon_iframe_el)
+ self.assertTrue("test.xul" in self.marionette.get_url())
+ self.marionette.find_element(By.ID, "testXulBox")
+ self.assertRaises(NoSuchElementException, self.marionette.find_element, By.ID,
+ "testAnonymousContentBox")
+
+ def test_find_anonymous_element_by_attribute(self):
+ accept_button = (By.ANON_ATTRIBUTE, {"dlgtype": "accept"},)
+ not_existent = (By.ANON_ATTRIBUTE, {"anonid": "notexistent"},)
+
+ # By using the window document element
+ start_node = self.marionette.find_element(By.CSS_SELECTOR, ":root")
+ button = start_node.find_element(*accept_button)
+ self.assertEquals(HTMLElement, type(button))
+ with self.assertRaises(NoSuchElementException):
+ start_node.find_element(*not_existent)
+
+ # By using the default start node
+ self.assertEquals(button, self.marionette.find_element(*accept_button))
+ with self.assertRaises(NoSuchElementException):
+ self.marionette.find_element(*not_existent)
+
+ def test_find_anonymous_elements_by_attribute(self):
+ dialog_buttons = (By.ANON_ATTRIBUTE, {"anonid": "buttons"},)
+ not_existent = (By.ANON_ATTRIBUTE, {"anonid": "notexistent"},)
+
+ # By using the window document element
+ start_node = self.marionette.find_element(By.CSS_SELECTOR, ":root")
+ buttons = start_node.find_elements(*dialog_buttons)
+ self.assertEquals(1, len(buttons))
+ self.assertEquals(HTMLElement, type(buttons[0]))
+ self.assertListEqual([], start_node.find_elements(*not_existent))
+
+ # By using the default start node
+ self.assertListEqual(buttons, self.marionette.find_elements(*dialog_buttons))
+ self.assertListEqual([], self.marionette.find_elements(*not_existent))
+
+ def test_find_anonymous_children(self):
+ self.assertEquals(HTMLElement, type(self.marionette.find_element(By.ANON, None)))
+ self.assertEquals(2, len(self.marionette.find_elements(By.ANON, None)))
+
+ frame = self.marionette.find_element(By.ID, "framebox")
+ with self.assertRaises(NoSuchElementException):
+ frame.find_element(By.ANON, None)
+ self.assertListEqual([], frame.find_elements(By.ANON, None))