| OLD | NEW |
| (Empty) |
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
| 2 # Use of this source code is governed by a BSD-style license that can be | |
| 3 # found in the LICENSE file. | |
| 4 import unittest | |
| 5 | |
| 6 from telemetry.core import browser_options | |
| 7 from telemetry.core.chrome import android_browser_finder | |
| 8 from telemetry.test import system_stub | |
| 9 | |
| 10 class LoggingStub(object): | |
| 11 def __init__(self): | |
| 12 self.warnings = [] | |
| 13 | |
| 14 def info(self, msg, *args): | |
| 15 pass | |
| 16 | |
| 17 def warn(self, msg, *args): | |
| 18 self.warnings.append(msg % args) | |
| 19 | |
| 20 class AndroidBrowserFinderTest(unittest.TestCase): | |
| 21 def setUp(self): | |
| 22 self._stubs = system_stub.Override(android_browser_finder, | |
| 23 ['adb_commands', 'subprocess']) | |
| 24 | |
| 25 def tearDown(self): | |
| 26 self._stubs.Restore() | |
| 27 | |
| 28 def test_no_adb(self): | |
| 29 options = browser_options.BrowserOptions() | |
| 30 | |
| 31 def NoAdb(*args, **kargs): # pylint: disable=W0613 | |
| 32 raise OSError('not found') | |
| 33 self._stubs.subprocess.Popen = NoAdb | |
| 34 browsers = android_browser_finder.FindAllAvailableBrowsers(options) | |
| 35 self.assertEquals(0, len(browsers)) | |
| 36 | |
| 37 def test_adb_no_devices(self): | |
| 38 options = browser_options.BrowserOptions() | |
| 39 | |
| 40 browsers = android_browser_finder.FindAllAvailableBrowsers(options) | |
| 41 self.assertEquals(0, len(browsers)) | |
| 42 | |
| 43 | |
| 44 def test_adb_permissions_error(self): | |
| 45 options = browser_options.BrowserOptions() | |
| 46 | |
| 47 self._stubs.subprocess.Popen.communicate_result = ( | |
| 48 """List of devices attached | |
| 49 ????????????\tno permissions""", | |
| 50 """* daemon not running. starting it now on port 5037 * | |
| 51 * daemon started successfully * | |
| 52 """) | |
| 53 | |
| 54 log_stub = LoggingStub() | |
| 55 browsers = android_browser_finder.FindAllAvailableBrowsers( | |
| 56 options, log_stub) | |
| 57 self.assertEquals(3, len(log_stub.warnings)) | |
| 58 self.assertEquals(0, len(browsers)) | |
| 59 | |
| 60 | |
| 61 def test_adb_two_devices(self): | |
| 62 options = browser_options.BrowserOptions() | |
| 63 | |
| 64 self._stubs.adb_commands.attached_devices = ['015d14fec128220c', | |
| 65 '015d14fec128220d'] | |
| 66 | |
| 67 log_stub = LoggingStub() | |
| 68 browsers = android_browser_finder.FindAllAvailableBrowsers( | |
| 69 options, log_stub) | |
| 70 self.assertEquals(1, len(log_stub.warnings)) | |
| 71 self.assertEquals(0, len(browsers)) | |
| 72 | |
| 73 def test_adb_one_device(self): | |
| 74 options = browser_options.BrowserOptions() | |
| 75 | |
| 76 self._stubs.adb_commands.attached_devices = ['015d14fec128220c'] | |
| 77 | |
| 78 def OnPM(args): | |
| 79 assert args[0] == 'pm' | |
| 80 assert args[1] == 'list' | |
| 81 assert args[2] == 'packages' | |
| 82 return ['package:org.chromium.content_shell_apk', | |
| 83 'package.com.google.android.setupwizard'] | |
| 84 | |
| 85 self._stubs.adb_commands.shell_command_handlers['pm'] = OnPM | |
| 86 | |
| 87 browsers = android_browser_finder.FindAllAvailableBrowsers(options) | |
| 88 self.assertEquals(1, len(browsers)) | |
| OLD | NEW |