Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1131)

Unified Diff: chrome/test/functional/fullscreen_mouselock.py

Issue 222873002: Remove pyauto tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: sync Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/functional/extensions.py ('k') | chrome/test/functional/gpu.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/functional/fullscreen_mouselock.py
===================================================================
--- chrome/test/functional/fullscreen_mouselock.py (revision 261231)
+++ chrome/test/functional/fullscreen_mouselock.py (working copy)
@@ -1,618 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import logging
-import os
-import re
-import shutil
-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
-
-
-class FullscreenMouselockTest(pyauto.PyUITest):
- """TestCase for Fullscreen and Mouse Lock."""
-
- def setUp(self):
- pyauto.PyUITest.setUp(self)
- self._driver = self.NewWebDriver()
- # Get the hostname pattern (e.g. http://127.0.0.1:57622).
- self._hostname_pattern = (
- re.sub('/files/$', '', self.GetHttpURLForDataPath('')))
-
- def Debug(self):
- """Test method for experimentation.
-
- This method will not run automatically.
- """
- page = settings.ContentSettingsPage.FromNavigation(self._driver)
- import pdb
- pdb.set_trace()
-
- def ExtraChromeFlags(self):
- """Ensures Chrome is launched with custom flags.
-
- Returns:
- A list of extra flags to pass to Chrome when it is launched.
- """
- # Extra flag needed by scroll performance tests.
- return super(FullscreenMouselockTest,
- self).ExtraChromeFlags() + ['--enable-pointer-lock']
-
- def testFullScreenMouseLockHooks(self):
- """Verify fullscreen and mouse lock automation hooks work."""
- self.NavigateToURL(self.GetHttpURLForDataPath(
- 'fullscreen_mouselock', 'fullscreen_mouselock.html'))
-
- # Starting off we shouldn't be fullscreen
- self.assertFalse(self.IsFullscreenForBrowser())
- self.assertFalse(self.IsFullscreenForTab())
-
- # Go fullscreen
- self._driver.find_element_by_id('enterFullscreen').click()
- self.assertTrue(self.WaitUntil(self.IsFullscreenForTab))
-
- # Bubble should be up prompting to allow fullscreen
- self.assertTrue(self.IsFullscreenBubbleDisplayed())
- self.assertTrue(self.IsFullscreenBubbleDisplayingButtons())
- self.assertTrue(self.IsFullscreenPermissionRequested())
-
- # Accept bubble, it should go away.
- self.AcceptCurrentFullscreenOrMouseLockRequest()
- self.assertTrue(self.WaitUntil(
- lambda: not self.IsFullscreenBubbleDisplayingButtons()))
-
- # Try to lock mouse, it won't lock yet but permision will be requested.
- self.assertFalse(self.IsMouseLocked())
- self._driver.find_element_by_id('lockMouse1').click()
- self.assertTrue(self.WaitUntil(self.IsMouseLockPermissionRequested))
- self.assertFalse(self.IsMouseLocked())
-
- # Deny mouse lock.
- self.DenyCurrentFullscreenOrMouseLockRequest()
- self.assertTrue(self.WaitUntil(
- lambda: not self.IsFullscreenBubbleDisplayingButtons()))
- self.assertFalse(self.IsMouseLocked())
-
- # Try mouse lock again, and accept it.
- self._driver.find_element_by_id('lockMouse1').click()
- self.assertTrue(self.WaitUntil(self.IsMouseLockPermissionRequested))
- self.AcceptCurrentFullscreenOrMouseLockRequest()
- self.assertTrue(self.WaitUntil(self.IsMouseLocked))
-
- # The following doesn't work - as sending the key to the input field isn't
- # picked up by the browser. :( Need an alternative way.
- #
- # # Ideally we wouldn't target a specific element, we'd just send keys to
- # # whatever the current keyboard focus was.
- # keys_target = driver.find_element_by_id('sendKeysTarget')
- #
- # # ESC key should exit fullscreen and mouse lock.
- #
- # print "# ESC key should exit fullscreen and mouse lock."
- # keys_target.send_keys(Keys.ESCAPE)
- # self.assertTrue(self.WaitUntil(lambda: not self.IsFullscreenForBrowser()))
- # self.assertTrue(self.WaitUntil(lambda: not self.IsFullscreenForTab()))
- # self.assertTrue(self.WaitUntil(lambda: not self.IsMouseLocked()))
- #
- # # Check we can go browser fullscreen
- # print "# Check we can go browser fullscreen"
- # keys_target.send_keys(Keys.F11)
- # self.assertTrue(self.WaitUntil(self.IsFullscreenForBrowser))
-
- def _LaunchFSAndExpectPrompt(self, button_action='enterFullscreen'):
- """Helper function to launch fullscreen and expect a prompt.
-
- Fullscreen is initiated and a bubble prompt appears asking to allow or
- cancel from fullscreen mode. The actual fullscreen mode doesn't take place
- until after approving the prompt.
-
- If the helper is not successful then the test will fail.
-
- Args:
- button_action: The button id to click to initiate an action. Default is to
- click enterFullscreen.
- """
- self.NavigateToURL(self.GetHttpURLForDataPath(
- 'fullscreen_mouselock', 'fullscreen_mouselock.html'))
- # Should not be in fullscreen mode during initial launch.
- self.assertFalse(self.IsFullscreenForBrowser())
- self.assertFalse(self.IsFullscreenForTab())
- # Go into fullscreen mode.
- self._driver.find_element_by_id(button_action).click()
- self.assertTrue(self.WaitUntil(self.IsFullscreenForTab))
- # Bubble should display prompting to allow fullscreen.
- self.assertTrue(self.IsFullscreenPermissionRequested())
-
- def _InitiateBrowserFullscreen(self):
- """Helper function that initiates browser fullscreen."""
- self.NavigateToURL(self.GetHttpURLForDataPath(
- 'fullscreen_mouselock', 'fullscreen_mouselock.html'))
- # Should not be in fullscreen mode during initial launch.
- self.assertFalse(self.IsFullscreenForBrowser())
- self.assertFalse(self.IsFullscreenForTab())
- # Initiate browser fullscreen.
- self.ApplyAccelerator(pyauto.IDC_FULLSCREEN)
- self.assertTrue(self.WaitUntil(self.IsFullscreenForBrowser))
- 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()
- self.assertTrue(self.WaitUntil(
- lambda: not self.IsFullscreenBubbleDisplayingButtons()))
-
- def _EnableFullscreenAndMouseLockMode(self):
- """Helper function to enable fullscreen and mouse lock mode."""
- self._LaunchFSAndExpectPrompt(button_action='enterFullscreenAndLockMouse1')
- # Allow fullscreen.
- self.AcceptCurrentFullscreenOrMouseLockRequest()
- # The wait is needed due to crbug.com/123396. Should be able to click the
- # fullscreen and mouselock button and be both accepted in a single action.
- self.assertTrue(self.WaitUntil(self.IsMouseLockPermissionRequested))
- # Allow mouse lock.
- self.AcceptCurrentFullscreenOrMouseLockRequest()
- self.assertTrue(self.WaitUntil(self.IsMouseLocked))
-
- def _EnableMouseLockMode(self, button_action='lockMouse1'):
- """Helper function to enable mouse lock mode.
-
- Args:
- button_action: The button id to click to initiate an action. Default is to
- click lockMouse1.
- """
- self._driver.find_element_by_id(button_action).click()
- self.assertTrue(self.WaitUntil(self.IsMouseLockPermissionRequested))
- 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()
- self._AcceptFullscreenOrMouseLockRequest()
- content_settings = (
- self.GetPrefsInfo().Prefs()['profile']['content_settings'])
- self.assertEqual(
- {self._hostname_pattern + ',*': {'fullscreen': 1}}, # Allow hostname.
- content_settings['pattern_pairs'],
- msg='Saved hostname pattern does not match expected pattern.')
-
- def testPrefsForFullscreenExit(self):
- """Verify prefs is empty when exit fullscreen mode before allowing."""
- self._LaunchFSAndExpectPrompt()
- self._driver.find_element_by_id('exitFullscreen').click()
- # Verify exit from fullscreen mode.
- self.assertTrue(self.WaitUntil(lambda: not self.IsFullscreenForTab()))
- content_settings = (
- self.GetPrefsInfo().Prefs()['profile']['content_settings'])
- self.assertEqual(
- {}, content_settings['pattern_pairs'],
- msg='Patterns saved when there should be none.')
-
- def testPatternsForFSAndML(self):
- """Verify hostname pattern and behavior for allowed mouse cursor lock.
-
- To lock the mouse, the browser needs to be in fullscreen mode.
- """
- self._EnableFullscreenAndMouseLockMode()
- self._EnableMouseLockMode()
- expected_pattern = (
- {self._hostname_pattern + ',*': {'fullscreen': 1, 'mouselock': 1}})
- content_settings = (
- self.GetPrefsInfo().Prefs()['profile']['content_settings'])
- self.assertEqual(
- expected_pattern, content_settings['pattern_pairs'],
- msg='Saved hostname and behavior patterns do not match expected.')
-
- def testPatternsForAllowMouseLock(self):
- """Verify hostname pattern and behavior for allowed mouse cursor lock.
-
- Enable fullscreen mode and enable mouse lock separately.
- """
- self._LaunchFSAndExpectPrompt()
- self.AcceptCurrentFullscreenOrMouseLockRequest()
- self._EnableMouseLockMode()
- expected_pattern = (
- {self._hostname_pattern + ',*': {'fullscreen': 1, 'mouselock': 1}})
- content_settings = (
- self.GetPrefsInfo().Prefs()['profile']['content_settings'])
- self.assertEqual(
- expected_pattern, content_settings['pattern_pairs'],
- msg='Saved hostname and behavior patterns do not match expected.')
-
- def testNoMouseLockRequest(self):
- """Verify mouse lock request does not appear.
-
- When allowing all sites to disable the mouse cursor, the mouse lock request
- bubble should not show. The mouse cursor should be automatically disabled
- when clicking on a disable mouse button.
- """
- # Allow all sites to disable mouse cursor.
- self.SetPrefs(pyauto.kDefaultContentSettings, {u'mouselock': 1})
- self._LaunchFSAndExpectPrompt()
- # Allow for fullscreen mode.
- self._AcceptFullscreenOrMouseLockRequest()
- self._driver.set_script_timeout(2)
- # Receive callback status (success or failure) from javascript that the
- # click has registered and the mouse lock status has changed.
- lock_result = self._driver.execute_async_script(
- 'lockMouse1(arguments[arguments.length - 1])')
- self.assertEqual(lock_result, 'success', msg='Mouse lock unsuccessful.')
- self.assertTrue(self.WaitUntil(
- lambda: not self.IsMouseLockPermissionRequested()))
- self.assertTrue(self.IsMouseLocked())
-
- def testUnableToLockMouse(self):
- """Verify mouse lock is disabled.
-
- When not allowing any site to disable the mouse cursor, the mouse lock
- request bubble should not show and the mouse cursor should not be disabled.
- """
- # Do not allow any site to disable mouse cursor.
- self.SetPrefs(pyauto.kDefaultContentSettings, {u'mouselock': 2})
- self._LaunchFSAndExpectPrompt()
- # Allow for fullscreen mode.
- self._AcceptFullscreenOrMouseLockRequest()
- self._driver.set_script_timeout(2)
- # Receive callback status (success or failure) from javascript that the
- # click has registered and the mouse lock status has changed.
- lock_result = self._driver.execute_async_script(
- 'lockMouse1(arguments[arguments.length - 1])')
- self.assertEqual(lock_result, 'failure', msg='Mouse locked unexpectedly.')
- self.assertTrue(self.WaitUntil(
- lambda: not self.IsMouseLockPermissionRequested()))
- self.assertTrue(self.WaitUntil(lambda: not self.IsMouseLocked()))
-
- def testEnterTabFSWhileInBrowserFS(self):
- """Verify able to enter into tab fullscreen while in browser fullscreen."""
- self._InitiateBrowserFullscreen()
- # Initiate tab fullscreen.
- self._driver.find_element_by_id('enterFullscreen').click()
- self.assertTrue(self.WaitUntil(lambda: self.IsFullscreenForTab()))
- self.assertTrue(self.WaitUntil(lambda: not self.IsMouseLocked()))
-
- def testMouseLockInBrowserFS(self):
- """Verify mouse lock in browser fullscreen requires allow prompt."""
- self._InitiateBrowserFullscreen()
- self._driver.set_script_timeout(2)
- self._driver.execute_script('lockMouse1AndSetLockResult()')
- # Bubble should display prompting to allow mouselock.
- self.assertTrue(self.WaitUntil(self.IsMouseLockPermissionRequested))
- self.AcceptCurrentFullscreenOrMouseLockRequest()
- # Waits until lock_result gets 'success' or 'failure'.
- lock_result = self._driver.execute_script('return lock_result')
- self.assertEqual(lock_result, 'success',
- msg='Mouse was not locked in browser fullscreen.')
-
- def testNoMouseLockWhenCancelFS(self):
- """Verify mouse lock breaks when canceling tab fullscreen.
-
- This test uses javascript to initiate exit of tab fullscreen after mouse
- lock success callback.
- """
- self._LaunchFSAndExpectPrompt()
- self._driver.set_script_timeout(2)
- lock_result = self._driver.execute_script('lockMouse1AndSetLockResult()')
- self.assertTrue(
- self.WaitUntil(lambda: self.IsMouseLockPermissionRequested()))
- self.AcceptCurrentFullscreenOrMouseLockRequest()
- self.assertTrue(self.WaitUntil(self.IsMouseLocked))
- # Waits until lock_result gets 'success' or 'failure'.
- lock_result = self._driver.execute_script('return lock_result')
- self.assertEqual(
- lock_result, 'success', msg='Mouse is not locked.')
- self._driver.execute_script('document.webkitCancelFullScreen()')
- self.assertTrue(self.WaitUntil(lambda: not self.IsFullscreenForTab()),
- msg='Tab is still in fullscreen.')
- self.assertTrue(self.WaitUntil(lambda: not self.IsMouseLocked()),
- msg='Mouse is still locked after exiting fullscreen.')
-
- def testNoTabFSExitWhenJSExitMouseLock(self):
- """Verify tab fullscreen does not exit when javascript init mouse lock exit.
-
- This test uses javascript to initiate exit of mouse lock after mouse
- lock success callback.
- """
- self._LaunchFSAndExpectPrompt()
- self._EnableMouseLockMode()
- self._driver.execute_script('navigator.webkitPointer.unlock()')
- self.WaitUntil(lambda: not self.IsMouseLocked())
- self.assertTrue(self.IsFullscreenForTab(), msg='Tab fullscreen was lost.')
-
- def testMouseLockExitWhenAlertDialogShow(self):
- """Verify mouse lock breaks when alert dialog appears."""
- self._LaunchFSAndExpectPrompt()
- self._EnableMouseLockMode()
- # Need to catch the exception here since the alert dialog raises
- # a WebDriverException due to a modal dialog.
- from selenium.common.exceptions import WebDriverException
- try:
- self._driver.execute_script('alert("A modal dialog")')
- except WebDriverException:
- pass
-
- self.assertTrue(self.WaitUntil(lambda: self.IsFullscreenForTab()),
- msg='Tab fullscreen was lost.')
- self.assertTrue(self.WaitUntil(lambda: not self.IsMouseLocked()),
- msg='Mouse is still locked')
-
- def testMouseLockExitWhenBrowserLoseFocus(self):
- """Verify mouse lock breaks when browser loses focus.
-
- Mouse lock breaks when the focus is placed on another new window.
- """
- self._LaunchFSAndExpectPrompt()
- self.AcceptCurrentFullscreenOrMouseLockRequest()
- # Open a new window to shift focus away.
- self.OpenNewBrowserWindow(True)
- self.assertTrue(self.WaitUntil(lambda: self.IsFullscreenForTab()))
- self.assertTrue(self.WaitUntil(lambda: not self.IsMouseLocked()),
- msg='Mouse lock did not break when browser lost focus.')
-
- def testMouseLockLostOnReload(self):
- """Verify mouse lock is lost on page reload."""
- self.NavigateToURL(self.GetHttpURLForDataPath(
- 'fullscreen_mouselock', 'fullscreen_mouselock.html'))
- self._EnableMouseLockMode()
- self.ReloadActiveTab()
- self.assertTrue(self.WaitUntil(lambda: not self.IsMouseLocked()),
- msg='Mouse lock did not break when page is reloaded.')
-
- def testNoMLBubbleWhenTabLoseFocus(self):
- """Verify mouse lock bubble goes away when tab loses focus."""
- self.NavigateToURL(self.GetHttpURLForDataPath(
- 'fullscreen_mouselock', 'fullscreen_mouselock.html'))
- self._driver.find_element_by_id('lockMouse1').click()
- self.assertTrue(self.WaitUntil(self.IsMouseLockPermissionRequested))
- self.AppendTab(pyauto.GURL('chrome://newtab'))
- self.assertTrue(self.WaitUntil(
- 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.TabGoBack()
- 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.TabGoBack()
- 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.
-
- This test is semi-automated.
-
- The browser initiates browser fullscreen, then initiates tab fullscreen. The
- test verifies that existing tab fullscreen by simulating ESC key press or
- clicking the js function to exitFullscreen() will exit the tab fullscreen
- leaving browser fullscreen intact.
- """
- self._InitiateBrowserFullscreen()
- # Initiate tab fullscreen.
- self._driver.find_element_by_id('enterFullscreen').click()
- self.assertTrue(self.WaitUntil(lambda: self.IsFullscreenForTab()))
- # Require manual intervention to send ESC key due to crbug.com/123930.
- # TODO(dyu): Update to a full test once associated bug is fixed.
- logging.info('Press ESC key to exit tab fullscreen.')
- time.sleep(5)
- self.assertTrue(self.WaitUntil(lambda: not self.IsFullscreenForTab()))
- self.assertTrue(self.WaitUntil(lambda: self.IsFullscreenForBrowser()),
- msg='Not in browser fullscreen mode.')
-
- self._driver.find_element_by_id('enterFullscreen').click()
- self.assertTrue(self.WaitUntil(lambda: self.IsFullscreenForTab()))
- # Exit tab fullscreen by clicking button exitFullscreen().
- self._driver.find_element_by_id('exitFullscreen').click()
- self.assertTrue(self.WaitUntil(lambda: not self.IsFullscreenForTab()))
- self.assertTrue(self.WaitUntil(lambda: self.IsFullscreenForBrowser()),
- msg='Not in browser fullscreen mode.')
-
- def F11KeyExitsTabAndBrowserFS(self):
- """Verify existing tab fullscreen exits all fullscreen modes.
-
- This test is semi-automated.
-
- The browser initiates browser fullscreen, then initiates tab fullscreen. The
- test verifies that existing tab fullscreen by simulating F11 key press or
- CMD + SHIFT + F keys on the Mac will exit the tab fullscreen and the
- browser fullscreen.
- """
- self._InitiateBrowserFullscreen()
- # Initiate tab fullscreen.
- self._driver.find_element_by_id('enterFullscreen').click()
- self.assertTrue(self.WaitUntil(lambda: self.IsFullscreenForTab()))
- # Require manual intervention to send F11 key due to crbug.com/123930.
- # TODO(dyu): Update to a full test once associated bug is fixed.
- logging.info('Press F11 key to exit tab fullscreen.')
- time.sleep(5)
- self.assertTrue(self.WaitUntil(lambda: not self.IsFullscreenForTab()))
- self.assertTrue(self.WaitUntil(lambda: not self.IsFullscreenForBrowser()),
- msg='Browser is in fullscreen mode.')
-
- def SearchForTextOutsideOfContainer(self):
- """Verify text outside of container is not visible when fullscreen.
-
- This test is semi-automated.
-
- Verify this test manually until there is a way to find text on screen
- without using FindInPage().
-
- The text that is outside of the fullscreen container should only be visible
- when fullscreen is off. The text should not be visible while in fullscreen
- mode.
- """
- self.NavigateToURL(self.GetHttpURLForDataPath(
- 'fullscreen_mouselock', 'fullscreen_mouselock.html'))
- # Should not be in fullscreen mode during initial launch.
- self.assertFalse(self.IsFullscreenForBrowser())
- self.assertFalse(self.IsFullscreenForTab())
- self.assertTrue(
- self.WaitUntil(lambda: self.FindInPage(
- 'This text is outside of the container')['match_count'],
- expect_retval=1))
- # Go into fullscreen mode.
- self._driver.find_element_by_id('enterFullscreen').click()
- self.assertTrue(self.WaitUntil(self.IsFullscreenForTab))
- time.sleep(5)
- # TODO(dyu): find a way to verify on screen text instead of using
- # FindInPage() which searches for text in the HTML.
-
- def SameMouseLockMovement(self):
- """Verify the correct feel of mouse movement data when mouse is locked.
-
- This test is semi-automated.
-
- This test loads the same web page in two different tabs while in mouse lock
- mode. Each tab loads the web page from a different URL (e.g. by loading it
- from a localhost server and a file url). The test verifies
- that the mouse lock movements work the same in both
- tabs.
- """
- url1 = self.GetHttpURLForDataPath(
- 'fullscreen_mouselock', 'fullscreen_mouselock.html')
- url2 = self.GetFileURLForDataPath(
- 'fullscreen_mouselock', 'fullscreen_mouselock.html')
- tab2 = 'f1-4'
- self.NavigateToURL(url1)
- self.RunCommand(pyauto.IDC_NEW_TAB) # Open new tab.
- self.NavigateToURL(url2, 0, 1)
- self._driver.switch_to_window(tab2)
- self._EnableMouseLockMode() # Lock mouse in tab 2.
- raw_input('Manually move the mouse cursor on the page in tab 2. Shift+Tab \
- into tab 1, click on lockMouse1() button, and move the mouse \
- cursor on the page in tab 1. Verify mouse movement is smooth.')
-
- def MouseEventsIndependentOfExitBubble(self):
- """Verify mouse events are independent of the exit FS exit bubble for ML.
-
- Mouse movement events should work immediately when mouse lock is activated.
- The events should not be blocked waiting for the exit instruction bubble to
- clear.
- """
- self.NavigateToURL(self.GetHttpURLForDataPath(
- 'fullscreen_mouselock', 'fullscreen_mouselock.html'))
- # Should not be in fullscreen mode during initial launch.
- self.assertFalse(self.IsFullscreenForBrowser())
- self.assertFalse(self.IsFullscreenForTab())
- # Go into fullscreen mode.
- self._driver.find_element_by_id('enterFullscreen').click()
- self.assertTrue(self.WaitUntil(self.IsFullscreenForTab))
- self._EnableMouseLockMode()
- raw_input(
- '1. Move the mouse, see movement data being received by the page.\
- 2. Press ESC key.\
- 3. Lock the mouse without going fullscreen. Click lockMouse1() button.\
- Verify: The mouse movement events should work immediately.')
-
-if __name__ == '__main__':
- pyauto_functional.Main()
« no previous file with comments | « chrome/test/functional/extensions.py ('k') | chrome/test/functional/gpu.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698