| Index: telemetry/telemetry/testing/serially_executed_browser_test_case.py
|
| diff --git a/telemetry/telemetry/testing/serially_executed_browser_test_case.py b/telemetry/telemetry/testing/serially_executed_browser_test_case.py
|
| index 779d42f18701d635c62233d3f9958b716bce648c..4799a96b3d81b9b2f839fc0ee2220ee3a3f0cec0 100644
|
| --- a/telemetry/telemetry/testing/serially_executed_browser_test_case.py
|
| +++ b/telemetry/telemetry/testing/serially_executed_browser_test_case.py
|
| @@ -4,11 +4,21 @@
|
|
|
| import unittest
|
|
|
| +from catapult_base import cloud_storage
|
| from telemetry.internal.browser import browser_finder
|
| from telemetry.testing import options_for_unittests
|
| +from telemetry.util import wpr_modes
|
|
|
|
|
| -class SeriallyBrowserTestCase(unittest.TestCase):
|
| +class SeriallyExecutedBrowserTestCase(unittest.TestCase):
|
| + def __init__(self, methodName):
|
| + super(SeriallyExecutedBrowserTestCase, self).__init__(methodName)
|
| + self._private_methodname = methodName
|
| +
|
| + def shortName(self):
|
| + """Returns the method name this test runs, without the package prefix."""
|
| + return self._private_methodname
|
| +
|
| @classmethod
|
| def Name(cls):
|
| return cls.__name__
|
| @@ -20,31 +30,63 @@ class SeriallyBrowserTestCase(unittest.TestCase):
|
| @classmethod
|
| def setUpClass(cls):
|
| cls._finder_options = options_for_unittests.GetCopy()
|
| - cls._platform = None
|
| - cls._browser = None
|
| cls.platform = None
|
| cls.browser = None
|
| + cls._browser_to_create = None
|
| + cls._browser_options = None
|
|
|
| @classmethod
|
| - def StartBrowser(cls, options):
|
| - assert not cls.browser, 'Browser is started. Must close it first'
|
| - browser_to_create = browser_finder.FindBrowser(options)
|
| - cls.browser = browser_to_create.Create(options)
|
| - cls._browser = cls.browser
|
| + def SetBrowserOptions(cls, browser_options):
|
| + """Sets the browser option for the browser to create.
|
| +
|
| + Args:
|
| + browser_options: Browser options object for the browser we want to test.
|
| + """
|
| + cls._browser_options = browser_options
|
| + cls._browser_to_create = browser_finder.FindBrowser(browser_options)
|
| if not cls.platform:
|
| - cls.platform = cls.browser.platform
|
| - cls._platform = cls.platform
|
| + cls.platform = cls._browser_to_create.platform
|
| else:
|
| - assert cls.platform == cls.browser.platform, (
|
| + assert cls.platform == cls._browser_to_create.platform, (
|
| 'All browser launches within same test suite must use browsers on '
|
| 'the same platform')
|
|
|
| @classmethod
|
| + def StartWPRServer(cls, archive_path=None, archive_bucket=None):
|
| + """Start a webpage replay server.
|
| +
|
| + Args:
|
| + archive_path: Path to the WPR file. If there is a corresponding sha1 file,
|
| + this archive will be automatically downloaded from Google Storage.
|
| + archive_bucket: The bucket to look for the WPR archive.
|
| + """
|
| + assert cls._browser_options, (
|
| + 'Browser options must be set with |SetBrowserOptions| prior to '
|
| + 'starting WPR')
|
| + assert not cls.browser, 'WPR must be started prior to browser being started'
|
| +
|
| + cloud_storage.GetIfChanged(archive_path, archive_bucket)
|
| + cls.platform.network_controller.Open(wpr_modes.WPR_REPLAY, [])
|
| + cls.platform.network_controller.StartReplay(archive_path=archive_path)
|
| +
|
| + @classmethod
|
| + def StopWPRServer(cls):
|
| + cls.platform.network_controller.StopReplay()
|
| +
|
| + @classmethod
|
| + def StartBrowser(cls):
|
| + assert cls._browser_options, (
|
| + 'Browser options must be set with |SetBrowserOptions| prior to '
|
| + 'starting WPR')
|
| + assert not cls.browser, 'Browser is started. Must close it first'
|
| +
|
| + cls.browser = cls._browser_to_create.Create(cls._browser_options)
|
| +
|
| + @classmethod
|
| def StopBrowser(cls):
|
| assert cls.browser, 'Browser is not started'
|
| cls.browser.Close()
|
| cls.browser = None
|
| - cls._browser = None
|
|
|
| @classmethod
|
| def tearDownClass(cls):
|
|
|