diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /testing/marionette/harness/marionette_harness/tests/unit/test_mouse_action.py | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/marionette/harness/marionette_harness/tests/unit/test_mouse_action.py')
-rw-r--r-- | testing/marionette/harness/marionette_harness/tests/unit/test_mouse_action.py | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_mouse_action.py b/testing/marionette/harness/marionette_harness/tests/unit/test_mouse_action.py new file mode 100644 index 000000000..246068215 --- /dev/null +++ b/testing/marionette/harness/marionette_harness/tests/unit/test_mouse_action.py @@ -0,0 +1,114 @@ +# 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.keys import Keys +from marionette_driver.marionette import Actions + +from marionette_harness import MarionetteTestCase + + +class TestMouseAction(MarionetteTestCase): + def setUp(self): + MarionetteTestCase.setUp(self) + if self.marionette.session_capabilities["platformName"] == "darwin": + self.mod_key = Keys.META + else: + self.mod_key = Keys.CONTROL + self.action = Actions(self.marionette) + + def test_click_action(self): + test_html = self.marionette.absolute_url("test.html") + self.marionette.navigate(test_html) + link = self.marionette.find_element(By.ID, "mozLink") + self.action.click(link).perform() + self.assertEqual("Clicked", self.marionette.execute_script( + "return document.getElementById('mozLink').innerHTML")) + + def test_clicking_element_out_of_view_succeeds(self): + # The action based click doesn"t check for visibility. + test_html = self.marionette.absolute_url("hidden.html") + self.marionette.navigate(test_html) + el = self.marionette.find_element(By.ID, "child") + self.action.click(el).perform() + + def test_double_click_action(self): + test_html = self.marionette.absolute_url("double_click.html") + self.marionette.navigate(test_html) + el = self.marionette.find_element(By.ID, "one-word-div") + self.action.double_click(el).perform() + el.send_keys(self.mod_key + "c") + rel = self.marionette.find_element(By.ID, "input-field") + rel.send_keys(self.mod_key + "v") + self.assertEqual("zyxw", rel.get_property("value")) + + def test_context_click_action(self): + test_html = self.marionette.absolute_url("javascriptPage.html") + self.marionette.navigate(test_html) + click_el = self.marionette.find_element(By.ID, "resultContainer") + + def context_menu_state(): + with self.marionette.using_context("chrome"): + cm_el = self.marionette.find_element(By.ID, "contentAreaContextMenu") + return cm_el.get_property("state") + + self.assertEqual("closed", context_menu_state()) + self.action.context_click(click_el).perform() + self.wait_for_condition(lambda _: context_menu_state() == "open") + + with self.marionette.using_context("chrome"): + self.marionette.find_element(By.ID, "main-window").send_keys(Keys.ESCAPE) + self.wait_for_condition(lambda _: context_menu_state() == "closed") + + def test_middle_click_action(self): + test_html = self.marionette.absolute_url("clicks.html") + self.marionette.navigate(test_html) + + self.marionette.find_element(By.ID, "addbuttonlistener").click() + + el = self.marionette.find_element(By.ID, "showbutton") + self.action.middle_click(el).perform() + + self.wait_for_condition(lambda _: el.get_property("innerHTML") == "1") + + def test_chrome_click(self): + self.marionette.navigate("about:blank") + data_uri = "data:text/html,<html></html>" + with self.marionette.using_context("chrome"): + urlbar = self.marionette.find_element(By.ID, "urlbar") + urlbar.send_keys(data_uri) + go_button = self.marionette.find_element(By.ID, "urlbar-go-button") + self.action.click(go_button).perform() + self.wait_for_condition(lambda mn: mn.get_url() == data_uri) + + def test_chrome_double_click(self): + self.marionette.navigate("about:blank") + test_word = "quux" + + with self.marionette.using_context("chrome"): + urlbar = self.marionette.find_element(By.ID, "urlbar") + self.assertEqual("", urlbar.get_property("value")) + + urlbar.send_keys(test_word) + self.assertEqual(urlbar.get_property("value"), test_word) + (self.action.double_click(urlbar).perform() + .key_down(self.mod_key) + .key_down("x").perform()) + self.assertEqual(urlbar.get_property("value"), "") + + def test_chrome_context_click_action(self): + self.marionette.set_context("chrome") + def context_menu_state(): + cm_el = self.marionette.find_element(By.ID, "tabContextMenu") + return cm_el.get_property("state") + + currtab = self.marionette.execute_script("return gBrowser.selectedTab") + self.assertEqual("closed", context_menu_state()) + self.action.context_click(currtab).perform() + self.wait_for_condition(lambda _: context_menu_state() == "open") + + (self.marionette.find_element(By.ID, "main-window") + .send_keys(Keys.ESCAPE)) + + self.wait_for_condition(lambda _: context_menu_state() == "closed") |