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

Unified Diff: chrome/test/functional/gtalk/gtalk_base_test.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/gpu.py ('k') | chrome/test/functional/gtalk/jsutils.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/functional/gtalk/gtalk_base_test.py
===================================================================
--- chrome/test/functional/gtalk/gtalk_base_test.py (revision 261231)
+++ chrome/test/functional/gtalk/gtalk_base_test.py (working copy)
@@ -1,348 +0,0 @@
-# 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.
-
-"""Base GTalk tests.
-
-This module contains a set of common utilities for querying
-and manipulating the Google Talk Chrome Extension.
-"""
-
-import logging
-import re
-import os
-
-import pyauto_gtalk
-import pyauto
-import pyauto_errors
-
-
-class GTalkBaseTest(pyauto.PyUITest):
- """Base test class for testing GTalk."""
-
- _injected_js = None
-
- def Prompt(self, text):
- """Pause execution with debug output.
-
- Args:
- text: The debug output.
- """
- text = str(text)
- raw_input('--------------------> ' + text)
-
- def InstallGTalkExtension(self, gtalk_version):
- """Download and install the GTalk extension."""
- extension_path = os.path.abspath(
- os.path.join(self.DataDir(), 'extensions', 'gtalk',
- gtalk_version + '.crx'))
- self.assertTrue(
- os.path.exists(extension_path),
- msg='Failed to find GTalk extension: ' + extension_path)
-
- extension = self.GetGTalkExtensionInfo()
- if extension:
- logging.info('Extension already installed. Skipping install...\n')
- return
-
- self.InstallExtension(extension_path, False)
- extension = self.GetGTalkExtensionInfo()
- self.assertTrue(extension, msg='Failed to install GTalk extension.')
- self.assertTrue(extension['is_enabled'], msg='GTalk extension is disabled.')
-
- def UninstallGTalkExtension(self):
- """Uninstall the GTalk extension (if present)"""
- extension = self.GetGTalkExtensionInfo()
- if extension:
- self.UninstallExtensionById(extension['id'])
-
- def GetGTalkExtensionInfo(self):
- """Get the data object about the GTalk extension."""
- extensions = [x for x in self.GetExtensionsInfo()
- if x['name'] == 'Chat for Google']
- return extensions[0] if len(extensions) == 1 else None
-
- def RunInMole(self, js, mole_index=0):
- """Execute javascript in a chat mole.
-
- Args:
- js: The javascript to run.
- mole_index: The index of the mole in which to run the JS.
-
- Returns:
- The resulting value from executing the javascript.
- """
- return self._RunInRenderView(self.GetMoleInfo(mole_index), js,
- '//iframe[1]')
-
- def RunInAllMoles(self, js):
- """Execute javascript in all chat moles.
-
- Args:
- js: The javascript to run.
- """
- moles = self.GetMolesInfo()
- for mole in moles:
- self._RunInRenderView(mole, js, '//iframe[1]')
-
- def RunInRoster(self, js):
- """Execute javascript in the chat roster.
-
- Args:
- js: The javascript to run.
-
- Returns:
- The resulting value from executing the javascript.
- """
- return self._RunInRenderView(self.GetViewerInfo(), js,
- '//iframe[1]\n//iframe[1]')
-
- def RunInLoginPage(self, js, xpath=''):
- """Execute javascript in the gaia login popup.
-
- Args:
- js: The javascript to run.
- xpath: The xpath to the frame in which to execute the javascript.
-
- Returns:
- The resulting value from executing the javascript.
- """
- return self._RunInTab(self.GetLoginPageInfo(), js, xpath)
-
- def RunInViewer(self, js, xpath=''):
- """Execute javascript in the GTalk viewer window.
-
- Args:
- js: The javascript to run.
- xpath: The xpath to the frame in which to execute the javascript.
-
- Returns:
- The resulting value from executing the javascript.
- """
- return self._RunInRenderView(self.GetViewerInfo(), js, xpath)
-
- def RunInBackground(self, js, xpath=''):
- """Execute javascript in the GTalk viewer window.
-
- Args:
- js: The javascript to run.
- xpath: The xpath to the frame in which to execute the javascript.
-
- Returns:
- The resulting value from executing the javascript.
- """
- background_view = self.GetBackgroundInfo()
- return self._RunInRenderView(background_view['view'], js, xpath)
-
- def GetMoleInfo(self, mole_index=0):
- """Get the data object about a given chat mole.
-
- Args:
- mole_index: The index of the mole to retrieve.
-
- Returns:
- Data object describing mole.
- """
- extension = self.GetGTalkExtensionInfo()
- return self._GetExtensionViewInfo(
- 'chrome-extension://%s/panel.html' % extension['id'],
- mole_index)
-
- def GetMolesInfo(self):
- """Get the data objects for all of the chat moles.
-
- Returns:
- Set of data objects describing moles.
- """
- extension = self.GetGTalkExtensionInfo()
- return self._GetMatchingExtensionViews(
- 'chrome-extension://%s/panel.html' % extension['id'])
-
- def GetViewerInfo(self):
- """Get the data object about the GTalk viewer dialog."""
- extension = self.GetGTalkExtensionInfo()
- return self._GetExtensionViewInfo(
- 'chrome-extension://%s/viewer.html' % extension['id'])
-
- def GetLoginPageInfo(self):
- """Get the data object about the gaia login popup."""
- return self._GetTabInfo('https://accounts.google.com/ServiceLogin?')
-
- def GetBackgroundInfo(self):
- """Get the data object about the GTalk background page."""
- extension_views = self.GetBrowserInfo()['extension_views']
- for extension_view in extension_views:
- if 'Google Talk' in extension_view['name'] and \
- 'EXTENSION_BACKGROUND_PAGE' == extension_view['view_type']:
- return extension_view
- return None
-
- def WaitUntilResult(self, result, func, msg):
- """Loop func until a condition matches is satified.
-
- Args:
- result: Value of func() at which to stop.
- func: Function to run at each iteration.
- msg: Error to print upon timing out.
- """
- assert callable(func)
- self.assertTrue(self.WaitUntil(
- lambda: func(), expect_retval=result), msg=msg)
-
- def WaitUntilCondition(self, func, matches, msg):
- """Loop func until condition matches is satified.
-
- Args:
- func: Function to run at each iteration.
- matches: Funtion to evalute output and determine whether to stop.
- msg: Error to print upon timing out.
- """
- assert callable(func)
- assert callable(matches)
- self.assertTrue(self.WaitUntil(
- lambda: matches(func())), msg=msg)
-
- def _WrapJs(self, statement):
- """Wrap the javascript to be executed.
-
- Args:
- statement: The piece of javascript to wrap.
-
- Returns:
- The wrapped javascript.
- """
- return """
- window.domAutomationController.send(
- (function(){
- %s
- try{return %s}
- catch(e){return "JS_ERROR: " + e}})())
- """ % (self._GetInjectedJs(), statement)
-
- def _RunInTab(self, tab, js, xpath=''):
- """Execute javascript in a given tab.
-
- Args:
- tab: The data object for the Chrome window tab returned by
- _GetTabInfo.
- js: The javascript to run.
- xpath: The xpath to the frame in which to execute the javascript.
-
- Returns:
- The resulting value from executing the javascript.
- """
- if not tab:
- logging.debug('Tab not found: %s' % tab)
- return False
- logging.info('Run in tab: %s' % js)
-
- value = self.ExecuteJavascript(
- self._WrapJs(js),
- tab_index = tab['index'],
- windex = tab['windex'],
- frame_xpath = xpath)
- self._LogRun(js, value)
- return value
-
- def _RunInRenderView(self, view, js, xpath=''):
- """Execute javascript in a given render view.
-
- Args:
- view: The data object for the Chrome render view returned by
- _GetExtensionViewInfo.
- js: The javascript to run.
- xpath: The xpath to the frame in which to execute the javascript.
-
- Returns:
- The resulting value from executing the javascript.
- """
- if not view:
- logging.debug('View not found: %s' % view)
- return False
- logging.info('Run in view: %s' % js)
-
- value = self.ExecuteJavascriptInRenderView(
- self._WrapJs(js),
- view,
- frame_xpath = xpath)
- self._LogRun(js, value)
- return value
-
- def _LogRun(self, js, value):
- """Log a particular run.
-
- Args:
- js: The javascript statement executed.
- value: The return value for the execution.
- """
- # works around UnicodeEncodeError: 'ascii' codec can't encode...
- out = value
- if not isinstance(value, basestring):
- out = str(value)
- out = re.sub('\s', ';', out[:300])
- logging.info(js + ' ===> ' + out.encode('utf-8'))
-
- def _GetTabInfo(self, url_query, index=0):
- """Get the data object for a given tab.
-
- Args:
- url_query: The substring of the URL to search for.
- index: The index within the list of matches to return.
-
- Returns:
- The data object for the tab.
- """
- windows = self.GetBrowserInfo()['windows']
- i = 0
- for win in windows:
- for tab in win['tabs']:
- if tab['url'] and url_query in tab['url']:
- # Store reference to windex used in _RunInTab.
- tab['windex'] = win['index']
- if i == index:
- return tab
- i = i + 1
- return None
-
- def _GetExtensionViewInfo(self, url_query, index=0):
- """Get the data object for a given extension view.
-
- Args:
- url_query: The substring of the URL to search for.
- index: The index within the list of matches to return.
-
- Returns:
- The data object for the tab.
- """
-
- candidate_views = self._GetMatchingExtensionViews(url_query)
- if len(candidate_views) > index:
- return candidate_views[index]
- return None
-
- def _GetMatchingExtensionViews(self, url_query):
- """Gets the data objects for the extension views matching the url_query.
-
- Args:
- url_query: The substring of the URL to search for.
-
- Returns:
- An array of matching data objects.
- """
- extension_views = self.GetBrowserInfo()['extension_views']
- candidate_views = list()
- for extension_view in extension_views:
- if extension_view['url'] and url_query in extension_view['url']:
- candidate_views.append(extension_view['view'])
-
- # No guarantee on view order, so sort the views to get the correct one for
- # a given index.
- candidate_views.sort()
- return candidate_views
-
- def _GetInjectedJs(self):
- """Get the javascript to inject in the execution environment."""
- if self._injected_js is None:
- self._injected_js = open(
- os.path.join(os.path.dirname(__file__), 'jsutils.js')).read()
- return self._injected_js
« no previous file with comments | « chrome/test/functional/gpu.py ('k') | chrome/test/functional/gtalk/jsutils.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698