summaryrefslogtreecommitdiffstats
path: root/chrome/test/functional
diff options
context:
space:
mode:
authornirnimesh@chromium.org <nirnimesh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-22 04:55:28 +0000
committernirnimesh@chromium.org <nirnimesh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-22 04:55:28 +0000
commite004a2d0d8d5f3e67483f52a48db29998882d7ff (patch)
tree1c5d4eeaa1734a026c0a1a5070dc3af6dfb85d7e /chrome/test/functional
parent8e8efbd197406eaf4b4e458c32b158f360ba9307 (diff)
downloadchromium_src-e004a2d0d8d5f3e67483f52a48db29998882d7ff.zip
chromium_src-e004a2d0d8d5f3e67483f52a48db29998882d7ff.tar.gz
chromium_src-e004a2d0d8d5f3e67483f52a48db29998882d7ff.tar.bz2
Add PyAuto automation hooks to perform actions on infobars
Actions include: dismissing an infobar, accept/close-ing it Also, enable infobars tests. Review URL: http://codereview.chromium.org/3042012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53304 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/functional')
-rw-r--r--chrome/test/functional/PYAUTO_TESTS1
-rw-r--r--chrome/test/functional/infobars.py56
2 files changed, 56 insertions, 1 deletions
diff --git a/chrome/test/functional/PYAUTO_TESTS b/chrome/test/functional/PYAUTO_TESTS
index 952eb98..1e16df7 100644
--- a/chrome/test/functional/PYAUTO_TESTS
+++ b/chrome/test/functional/PYAUTO_TESTS
@@ -31,6 +31,7 @@
'cookies',
'downloads',
'history',
+ 'infobars',
'navigation',
'omnibox',
'passwords',
diff --git a/chrome/test/functional/infobars.py b/chrome/test/functional/infobars.py
index f5d48e3..b4f080b 100644
--- a/chrome/test/functional/infobars.py
+++ b/chrome/test/functional/infobars.py
@@ -31,6 +31,13 @@ class InfobarTest(pyauto.PyUITest):
print 'Window', window['index'], 'tab', tab['index']
pp.pprint(tab['infobars'])
+ def _GetTabInfo(self, windex=0, tab_index=0):
+ """Helper to return info for the given tab in the given window.
+
+ Defaults to first tab in first window.
+ """
+ return self.GetBrowserInfo()['windows'][windex]['tabs'][tab_index]
+
def testPluginCrashInfobar(self):
"""Verify the "plugin crashed" infobar."""
flash_url = self.GetFileURLForPath(os.path.join(self.DataDir(),
@@ -44,11 +51,58 @@ class InfobarTest(pyauto.PyUITest):
logging.info('Killing flash plugin. pid %d' % flash['pid'])
self.Kill(flash['pid'])
self.WaitForInfobarCount(1)
- crash_infobar = self.GetBrowserInfo()['windows'][0]['tabs'][0]['infobars']
+ crash_infobar = self._GetTabInfo()['infobars']
self.assertTrue(crash_infobar)
self.assertEqual(1, len(crash_infobar))
self.assertTrue(re.match('The following plug-in has crashed:',
crash_infobar[0]['text']))
+ self.assertEqual('alert_infobar', crash_infobar[0]['type'])
+ # Dismiss the infobar
+ self.PerformActionOnInfobar('dismiss', infobar_index=0)
+ self.assertFalse(self._GetTabInfo()['infobars'])
+
+ def _VerifyGeolocationInfobar(self, match_text, windex, tab_index):
+ """Verify geolocation infobar and match given text.
+
+ Assumes that geolocation infobar is showing up in the given tab in the
+ given window.
+ """
+ tab_info = self._GetTabInfo(windex, tab_index)
+ geolocation_infobar = tab_info['infobars']
+ self.assertTrue(geolocation_infobar)
+ self.assertEqual(1, len(geolocation_infobar))
+ self.assertEqual(match_text, geolocation_infobar[0]['text'])
+ self.assertEqual('Learn more', geolocation_infobar[0]['link_text'])
+ self.assertEqual(2, len(geolocation_infobar[0]['buttons']))
+ self.assertEqual('Allow', geolocation_infobar[0]['buttons'][0])
+ self.assertEqual('Deny', geolocation_infobar[0]['buttons'][1])
+
+ def testGeolocationInfobar(self):
+ """Verify geoLocation infobar."""
+ url = 'http://m.flickr.com/#/nearby/' # automatically triggers geolocation
+ match_text='m.flickr.com wants to track your physical location'
+ self.NavigateToURL(url)
+ self._VerifyGeolocationInfobar(windex=0, tab_index=0, match_text=match_text)
+ # Accept, and verify that the infobar went away
+ self.PerformActionOnInfobar('accept', infobar_index=0)
+ self.assertFalse(self._GetTabInfo()['infobars'])
+
+ def testGeolocationInfobarInMultipleTabsAndWindows(self):
+ """Verify GeoLocation inforbar in multiple tabs."""
+ url = 'http://m.flickr.com/#/nearby/' # automatically triggers geolocation
+ match_text='m.flickr.com wants to track your physical location'
+ for tab_index in range(1, 2):
+ self.AppendTab(pyauto.GURL(url))
+ self._VerifyGeolocationInfobar(windex=0, tab_index=tab_index,
+ match_text=match_text)
+ # Try in a new window
+ self.OpenNewBrowserWindow(True)
+ self.NavigateToURL(url, 1, 0)
+ self._VerifyGeolocationInfobar(windex=1, tab_index=0, match_text=match_text)
+ # Incognito window
+ self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW)
+ self.NavigateToURL(url, 2, 0)
+ self._VerifyGeolocationInfobar(windex=2, tab_index=0, match_text=match_text)
if __name__ == '__main__':