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

Unified Diff: chrome/test/functional/ntp.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/netflix.py ('k') | chrome/test/functional/omnibox.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/functional/ntp.py
===================================================================
--- chrome/test/functional/ntp.py (revision 261231)
+++ chrome/test/functional/ntp.py (working copy)
@@ -1,473 +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 copy
-import os
-
-import pyauto_functional # Must be imported before pyauto
-import pyauto
-import test_utils
-
-
-class NTPTest(pyauto.PyUITest):
- """Test of the NTP."""
-
- # Default apps are registered in ProfileImpl::RegisterComponentExtensions().
- _EXPECTED_DEFAULT_APPS = [
- {u'title': u'Chrome Web Store'},
- ]
- if pyauto.PyUITest.IsChromeOS():
- _EXPECTED_DEFAULT_APPS.append({u'title': u'Files'})
- _EXPECTED_DEFAULT_APPS.append({u'title': u'Chrome'})
- else:
- _EXPECTED_DEFAULT_APPS.append({u'title': u'Cloud Print'})
-
- # Default menu and thumbnail mode preferences are set in
- # ShownSectionsHandler::RegisterUserPrefs.
- if pyauto.PyUITest.IsChromeOS():
- _EXPECTED_DEFAULT_THUMB_INFO = {
- u'apps': True,
- u'most_visited': False
- }
- _EXPECTED_DEFAULT_MENU_INFO = {
- u'apps': False,
- u'most_visited': True,
- u'recently_closed': True
- }
- else:
- _EXPECTED_DEFAULT_THUMB_INFO = {
- u'apps': False,
- u'most_visited': True
- }
- _EXPECTED_DEFAULT_MENU_INFO = {
- u'apps': False,
- u'most_visited': False,
- u'recently_closed': False
- }
-
- def Debug(self):
- """Test method for experimentation.
-
- This method is not run automatically.
- """
- while True:
- raw_input('Interact with the browser and hit <enter> to dump NTP info...')
- print '*' * 20
- self.pprint(self._GetNTPInfo())
-
- def __init__(self, methodName='runTest'):
- super(NTPTest, self).__init__(methodName)
-
- # Create some dummy file urls we can use in the tests.
- filenames = ['title1.html', 'title2.html']
- titles = [u'', u'Title Of Awesomeness']
- urls = map(lambda name: self.GetFileURLForDataPath(name), filenames)
- self.PAGES = map(lambda url, title: {'url': url, 'title': title},
- urls, titles)
-
- def _NTPContainsThumbnail(self, check_thumbnail):
- """Returns whether the NTP's Most Visited section contains the given
- thumbnail."""
- for thumbnail in self.GetNTPThumbnails():
- if check_thumbnail['url'] == thumbnail['url']:
- return True
- return False
-
- def testFreshProfile(self):
- """Tests that the NTP with a fresh profile is correct"""
- thumbnails = self.GetNTPThumbnails()
- default_sites = self.GetNTPDefaultSites()
- self.assertEqual(len(default_sites), len(thumbnails))
- for thumbnail, default_site in zip(thumbnails, default_sites):
- self.assertEqual(thumbnail['url'], default_site)
- self.assertEqual(0, len(self.GetNTPRecentlyClosed()))
-
- def testRemoveDefaultThumbnails(self):
- """Tests that the default thumbnails can be removed"""
- self.RemoveNTPDefaultThumbnails()
- self.assertFalse(self.GetNTPThumbnails())
- self.RestoreAllNTPThumbnails()
- self.assertEqual(len(self.GetNTPDefaultSites()),
- len(self.GetNTPThumbnails()))
- self.RemoveNTPDefaultThumbnails()
- self.assertFalse(self.GetNTPThumbnails())
-
- def testOneMostVisitedSite(self):
- """Tests that a site is added to the most visited sites"""
- self.RemoveNTPDefaultThumbnails()
- self.NavigateToURL(self.PAGES[1]['url'])
- thumbnail = self.GetNTPThumbnails()[0]
- self.assertEqual(self.PAGES[1]['url'], thumbnail['url'])
- self.assertEqual(self.PAGES[1]['title'], thumbnail['title'])
-
- def testRemoveThumbnail(self):
- """Tests removing a thumbnail works"""
- self.RemoveNTPDefaultThumbnails()
- for page in self.PAGES:
- self.AppendTab(pyauto.GURL(page['url']))
-
- thumbnails = self.GetNTPThumbnails()
- for thumbnail in thumbnails:
- self.assertEquals(thumbnail, self.GetNTPThumbnails()[0])
- self.RemoveNTPThumbnail(thumbnail)
- self.assertFalse(self._NTPContainsThumbnail(thumbnail))
- self.assertFalse(self.GetNTPThumbnails())
-
- def testIncognitoNotAppearInMostVisited(self):
- """Tests that visiting a page in incognito mode does cause it to appear in
- the Most Visited section"""
- self.RemoveNTPDefaultThumbnails()
- self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW)
- self.NavigateToURL(self.PAGES[0]['url'], 1, 0)
- self.assertFalse(self.GetNTPThumbnails())
-
- def testDifferentProfileNotAppearInMostVisited(self):
- """Tests that visiting a page in one profile does not cause it to appear in
- the Most Visited section of another."""
- self.RemoveNTPDefaultThumbnails()
- self.OpenNewBrowserWindowWithNewProfile()
- self.NavigateToURL(self.PAGES[0]['url'], 1, 0)
- self.assertFalse(self.GetNTPThumbnails())
-
- def testThumbnailPersistence(self):
- """Tests that thumbnails persist across Chrome restarts"""
- self.RemoveNTPDefaultThumbnails()
- for page in self.PAGES:
- self.AppendTab(pyauto.GURL(page['url']))
- thumbnails = self.GetNTPThumbnails()
- self.RestartBrowser(clear_profile=False)
- self.assertEqual(thumbnails, self.GetNTPThumbnails())
-
- def testRestoreAllRemovedThumbnails(self):
- """Tests restoring all removed thumbnails"""
- for page in self.PAGES:
- self.AppendTab(pyauto.GURL(page['url']))
-
- thumbnails = self.GetNTPThumbnails()
- for thumbnail in thumbnails:
- self.RemoveNTPThumbnail(thumbnail)
-
- self.RestoreAllNTPThumbnails()
- self.assertEquals(thumbnails, self.GetNTPThumbnails())
-
- def testThumbnailRanking(self):
- """Tests that the thumbnails are ordered according to visit count"""
- self.RemoveNTPDefaultThumbnails()
- for page in self.PAGES:
- self.AppendTab(pyauto.GURL(page['url']))
- thumbnails = self.GetNTPThumbnails()
- self.assertEqual(self.PAGES[0]['url'], self.GetNTPThumbnails()[0]['url'])
- self.AppendTab(pyauto.GURL(self.PAGES[1]['url']))
- self.assertEqual(self.PAGES[1]['url'], self.GetNTPThumbnails()[0]['url'])
- self.AppendTab(pyauto.GURL(self.PAGES[0]['url']))
- self.AppendTab(pyauto.GURL(self.PAGES[0]['url']))
- self.assertEqual(self.PAGES[0]['url'], self.GetNTPThumbnails()[0]['url'])
-
- def testThumbnailTitleChangeAfterPageTitleChange(self):
- """Tests that once a page title changes, the thumbnail title changes too"""
- self.RemoveNTPDefaultThumbnails()
- self.NavigateToURL(self.PAGES[0]['url'])
- self.assertEqual(self.PAGES[0]['title'],
- self.GetNTPThumbnails()[0]['title'])
- self.ExecuteJavascript('window.domAutomationController.send(' +
- 'document.title = "new title")')
- self.assertEqual('new title', self.GetNTPThumbnails()[0]['title'])
-
- def testCloseOneTab(self):
- """Tests that closing a tab populates the recently closed list"""
- self.RemoveNTPDefaultThumbnails()
- self.AppendTab(pyauto.GURL(self.PAGES[1]['url']))
- self.CloseTab(tab_index=1)
- self.assertEqual(self.PAGES[1]['url'],
- self.GetNTPRecentlyClosed()[0]['url'])
- self.assertEqual(self.PAGES[1]['title'],
- self.GetNTPRecentlyClosed()[0]['title'])
-
- def testCloseOneWindow(self):
- """Tests that closing a window populates the recently closed list"""
- self.RemoveNTPDefaultThumbnails()
- self.OpenNewBrowserWindow(True)
- self.NavigateToURL(self.PAGES[0]['url'], 1, 0)
- self.AppendTab(pyauto.GURL(self.PAGES[1]['url']), 1)
- self.CloseBrowserWindow(1)
- expected = [{ u'type': u'window',
- u'tabs': [
- { u'type': u'tab',
- u'url': self.PAGES[0]['url'],
- u'direction': u'ltr' },
- { u'type': u'tab',
- u'url': self.PAGES[1]['url']}]
- }]
- self.assertEquals(expected, test_utils.StripUnmatchedKeys(
- self.GetNTPRecentlyClosed(), expected))
-
- def testCloseMultipleTabs(self):
- """Tests closing multiple tabs populates the Recently Closed section in
- order"""
- self.RemoveNTPDefaultThumbnails()
- self.AppendTab(pyauto.GURL(self.PAGES[0]['url']))
- self.AppendTab(pyauto.GURL(self.PAGES[1]['url']))
- self.CloseTab(tab_index=2)
- self.CloseTab(tab_index=1)
- expected = [{ u'type': u'tab',
- u'url': self.PAGES[0]['url']
- },
- { u'type': u'tab',
- u'url': self.PAGES[1]['url']
- }]
- self.assertEquals(expected, test_utils.StripUnmatchedKeys(
- self.GetNTPRecentlyClosed(), expected))
-
- def testCloseWindowWithOneTab(self):
- """Tests that closing a window with only one tab only shows up as a tab in
- the Recently Closed section"""
- self.RemoveNTPDefaultThumbnails()
- self.OpenNewBrowserWindow(True)
- self.NavigateToURL(self.PAGES[0]['url'], 1, 0)
- self.CloseBrowserWindow(1)
- expected = [{ u'type': u'tab',
- u'url': self.PAGES[0]['url']
- }]
- self.assertEquals(expected, test_utils.StripUnmatchedKeys(
- self.GetNTPRecentlyClosed(), expected))
-
- def testCloseMultipleWindows(self):
- """Tests closing multiple windows populates the Recently Closed list"""
- self.RemoveNTPDefaultThumbnails()
- self.OpenNewBrowserWindow(True)
- self.NavigateToURL(self.PAGES[0]['url'], 1, 0)
- self.AppendTab(pyauto.GURL(self.PAGES[1]['url']), 1)
- self.OpenNewBrowserWindow(True)
- self.NavigateToURL(self.PAGES[1]['url'], 2, 0)
- self.AppendTab(pyauto.GURL(self.PAGES[0]['url']), 2)
- self.CloseBrowserWindow(2)
- self.CloseBrowserWindow(1)
- expected = [{ u'type': u'window',
- u'tabs': [
- { u'type': u'tab',
- u'url': self.PAGES[0]['url'],
- u'direction': u'ltr' },
- { u'type': u'tab',
- u'url': self.PAGES[1]['url']}]
- },
- { u'type': u'window',
- u'tabs': [
- { u'type': u'tab',
- u'url': self.PAGES[1]['url'],
- u'direction': u'ltr' },
- { u'type': u'tab',
- u'url': self.PAGES[0]['url']}]
- }]
- self.assertEquals(expected, test_utils.StripUnmatchedKeys(
- self.GetNTPRecentlyClosed(), expected))
-
- def testRecentlyClosedIncognito(self):
- """Tests that we don't record closure of Incognito tabs or windows"""
- #self.RemoveNTPDefaultThumbnails()
- self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW)
- self.NavigateToURL(self.PAGES[0]['url'], 1, 0)
- self.AppendTab(pyauto.GURL(self.PAGES[0]['url']), 1)
- self.AppendTab(pyauto.GURL(self.PAGES[1]['url']), 1)
- self.CloseTab(windex=1)
- self.assertFalse(self.GetNTPRecentlyClosed())
- self.CloseBrowserWindow(1)
- self.assertFalse(self.GetNTPRecentlyClosed())
-
- def _VerifyAppInfo(self, actual_info, expected_info):
- """Ensures that the actual app info contains the expected app info.
-
- This method assumes that both the actual and expected information for each
- app contains at least the 'title' attribute. Both sets of info are
- considered to match if the actual info contains at least the specified
- expected info (if the actual info contains additional values that are not
- specified in the expected info, that's ok). This function will fail the
- current test if both sets of info don't match.
-
- Args:
- actual_info: A list of dictionaries representing the information from
- all apps that would currently be displayed on the NTP.
- expected_info: A corrresponding list of dictionaries representing the
- information that is expected.
- """
- # Ensure all app info dictionaries contain at least the 'title' attribute.
- self.assertTrue(all(map(lambda app: 'title' in app, actual_info)) and
- all(map(lambda app: 'title' in app, expected_info)),
- msg='At least one app is missing the "title" attribute.')
-
- # Sort both app lists by title to ensure they're in a known order.
- actual_info = sorted(actual_info, key=lambda app: app['title'])
- expected_info = sorted(expected_info, key=lambda app: app['title'])
-
- # Ensure the expected info matches the actual info.
- self.assertTrue(len(actual_info) == len(expected_info),
- msg='Expected %d app(s) on NTP, but got %d instead.' % (
- len(expected_info), len(actual_info)))
- for i, expected_app in enumerate(expected_info):
- for attribute in expected_app:
- self.assertTrue(attribute in actual_info[i],
- msg='Expected attribute "%s" not found in app info.' % (
- attribute))
- self.assertTrue(expected_app[attribute] == actual_info[i][attribute],
- msg='For attribute "%s", expected value "%s", but got '
- '"%s".' % (attribute, expected_app[attribute],
- actual_info[i][attribute]))
-
- def _InstallAndVerifySamplePackagedApp(self):
- """Installs a sample packaged app and verifies the install is successful.
-
- Returns:
- The string ID of the installed app.
- """
- app_crx_file = os.path.abspath(os.path.join(
- self.DataDir(), 'pyauto_private', 'apps', 'countdown.crx'))
- return self.InstallExtension(app_crx_file)
-
- def testGetAppsInNewProfile(self):
- """Ensures that the only app in a new profile is the Web Store app."""
- app_info = self.GetNTPApps()
- self._VerifyAppInfo(app_info, self._EXPECTED_DEFAULT_APPS)
-
- def testGetAppsWhenInstallApp(self):
- """Ensures that an installed app is reflected in the app info in the NTP."""
- self._InstallAndVerifySamplePackagedApp()
- app_info = self.GetNTPApps()
- expected_app_info = [
- {
- u'title': u'Countdown'
- }
- ]
- expected_app_info.extend(self._EXPECTED_DEFAULT_APPS)
- self._VerifyAppInfo(app_info, expected_app_info)
-
- def testGetAppsWhenInstallNonApps(self):
- """Ensures installed non-apps are not reflected in the NTP app info."""
- # Install a regular extension and a theme.
- ext_crx_file = os.path.abspath(os.path.join(self.DataDir(), 'extensions',
- 'page_action.crx'))
- self.InstallExtension(ext_crx_file)
- theme_crx_file = os.path.abspath(os.path.join(self.DataDir(), 'extensions',
- 'theme.crx'))
- self.SetTheme(theme_crx_file)
- # Verify that no apps are listed on the NTP except for the Web Store.
- app_info = self.GetNTPApps()
- self._VerifyAppInfo(app_info, self._EXPECTED_DEFAULT_APPS)
-
- def testUninstallApp(self):
- """Ensures that an uninstalled app is reflected in the NTP app info."""
- # First, install an app and verify that it exists in the NTP app info.
- installed_app_id = self._InstallAndVerifySamplePackagedApp()
- app_info = self.GetNTPApps()
- expected_app_info = [
- {
- u'title': u'Countdown'
- }
- ]
- expected_app_info.extend(self._EXPECTED_DEFAULT_APPS)
- self._VerifyAppInfo(app_info, expected_app_info)
-
- # Next, uninstall the app and verify that it is removed from the NTP.
- self.assertTrue(self.UninstallExtensionById(installed_app_id),
- msg='Call to UninstallExtensionById() returned False.')
- app_info = self.GetNTPApps()
- self._VerifyAppInfo(app_info, self._EXPECTED_DEFAULT_APPS)
-
- def testCannotUninstallWebStore(self):
- """Ensures that the WebStore app cannot be uninstalled."""
- # Verify that the WebStore app is already installed in a fresh profile.
- app_info = self.GetNTPApps()
- self._VerifyAppInfo(app_info, self._EXPECTED_DEFAULT_APPS)
- self.assertTrue(app_info and 'id' in app_info[0],
- msg='Cannot identify ID of WebStore app.')
- webstore_id = app_info[0]['id']
-
- # Attempt to uninstall the WebStore app and verify that it still exists
- # in the App info of the NTP even after we try to uninstall it.
- self.assertFalse(self.UninstallExtensionById(webstore_id),
- msg='Call to UninstallExtensionById() returned True.')
- self._VerifyAppInfo(self.GetNTPApps(), self._EXPECTED_DEFAULT_APPS)
-
- def testLaunchAppWithDefaultSettings(self):
- """Verifies that an app can be launched with the default settings."""
- # Install an app.
- installed_app_id = self._InstallAndVerifySamplePackagedApp()
-
- # Launch the app from the NTP.
- self.LaunchApp(installed_app_id)
-
- # Verify that the second tab in the first window is the app launch URL.
- # It should be the second tab, not the first, since the call to LaunchApp
- # should have first opened the NTP in a new tab, and then launched the app
- # from there.
- info = self.GetBrowserInfo()
- actual_tab_url = info['windows'][0]['tabs'][1]['url']
- expected_app_url_start = 'chrome-extension://' + installed_app_id
- self.assertTrue(actual_tab_url.startswith(expected_app_url_start),
- msg='The app was not launched.')
-
- def testLaunchAppRegularTab(self):
- """Verifies that an app can be launched in a regular tab."""
- installed_app_id = self._InstallAndVerifySamplePackagedApp()
-
- self.SetAppLaunchType(installed_app_id, 'regular', windex=0)
- self.LaunchApp(installed_app_id)
-
- # Verify that the second tab in the first window is the app launch URL.
- info = self.GetBrowserInfo()
- actual_tab_url = info['windows'][0]['tabs'][1]['url']
- expected_app_url_start = 'chrome-extension://' + installed_app_id
- self.assertTrue(actual_tab_url.startswith(expected_app_url_start),
- msg='The app was not launched in a regular tab.')
-
- def testLaunchAppPinnedTab(self):
- """Verifies that an app can be launched in a pinned tab."""
- installed_app_id = self._InstallAndVerifySamplePackagedApp()
-
- self.SetAppLaunchType(installed_app_id, 'pinned', windex=0)
- self.LaunchApp(installed_app_id)
-
- # Verify that the first tab in the first window is the app launch URL, and
- # that it is a pinned tab.
- info = self.GetBrowserInfo()
- actual_tab_url = info['windows'][0]['tabs'][0]['url']
- expected_app_url_start = 'chrome-extension://' + installed_app_id
- self.assertTrue(actual_tab_url.startswith(expected_app_url_start) and
- info['windows'][0]['tabs'][0]['pinned'],
- msg='The app was not launched in a pinned tab.')
-
- def testLaunchAppFullScreen(self):
- """Verifies that an app can be launched in fullscreen mode."""
- installed_app_id = self._InstallAndVerifySamplePackagedApp()
-
- self.SetAppLaunchType(installed_app_id, 'fullscreen', windex=0)
- self.LaunchApp(installed_app_id)
-
- # Verify that the second tab in the first window is the app launch URL, and
- # that the window is fullscreen.
- info = self.GetBrowserInfo()
- actual_tab_url = info['windows'][0]['tabs'][1]['url']
- expected_app_url_start = 'chrome-extension://' + installed_app_id
- self.assertTrue(actual_tab_url.startswith(expected_app_url_start) and
- info['windows'][0]['fullscreen'],
- msg='The app was not launched in fullscreen mode.')
-
- def testLaunchAppNewWindow(self):
- """Verifies that an app can be launched in a new window."""
- installed_app_id = self._InstallAndVerifySamplePackagedApp()
-
- self.SetAppLaunchType(installed_app_id, 'window', windex=0)
- self.LaunchApp(installed_app_id)
-
- # Verify that a second window exists (at index 1), and that its first tab
- # is the app launch URL.
- info = self.GetBrowserInfo()
- self.assertTrue(len(info['windows']) == 2,
- msg='A second window does not exist.')
- actual_tab_url = info['windows'][1]['tabs'][0]['url']
- expected_app_url_start = 'chrome-extension://' + installed_app_id
- self.assertTrue(actual_tab_url.startswith(expected_app_url_start),
- msg='The app was not launched in the new window.')
-
-if __name__ == '__main__':
- pyauto_functional.Main()
« no previous file with comments | « chrome/test/functional/netflix.py ('k') | chrome/test/functional/omnibox.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698