tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_actions_wheel.py (2641B)


      1 # This Source Code Form is subject to the terms of the Mozilla Public
      2 # License, v. 2.0. If a copy of the MPL was not distributed with this
      3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
      4 
      5 from marionette_driver import By
      6 from marionette_harness import MarionetteTestCase, parameterized
      7 
      8 
      9 class BaseWheelAction(MarionetteTestCase):
     10    def setUp(self):
     11        super(BaseWheelAction, self).setUp()
     12 
     13        self.test_page = self.marionette.absolute_url("actions_scroll.html")
     14        self.marionette.navigate(self.test_page)
     15 
     16        self.wheel_chain = self.marionette.actions.sequence("wheel", "wheel_id")
     17 
     18    def tearDown(self):
     19        self.marionette.actions.release()
     20 
     21        super(BaseWheelAction, self).tearDown()
     22 
     23    def get_events(self):
     24        return self.marionette.execute_script("return allEvents.events;", sandbox=None)
     25 
     26 
     27 class TestWheelAction(BaseWheelAction):
     28    def test_scroll_not_scrollable(self):
     29        target = self.marionette.find_element(By.ID, "not-scrollable")
     30 
     31        self.wheel_chain.scroll(0, 0, 5, 10, origin=target, duration=0).perform()
     32 
     33        events = self.get_events()
     34        self.assertEqual(len(events), 1)
     35        self.assertEqual(events[0]["type"], "wheel")
     36        self.assertEqual(events[0]["deltaX"], 5)
     37        self.assertEqual(events[0]["deltaY"], 10)
     38        self.assertEqual(events[0]["deltaZ"], 0)
     39        self.assertEqual(events[0]["target"], "not-scrollable-content")
     40 
     41    def test_scroll_scrollable(self):
     42        target = self.marionette.find_element(By.ID, "scrollable")
     43        self.wheel_chain.scroll(0, 0, 5, 10, origin=target).perform()
     44 
     45        events = self.get_events()
     46        self.assertEqual(len(events), 1)
     47        self.assertEqual(events[0]["type"], "wheel")
     48        self.assertEqual(events[0]["deltaX"], 5)
     49        self.assertEqual(events[0]["deltaY"], 10)
     50        self.assertEqual(events[0]["deltaZ"], 0)
     51        self.assertEqual(events[0]["target"], "scrollable-content")
     52 
     53    def test_scroll_iframe_scrollable(self):
     54        iframe = self.marionette.find_element(By.ID, "iframe")
     55        self.marionette.switch_to_frame(iframe)
     56 
     57        target = self.marionette.find_element(By.ID, "iframeContent")
     58        self.wheel_chain.scroll(0, 0, 5, 10, origin=target).perform()
     59 
     60        self.marionette.switch_to_frame()
     61 
     62        events = self.get_events()
     63        self.assertEqual(len(events), 1)
     64        self.assertEqual(events[0]["type"], "wheel")
     65        self.assertEqual(events[0]["deltaX"], 5)
     66        self.assertEqual(events[0]["deltaY"], 10)
     67        self.assertEqual(events[0]["deltaZ"], 0)
     68        self.assertEqual(events[0]["target"], "iframeContent")