commit b1d93a3c91c8e29ee3bca37f9c11d55e63a5c2b5 Author: Alex Catarineu acat@torproject.org Date: Wed Nov 25 18:17:27 2020 +0100
Bug 40011: Update tests when switching to Fenix 84 --- marionette/tor_browser_tests/test_dom-objects-enumeration.py | 2 ++ marionette/tor_browser_tests/test_onion_alias.py | 9 +++++---- marionette/tor_browser_tests/test_onion_location.py | 3 ++- marionette/tor_browser_tests/test_onion_security_expectations.py | 4 ++-- marionette/tor_browser_tests/test_searchengines.py | 3 +++ marionette/tor_browser_tests/test_security_level_ui.py | 5 +++-- test-data/dom-objects-enumeration.js | 6 ++++-- 7 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/marionette/tor_browser_tests/test_dom-objects-enumeration.py b/marionette/tor_browser_tests/test_dom-objects-enumeration.py index 90458a6..c020fc0 100644 --- a/marionette/tor_browser_tests/test_dom-objects-enumeration.py +++ b/marionette/tor_browser_tests/test_dom-objects-enumeration.py @@ -760,6 +760,8 @@ class Test(testsuite.TorBrowserTest): expectedObjects = expectedObjects.union({"MediaMetadata","MediaSession","Sanitizer"}) if self.get_version() >= 83 and self.is_early_beta_or_earlier(): expectedObjects = expectedObjects.union({"onbeforeinput"}) + if self.get_version() >= 84: + expectedObjects = expectedObjects.union({"PerformancePaintTiming"}).difference({"Sanitizer"})
with self.marionette.using_context('content'): self.marionette.navigate(self.test_page_file_url) diff --git a/marionette/tor_browser_tests/test_onion_alias.py b/marionette/tor_browser_tests/test_onion_alias.py index 8f1dc67..9480020 100644 --- a/marionette/tor_browser_tests/test_onion_alias.py +++ b/marionette/tor_browser_tests/test_onion_alias.py @@ -1,5 +1,4 @@ from marionette_driver import Wait -from marionette_driver.legacy_actions import Actions from marionette_harness import MarionetteTestCase, WindowManagerMixin
class Test(WindowManagerMixin, MarionetteTestCase): @@ -39,9 +38,11 @@ class Test(WindowManagerMixin, MarionetteTestCase):
# Opening a same-origin link should keep the onion alias in the urlbar el = m.find_element('id', 'submit-documents-button') - action = Actions(m) - action.middle_click(el) - action.perform() + mouse_chain = self.marionette.actions.sequence( + "pointer", "pointer_id", {"pointerType": "mouse"} + ) + mouse_chain.click(element=el, button=1).perform() + Wait(m, timeout=m.timeout.page_load).until( lambda _: len(m.window_handles) > 1) m.switch_to_window(m.window_handles[1]) diff --git a/marionette/tor_browser_tests/test_onion_location.py b/marionette/tor_browser_tests/test_onion_location.py index 37acb2d..daa0b27 100644 --- a/marionette/tor_browser_tests/test_onion_location.py +++ b/marionette/tor_browser_tests/test_onion_location.py @@ -81,8 +81,9 @@ class Test(WindowManagerMixin, MarionetteTestCase):
with m.using_context('content'): m.switch_to_window(m.window_handles[1]) + spotlight = m.find_element('class name', 'spotlight') self.assertEqual( - self.get_url(), 'about:preferences#privacy-onionservices') + spotlight.get_attribute("data-subcategory"), "onionservices") m.close() m.switch_to_window(self.start_tab)
diff --git a/marionette/tor_browser_tests/test_onion_security_expectations.py b/marionette/tor_browser_tests/test_onion_security_expectations.py index 7a0fd27..e95b29b 100644 --- a/marionette/tor_browser_tests/test_onion_security_expectations.py +++ b/marionette/tor_browser_tests/test_onion_security_expectations.py @@ -51,8 +51,8 @@ class Test(OnionFixturesMixin, WindowManagerMixin, MarionetteTestCase): 'document.getElementById("identity-popup-more-info").click()') m.switch_to_window(m.chrome_window_handles[1]) Wait(m, timeout=m.timeout.page_load).until( - lambda _: m.find_element('id', 'security-technical-shortform').text != '') - text = m.find_element('id', 'security-technical-shortform').text + lambda _: m.find_element('id', 'security-technical-shortform').get_attribute('value') != '') + text = m.find_element('id', 'security-technical-shortform').get_attribute('value') m.close_chrome_window() m.switch_to_window(self.start_window) return text diff --git a/marionette/tor_browser_tests/test_searchengines.py b/marionette/tor_browser_tests/test_searchengines.py index 9f394f7..4fb264f 100644 --- a/marionette/tor_browser_tests/test_searchengines.py +++ b/marionette/tor_browser_tests/test_searchengines.py @@ -7,6 +7,7 @@ # check the entries in the search box directly.
from marionette_harness import MarionetteTestCase +from marionette_driver import Wait import testsuite
class Test(MarionetteTestCase): @@ -16,6 +17,7 @@ class Test(MarionetteTestCase): ts = testsuite.TestSuite()
def test_searchengines(self): + m = self.marionette with self.marionette.using_context('content'): self.marionette.navigate('about:robots')
@@ -26,6 +28,7 @@ class Test(MarionetteTestCase): searchbar.send_keys("test") urlbarresults = self.marionette.find_element('id', 'urlbar-results') result = urlbarresults.find_element("css selector", "div:first-child .urlbarView-action") + Wait(m, timeout=m.timeout.page_load).until(lambda _: result.text != '') self.assertRegexpMatches(result.text, 'DuckDuckGo', 'DuckDuckGo is not the default search engine!')
#XXX: Test whether the second and third engine are the ones we want as well. diff --git a/marionette/tor_browser_tests/test_security_level_ui.py b/marionette/tor_browser_tests/test_security_level_ui.py index 740934f..d856c21 100644 --- a/marionette/tor_browser_tests/test_security_level_ui.py +++ b/marionette/tor_browser_tests/test_security_level_ui.py @@ -1,4 +1,4 @@ -from marionette_driver import Wait +from marionette_driver import Wait, expected from marionette_harness import MarionetteTestCase
class Test(MarionetteTestCase): @@ -12,8 +12,9 @@ class Test(MarionetteTestCase): 'id', 'securityLevel-advancedSecuritySettings').click() with m.using_context('content'): # Test whether changing the security level value works + spotlight = m.find_element('class name', 'spotlight') self.assertEqual( - m.get_url(), "about:preferences#privacy-securitylevel") + spotlight.get_attribute("data-subcategory"), "securitylevel") self.assertEqual(4, m.get_pref( 'extensions.torbutton.security_slider')) m.find_element( diff --git a/test-data/dom-objects-enumeration.js b/test-data/dom-objects-enumeration.js index b3e60c5..9247e71 100644 --- a/test-data/dom-objects-enumeration.js +++ b/test-data/dom-objects-enumeration.js @@ -1,4 +1,6 @@ -(() => { +// The setTimeout is a workaround for some objects not being immediately available in some cases, +// such as NotifyPaintEvent. +setTimeout(() => { // getAllPropertyNames function taken from: // https://stackoverflow.com/questions/8024149/is-it-possible-to-get-the-non-en... function getAllPropertyNames(obj) { @@ -41,4 +43,4 @@ onmessage(getGlobalNames()); } } -})(); \ No newline at end of file +}, 2000); \ No newline at end of file