| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 | 2 |
| 3 # Copyright (c) 2010 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
| 5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
| 6 | 6 |
| 7 """PyAuto: Python Interface to Chromium's Automation Proxy. | 7 """PyAuto: Python Interface to Chromium's Automation Proxy. |
| 8 | 8 |
| 9 PyAuto uses swig to expose Automation Proxy interfaces to Python. | 9 PyAuto uses swig to expose Automation Proxy interfaces to Python. |
| 10 For complete documentation on the functionality available, | 10 For complete documentation on the functionality available, |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 print >>sys.stderr, "Could not locate built libraries. Did you build?" | 73 print >>sys.stderr, "Could not locate built libraries. Did you build?" |
| 74 # Mac requires python2.5 even when not the default 'python' (e.g. 10.6) | 74 # Mac requires python2.5 even when not the default 'python' (e.g. 10.6) |
| 75 if 'darwin' == sys.platform and sys.version_info[:2] != (2,5): | 75 if 'darwin' == sys.platform and sys.version_info[:2] != (2,5): |
| 76 print >>sys.stderr, "*\n* Perhaps use 'python2.5', not 'python' ?\n*" | 76 print >>sys.stderr, "*\n* Perhaps use 'python2.5', not 'python' ?\n*" |
| 77 raise | 77 raise |
| 78 | 78 |
| 79 # Should go after sys.path is set appropriately | 79 # Should go after sys.path is set appropriately |
| 80 import bookmark_model | 80 import bookmark_model |
| 81 import download_info | 81 import download_info |
| 82 import history_info | 82 import history_info |
| 83 import ntp_model |
| 83 import omnibox_info | 84 import omnibox_info |
| 84 import plugins_info | 85 import plugins_info |
| 85 import prefs_info | 86 import prefs_info |
| 86 from pyauto_errors import JSONInterfaceError | 87 from pyauto_errors import JSONInterfaceError |
| 87 import simplejson as json # found in third_party | 88 import simplejson as json # found in third_party |
| 88 | 89 |
| 89 | 90 |
| 90 class PyUITest(pyautolib.PyUITestBase, unittest.TestCase): | 91 class PyUITest(pyautolib.PyUITestBase, unittest.TestCase): |
| 91 """Base class for UI Test Cases in Python. | 92 """Base class for UI Test Cases in Python. |
| 92 | 93 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 # Don't quote the ':' in drive letter ( say, C: ) on win. | 180 # Don't quote the ':' in drive letter ( say, C: ) on win. |
| 180 # Also, replace '\' with '/' as expected in a file:/// url. | 181 # Also, replace '\' with '/' as expected in a file:/// url. |
| 181 drive, rest = os.path.splitdrive(abs_path) | 182 drive, rest = os.path.splitdrive(abs_path) |
| 182 quoted_path = drive.upper() + urllib.quote((rest.replace('\\', '/'))) | 183 quoted_path = drive.upper() + urllib.quote((rest.replace('\\', '/'))) |
| 183 return 'file:///' + quoted_path | 184 return 'file:///' + quoted_path |
| 184 else: | 185 else: |
| 185 quoted_path = urllib.quote(abs_path) | 186 quoted_path = urllib.quote(abs_path) |
| 186 return 'file://' + quoted_path | 187 return 'file://' + quoted_path |
| 187 | 188 |
| 188 @staticmethod | 189 @staticmethod |
| 190 def GetFileURLForDataPath(relative_path): |
| 191 """Get file:// url for the given path relative to the chrome test data dir. |
| 192 |
| 193 Also quotes the url using urllib.quote(). |
| 194 """ |
| 195 return PyUITest.GetFileURLForPath( |
| 196 os.path.join(PyUITest.DataDir(), relative_path)) |
| 197 |
| 198 @staticmethod |
| 189 def IsMac(): | 199 def IsMac(): |
| 190 """Are we on Mac?""" | 200 """Are we on Mac?""" |
| 191 return 'darwin' == sys.platform | 201 return 'darwin' == sys.platform |
| 192 | 202 |
| 193 @staticmethod | 203 @staticmethod |
| 194 def IsLinux(): | 204 def IsLinux(): |
| 195 """Are we on Linux? ChromeOS is linux too.""" | 205 """Are we on Linux? ChromeOS is linux too.""" |
| 196 return 'linux2' == sys.platform | 206 return 'linux2' == sys.platform |
| 197 | 207 |
| 198 @staticmethod | 208 @staticmethod |
| (...skipping 1177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1376 u'tints': {u'buttons': [0.33000000000000002, 0.5, 0.46999999999999997]}} | 1386 u'tints': {u'buttons': [0.33000000000000002, 0.5, 0.46999999999999997]}} |
| 1377 | 1387 |
| 1378 Raises: | 1388 Raises: |
| 1379 pyauto_errors.JSONInterfaceError if the automation call returns an error. | 1389 pyauto_errors.JSONInterfaceError if the automation call returns an error. |
| 1380 """ | 1390 """ |
| 1381 cmd_dict = { | 1391 cmd_dict = { |
| 1382 'command': 'GetThemeInfo', | 1392 'command': 'GetThemeInfo', |
| 1383 } | 1393 } |
| 1384 return self._GetResultFromJSONRequest(cmd_dict) | 1394 return self._GetResultFromJSONRequest(cmd_dict) |
| 1385 | 1395 |
| 1396 def GetNTPModel(self): |
| 1397 """Returns the NTPModel.""" |
| 1398 return ntp_model.NTPModel(self) |
| 1386 | 1399 |
| 1387 class PyUITestSuite(pyautolib.PyUITestSuiteBase, unittest.TestSuite): | 1400 class PyUITestSuite(pyautolib.PyUITestSuiteBase, unittest.TestSuite): |
| 1388 """Base TestSuite for PyAuto UI tests.""" | 1401 """Base TestSuite for PyAuto UI tests.""" |
| 1389 | 1402 |
| 1390 def __init__(self, args): | 1403 def __init__(self, args): |
| 1391 pyautolib.PyUITestSuiteBase.__init__(self, args) | 1404 pyautolib.PyUITestSuiteBase.__init__(self, args) |
| 1392 | 1405 |
| 1393 # Figure out path to chromium binaries | 1406 # Figure out path to chromium binaries |
| 1394 browser_dir = os.path.normpath(os.path.dirname(pyautolib.__file__)) | 1407 browser_dir = os.path.normpath(os.path.dirname(pyautolib.__file__)) |
| 1395 logging.debug('Loading pyauto libs from %s', browser_dir) | 1408 logging.debug('Loading pyauto libs from %s', browser_dir) |
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1685 if self._options.verbose: | 1698 if self._options.verbose: |
| 1686 verbosity = 2 | 1699 verbosity = 2 |
| 1687 result = PyAutoTextTestRuner(verbosity=verbosity).run(pyauto_suite) | 1700 result = PyAutoTextTestRuner(verbosity=verbosity).run(pyauto_suite) |
| 1688 del loaded_tests # Need to destroy test cases before the suite | 1701 del loaded_tests # Need to destroy test cases before the suite |
| 1689 del pyauto_suite | 1702 del pyauto_suite |
| 1690 sys.exit(not result.wasSuccessful()) | 1703 sys.exit(not result.wasSuccessful()) |
| 1691 | 1704 |
| 1692 | 1705 |
| 1693 if __name__ == '__main__': | 1706 if __name__ == '__main__': |
| 1694 Main() | 1707 Main() |
| OLD | NEW |