| Index: chrome/test/functional/fullscreen_mouselock.py
|
| diff --git a/chrome/test/functional/fullscreen_mouselock.py b/chrome/test/functional/fullscreen_mouselock.py
|
| index beb6a4933dce9337ce62197959338429593f85dd..798263bde4e3be144f813959de1bf0d351e0c441 100755
|
| --- a/chrome/test/functional/fullscreen_mouselock.py
|
| +++ b/chrome/test/functional/fullscreen_mouselock.py
|
| @@ -12,6 +12,8 @@ import time
|
| import pyauto_functional # Must be imported before pyauto
|
| import pyauto
|
| import test_utils
|
| +from selenium.webdriver.common.action_chains import ActionChains
|
| +from selenium.common.exceptions import WebDriverException
|
| from selenium.webdriver.common.keys import Keys
|
| from webdriver_pages import settings
|
|
|
| @@ -143,6 +145,14 @@ class FullscreenMouselockTest(pyauto.PyUITest):
|
| self.assertTrue(self.WaitUntil(lambda: not self.IsFullscreenForTab()))
|
| self.assertTrue(self.WaitUntil(lambda: not self.IsMouseLocked()))
|
|
|
| + def _InitiateTabFullscreen(self):
|
| + """Helper function that initiates tab fullscreen."""
|
| + self.NavigateToURL(self.GetHttpURLForDataPath(
|
| + 'fullscreen_mouselock', 'fullscreen_mouselock.html'))
|
| + # Initiate tab fullscreen.
|
| + self._driver.find_element_by_id('enterFullscreen').click()
|
| + self.assertTrue(self.WaitUntil(self.IsFullscreenForTab))
|
| +
|
| def _AcceptFullscreenOrMouseLockRequest(self):
|
| """Helper function to accept fullscreen or mouse lock request."""
|
| self.AcceptCurrentFullscreenOrMouseLockRequest()
|
| @@ -173,6 +183,32 @@ class FullscreenMouselockTest(pyauto.PyUITest):
|
| self.AcceptCurrentFullscreenOrMouseLockRequest()
|
| self.assertTrue(self.IsMouseLocked())
|
|
|
| + def _EnableAndReturnLockMouseResult(self):
|
| + """Helper function to enable and return mouse lock result."""
|
| + self.NavigateToURL(self.GetHttpURLForDataPath(
|
| + 'fullscreen_mouselock', 'fullscreen_mouselock.html'))
|
| + self._driver.find_element_by_id('lockMouse2').click()
|
| + self.assertTrue(
|
| + self.WaitUntil(self.IsMouseLockPermissionRequested))
|
| + self.AcceptCurrentFullscreenOrMouseLockRequest()
|
| + # Waits until lock_result gets 'success' or 'failure'.
|
| + return self._driver.execute_script('return lock_result')
|
| +
|
| + def _ClickAnchorLink(self):
|
| + """Clicks the anchor link until it's successfully clicked.
|
| +
|
| + Clicks on the anchor link and compares the js |clicked_elem_ID| variabled
|
| + with the anchor id. Returns True if the link is clicked.
|
| + """
|
| + element_id = 'anchor'
|
| + # Catch WebDriverException: u'Element is not clickable at point (185.5,
|
| + # 669.5). Instead another element would receive the click.
|
| + try:
|
| + self._driver.find_element_by_id(element_id).click()
|
| + except WebDriverException:
|
| + return False
|
| + return self._driver.execute_script('return clicked_elem_ID') == element_id
|
| +
|
| def testPrefsForFullscreenAllowed(self):
|
| """Verify prefs when fullscreen is allowed."""
|
| self._LaunchFSAndExpectPrompt()
|
| @@ -375,6 +411,81 @@ class FullscreenMouselockTest(pyauto.PyUITest):
|
| lambda: not self.IsFullscreenBubbleDisplayingButtons()),
|
| msg='Mouse lock bubble did not clear when tab lost focus.')
|
|
|
| + def testTabFSExitWhenNavBackToPrevPage(self):
|
| + """Verify tab fullscreen exit when navigating back to previous page.
|
| +
|
| + This test navigates to a new page while in tab fullscreen mode by using
|
| + GoBack() to navigate to the previous google.html page.
|
| + """
|
| + self.NavigateToURL(self.GetHttpURLForDataPath('google', 'google.html'))
|
| + self._InitiateTabFullscreen()
|
| + self.GetBrowserWindow().GetTab().GoBack()
|
| + self.assertFalse(
|
| + self.IsFullscreenForTab(),
|
| + msg='Tab fullscreen did not exit when navigating to a new page.')
|
| +
|
| + def testTabFSExitWhenNavToNewPage(self):
|
| + """Verify tab fullscreen exit when navigating to a new website.
|
| +
|
| + This test navigates to a new website while in tab fullscreen.
|
| + """
|
| + self._InitiateTabFullscreen()
|
| + self.NavigateToURL(self.GetHttpURLForDataPath('google', 'google.html'))
|
| + self.assertFalse(
|
| + self.IsFullscreenForTab(),
|
| + msg='Tab fullscreen did not exit when navigating to a new website.')
|
| +
|
| + def testTabFSDoesNotExitForAnchorLinks(self):
|
| + """Verify tab fullscreen does not exit for anchor links.
|
| +
|
| + Tab fullscreen should not exit when following a link to the same page such
|
| + as example.html#anchor.
|
| + """
|
| + self._InitiateTabFullscreen()
|
| + self.assertTrue(self.WaitUntil(self._ClickAnchorLink))
|
| + self.assertTrue(
|
| + self.WaitUntil(self.IsFullscreenForTab),
|
| + msg='Tab fullscreen should not exit when clicking on an anchor link.')
|
| +
|
| + def testMLExitWhenNavBackToPrevPage(self):
|
| + """Verify mouse lock exit when navigating back to previous page.
|
| +
|
| + This test navigates to a new page while mouse lock is activated by using
|
| + GoBack() to navigate to the previous google.html page.
|
| + """
|
| + self.NavigateToURL(self.GetHttpURLForDataPath('google', 'google.html'))
|
| + lock_result = self._EnableAndReturnLockMouseResult()
|
| + self.assertEqual(
|
| + lock_result, 'success', msg='Mouse is not locked.')
|
| + self.GetBrowserWindow().GetTab().GoBack()
|
| + self.assertFalse(
|
| + self.IsMouseLocked(),
|
| + msg='Mouse lock did not exit when navigating to the prev page.')
|
| +
|
| + def testMLExitWhenNavToNewPage(self):
|
| + """Verify mouse lock exit when navigating to a new website."""
|
| + lock_result = self._EnableAndReturnLockMouseResult()
|
| + self.assertEqual(
|
| + lock_result, 'success', msg='Mouse is not locked.')
|
| + self.NavigateToURL(self.GetHttpURLForDataPath('google', 'google.html'))
|
| + self.assertFalse(
|
| + self.IsMouseLocked(),
|
| + msg='Mouse lock did not exit when navigating to a new website.')
|
| +
|
| + def testMLDoesNotExitForAnchorLinks(self):
|
| + """Verify mouse lock does not exit for anchor links.
|
| +
|
| + Mouse lock should not exist when following a link to the same page such as
|
| + example.html#anchor.
|
| + """
|
| + lock_result = self._EnableAndReturnLockMouseResult()
|
| + self.assertEqual(
|
| + lock_result, 'success', msg='Mouse is not locked.')
|
| + ActionChains(self._driver).move_to_element(
|
| + self._driver.find_element_by_id('anchor')).click().perform()
|
| + self.assertTrue(self.WaitUntil(self.IsMouseLocked),
|
| + msg='Mouse lock broke when clicking on an anchor link.')
|
| +
|
| def ExitTabFSToBrowserFS(self):
|
| """Verify exiting tab fullscreen leaves browser in browser fullscreen.
|
|
|
|
|