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)) |
- |