| Index: chrome/test/functional/popups.py
|
| ===================================================================
|
| --- chrome/test/functional/popups.py (revision 154448)
|
| +++ chrome/test/functional/popups.py (working copy)
|
| @@ -1,177 +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 os
|
| -import logging
|
| -
|
| -import pyauto_functional # Must be imported before pyauto
|
| -import pyauto
|
| -import test_utils
|
| -
|
| -class PopupsTest(pyauto.PyUITest):
|
| - """TestCase for Popup blocking."""
|
| -
|
| - def Debug(self):
|
| - """Test method for experimentation.
|
| -
|
| - This method will not run automatically.
|
| - """
|
| - while True:
|
| - raw_input('Interact with the browser and hit <enter>')
|
| - self.pprint(self.GetBlockedPopupsInfo())
|
| -
|
| - def testPopupBlockerEnabled(self):
|
| - """Verify popup blocking is enabled."""
|
| - self.assertFalse(self.GetBlockedPopupsInfo(),
|
| - msg='Should have no blocked popups on startup')
|
| - file_url = self.GetFileURLForPath(os.path.join(
|
| - self.DataDir(), 'popup_blocker', 'popup-window-open.html'))
|
| - self.NavigateToURL(file_url)
|
| - blocked_popups = self.GetBlockedPopupsInfo()
|
| - self.assertEqual(1, len(blocked_popups), msg='Popup not blocked')
|
| - # It might take a while for the title to get set. Don't need to check it.
|
| - # self.assertEqual('Popup Success!', blocked_popups[0]['title'])
|
| -
|
| - def testLaunchBlockedPopup(self):
|
| - """Verify that a blocked popup can be unblocked."""
|
| - file_url = self.GetFileURLForPath(os.path.join(
|
| - self.DataDir(), 'popup_blocker', 'popup-window-open.html'))
|
| - self.NavigateToURL(file_url)
|
| - self.assertEqual(1, len(self.GetBlockedPopupsInfo()))
|
| - self.UnblockAndLaunchBlockedPopup(0)
|
| - # Verify that no more popups are blocked
|
| - self.assertFalse(self.GetBlockedPopupsInfo())
|
| - # Verify that popup window was created
|
| - self.assertEqual(2, self.GetBrowserWindowCount(),
|
| - msg='Popup could not be launched');
|
| - # Wait until popup title is read correctly.
|
| - self.assertTrue(self.WaitUntil(lambda:
|
| - self.GetActiveTabTitle(1), expect_retval='Popup Success!'),
|
| - msg='Popup title is wrong.')
|
| -
|
| - def testPopupBlockerInIncognito(self):
|
| - """Verify popup blocking is enabled in incognito windows."""
|
| - self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW)
|
| - file_url = self.GetFileURLForPath(os.path.join(
|
| - self.DataDir(), 'popup_blocker', 'popup-window-open.html'))
|
| - self.NavigateToURL(file_url, 1, 0)
|
| - blocked_popups = self.GetBlockedPopupsInfo(tab_index=0, windex=1)
|
| - self.assertEqual(1, len(blocked_popups), msg='Popup not blocked')
|
| -
|
| - def testLaunchBlockedPopupInIncognito(self):
|
| - """Verify that a blocked popup can be unblocked in incognito."""
|
| - self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW)
|
| - self.assertTrue(2, self.GetBrowserWindowCount())
|
| - file_url = self.GetFileURLForPath(os.path.join(
|
| - self.DataDir(), 'popup_blocker', 'popup-window-open.html'))
|
| - self.NavigateToURL(file_url, 1, 0)
|
| - self.assertEquals('Popup created using window.open',
|
| - self.GetActiveTabTitle(1))
|
| - # Wait until the popup is blocked
|
| - self.assertTrue(self.WaitUntil(lambda:
|
| - len(self.GetBlockedPopupsInfo(tab_index=0, windex=1)) is 1),
|
| - msg='Popup not blocked')
|
| - self.UnblockAndLaunchBlockedPopup(0, tab_index=0, windex=1)
|
| - # Verify that no more popups are blocked
|
| - self.assertFalse(self.GetBlockedPopupsInfo(tab_index=0, windex=1))
|
| - # Verify that popup window was created
|
| - self.assertEqual(3, self.GetBrowserWindowCount(),
|
| - msg='Popup could not be launched');
|
| - # Wait until popup title is read correctly.
|
| - self.assertTrue(self.WaitUntil(lambda:
|
| - self.GetActiveTabTitle(2), expect_retval='Popup Success!'),
|
| - msg='Popup title is wrong.')
|
| -
|
| - def testMultiplePopups(self):
|
| - """Verify multiple popups are blocked."""
|
| - url = self.GetHttpURLForDataPath(
|
| - os.path.join('pyauto_private', 'popup_blocker',
|
| - 'PopupTest1.html'))
|
| - self.NavigateToURL(url)
|
| - self.assertEqual(6, len(self.GetBlockedPopupsInfo()),
|
| - msg='Did not block 6 popups.')
|
| -
|
| - def testPopupBlockedEverySec(self):
|
| - """Verify that a popup is blocked every second."""
|
| - url = self.GetHttpURLForDataPath(
|
| - os.path.join('pyauto_private', 'popup_blocker',
|
| - 'PopupTest4.html'))
|
| - self.NavigateToURL(url)
|
| - self.assertTrue(self.WaitUntil(lambda: len(self.GetBlockedPopupsInfo()),
|
| - expect_retval=2))
|
| -
|
| - def _SetPopupsException(self):
|
| - """Set an exception to allow popups from www.popuptest.com."""
|
| - value = {'[*.]www.popuptest.com,*': {'popups': 1}}
|
| - return self.SetPrefs(pyauto.kContentSettingsPatternPairs, value)
|
| -
|
| - def testAllowPopupsFromExternalSite(self):
|
| - """Verify that popups are allowed from an external website."""
|
| - self._SetPopupsException()
|
| - self.NavigateToURL('http://www.popuptest.com/popuptest1.html')
|
| - self.assertEqual(7, self.GetBrowserWindowCount(),
|
| - msg='Popups did not launch from the external site.')
|
| -
|
| - def testPopupsLaunchUponBrowserBackButton(self):
|
| - """Verify that popups are launched on browser back button."""
|
| - self._SetPopupsException()
|
| - url = self.GetHttpURLForDataPath(
|
| - os.path.join('popup_blocker', 'popup-blocked-to-post-blank.html'))
|
| - self.NavigateToURL(url)
|
| - self.NavigateToURL('http://www.popuptest.com/popuptest1.html')
|
| - self.assertEqual(7, self.GetBrowserWindowCount(),
|
| - msg='Popups did not launch from the external site.')
|
| - self.TabGoBack()
|
| - # Check if two additional popups launch when navigating away from the page.
|
| - self.assertEqual(9, self.GetBrowserWindowCount(),
|
| - msg='Additional popups did not launch.')
|
| -
|
| - def testPopupsLaunchWhenTabIsClosed(self):
|
| - """Verify popups are launched when closing a tab."""
|
| - self._SetPopupsException()
|
| - self.AppendTab(pyauto.GURL('http://www.popuptest.com/popuptest12.html'))
|
| - self.assertEqual(4, self.GetBrowserWindowCount(),
|
| - msg='Popups did not launch from the external site.')
|
| - self.CloseTab(tab_index=1)
|
| - # Check if last popup is launched when the tab is closed.
|
| - self.assertEqual(5, self.GetBrowserWindowCount(),
|
| - msg='Last popup did not launch when the tab is closed.')
|
| -
|
| - def testUnblockedPopupShowsInHistory(self):
|
| - """Verify that when you unblock popup, the popup shows in history."""
|
| - file_url = self.GetFileURLForDataPath('popup_blocker',
|
| - 'popup-window-open.html')
|
| - self.NavigateToURL(file_url)
|
| - self.assertEqual(1, len(self.GetBlockedPopupsInfo()))
|
| - self.UnblockAndLaunchBlockedPopup(0)
|
| - self.assertTrue(self.WaitUntil(
|
| - lambda: len(self.GetHistoryInfo().History()) == 2))
|
| - self.assertEqual('Popup Success!',
|
| - self.GetHistoryInfo().History()[0]['title'])
|
| -
|
| - def testBlockedPopupNotShowInHistory(self):
|
| - """Verify that a blocked popup does not show up in history."""
|
| - file_url = self.GetFileURLForDataPath('popup_blocker',
|
| - 'popup-window-open.html')
|
| - self.NavigateToURL(file_url)
|
| - self.assertEqual(1, len(self.GetBlockedPopupsInfo()))
|
| - self.assertEqual(1, len(self.GetHistoryInfo().History()))
|
| -
|
| - def testUnblockedPopupAddedToOmnibox(self):
|
| - """Verify that an unblocked popup shows up in omnibox suggestions."""
|
| - file_url = self.GetFileURLForDataPath('popup_blocker',
|
| - 'popup-window-open.html')
|
| - self.NavigateToURL(file_url)
|
| - self.assertEqual(1, len(self.GetBlockedPopupsInfo()))
|
| - self.UnblockAndLaunchBlockedPopup(0)
|
| - search_string = 'data:text/html,<title>Popup Success!</title> \
|
| - you should not see this message if popup blocker is enabled'
|
| - matches = test_utils.GetOmniboxMatchesFor(self, search_string)
|
| - self.assertEqual(search_string, matches[0]['destination_url'])
|
| - self.assertEqual(search_string, matches[0]['contents'])
|
| -
|
| -
|
| -if __name__ == '__main__':
|
| - pyauto_functional.Main()
|
|
|