| Index: tools/telemetry/telemetry/core/backends/chrome/android_browser_finder_unittest.py
|
| diff --git a/tools/telemetry/telemetry/core/backends/chrome/android_browser_finder_unittest.py b/tools/telemetry/telemetry/core/backends/chrome/android_browser_finder_unittest.py
|
| index 39d71201a0aaa0902e9739ccbc39372de4186b81..98b84da2124815dab7a037d0ea5a18dd61728f50 100644
|
| --- a/tools/telemetry/telemetry/core/backends/chrome/android_browser_finder_unittest.py
|
| +++ b/tools/telemetry/telemetry/core/backends/chrome/android_browser_finder_unittest.py
|
| @@ -4,92 +4,38 @@
|
|
|
| import unittest
|
|
|
| -from telemetry import benchmark
|
| from telemetry.core import browser_options
|
| -from telemetry.core.platform import android_device
|
| -from telemetry.core.platform import android_platform_backend
|
| from telemetry.core.backends.chrome import android_browser_finder
|
| -from telemetry.unittest_util import system_stub
|
| +
|
| +
|
| +class FakeAndroidPlatform():
|
| + def __init__(self, can_launch):
|
| + self._platform_backend = None
|
| + self._unittest_can_launch = can_launch
|
| +
|
| + def CanLaunchApplication(self, _):
|
| + return self._unittest_can_launch
|
|
|
|
|
| class AndroidBrowserFinderTest(unittest.TestCase):
|
| def setUp(self):
|
| - self._stubs = system_stub.Override(android_browser_finder,
|
| - ['adb_commands', 'os', 'subprocess',
|
| - 'logging'])
|
| - self._android_device_stub = system_stub.Override(
|
| - android_device, ['adb_commands'])
|
| - self._apb_stub = system_stub.Override(
|
| - android_platform_backend, ['adb_commands'])
|
| - self._actual_ps_util = android_browser_finder.psutil
|
| - android_browser_finder.psutil = None
|
| -
|
| - def tearDown(self):
|
| - self._stubs.Restore()
|
| - self._android_device_stub.Restore()
|
| - self._apb_stub.Restore()
|
| - android_browser_finder.psutil = self._actual_ps_util
|
| -
|
| - def test_no_adb(self):
|
| - finder_options = browser_options.BrowserFinderOptions()
|
| -
|
| - def NoAdb(*args, **kargs): # pylint: disable=W0613
|
| - raise OSError('not found')
|
| - self._stubs.subprocess.Popen = NoAdb
|
| - browsers = android_browser_finder.FindAllAvailableBrowsers(finder_options)
|
| - self.assertEquals(0, len(browsers))
|
| -
|
| - def test_adb_no_devices(self):
|
| - finder_options = browser_options.BrowserFinderOptions()
|
| -
|
| - browsers = android_browser_finder.FindAllAvailableBrowsers(finder_options)
|
| - self.assertEquals(0, len(browsers))
|
| -
|
| - def test_adb_permissions_error(self):
|
| - finder_options = browser_options.BrowserFinderOptions()
|
| -
|
| - self._stubs.subprocess.Popen.communicate_result = (
|
| - """List of devices attached
|
| -????????????\tno permissions""",
|
| - """* daemon not running. starting it now on port 5037 *
|
| -* daemon started successfully *
|
| -""")
|
| - browsers = android_browser_finder.FindAllAvailableBrowsers(finder_options)
|
| - self.assertEquals(3, len(self._stubs.logging.warnings))
|
| - self.assertEquals(0, len(browsers))
|
| -
|
| - def test_adb_two_devices(self):
|
| - finder_options = browser_options.BrowserFinderOptions()
|
| -
|
| - self._android_device_stub.adb_commands.attached_devices = [
|
| - '015d14fec128220c', '015d14fec128220d']
|
| -
|
| - browsers = android_browser_finder.FindAllAvailableBrowsers(finder_options)
|
| - self.assertEquals(1, len(self._stubs.logging.warnings))
|
| - self.assertEquals(0, len(browsers))
|
| -
|
| - @benchmark.Disabled('chromeos')
|
| - def test_adb_one_device(self):
|
| - finder_options = browser_options.BrowserFinderOptions()
|
| -
|
| - self._android_device_stub.adb_commands.attached_devices = (
|
| - ['015d14fec128220c'])
|
| -
|
| - def OnPM(args):
|
| - assert args[0] == 'pm'
|
| - assert args[1] == 'list'
|
| - assert args[2] == 'packages'
|
| - return ['package:org.chromium.content_shell_apk',
|
| - 'package.com.google.android.setupwizard']
|
| -
|
| - def OnLs(_):
|
| - return ['/sys/devices/system/cpu/cpu0']
|
| -
|
| - self._apb_stub.adb_commands.adb_device.shell_command_handlers['pm'] = OnPM
|
| - self._apb_stub.adb_commands.adb_device.shell_command_handlers['ls'] = OnLs
|
| -
|
| - browsers = android_browser_finder.FindAllAvailableBrowsers(finder_options)
|
| - self.assertEquals(1, len(browsers))
|
| + self.finder_options = browser_options.BrowserFinderOptions()
|
| +
|
| + def testNoPlatformReturnsEmptyList(self):
|
| + fake_platform = None
|
| + possible_browsers = android_browser_finder._FindAllPossibleBrowsers(
|
| + self.finder_options, fake_platform)
|
| + self.assertEqual([], possible_browsers)
|
| +
|
| + def testCanLaunchAlwaysTrueReturnsAll(self):
|
| + fake_platform = FakeAndroidPlatform(can_launch=True)
|
| + expected_types = set(
|
| + android_browser_finder.FindAllBrowserTypes(self.finder_options))
|
| + possible_browsers = android_browser_finder._FindAllPossibleBrowsers(
|
| + self.finder_options, fake_platform)
|
| + self.assertEqual(
|
| + expected_types,
|
| + set([b.browser_type for b in possible_browsers]))
|
|
|
|
|
| class FakePossibleBrowser(object):
|
| @@ -119,4 +65,3 @@ class SelectDefaultBrowserTest(unittest.TestCase):
|
| self.assertIs(
|
| possible_browsers[1],
|
| android_browser_finder.SelectDefaultBrowser(possible_browsers))
|
| -
|
|
|