OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 import logging | 4 import logging |
5 import unittest | 5 import unittest |
6 | 6 |
7 from chrome_remote_control import android_browser_finder | 7 from chrome_remote_control import android_browser_finder |
8 from chrome_remote_control import browser_options | 8 from chrome_remote_control import browser_options |
9 | 9 from chrome_remote_control.system_stub import PopenStub |
10 from system_stub import * | 10 from chrome_remote_control.system_stub import SubprocessModuleStub |
11 | 11 |
12 # adb not even found | 12 # adb not even found |
13 # android_browser_finder not returning | 13 # android_browser_finder not returning |
14 class ADBCommandsStub(object): | 14 class ADBCommandsStub(object): |
15 def __init__(self, module, device): | 15 def __init__(self, module, device): |
16 self._module = module | 16 self._module = module |
17 self._device = device | 17 self._device = device |
18 self.is_root_enabled = True | 18 self.is_root_enabled = True |
19 | 19 |
20 def RunShellCommand(self, args): | 20 def RunShellCommand(self, args): |
21 if isinstance(args, basestring): | 21 if isinstance(args, basestring): |
22 import shlex | 22 import shlex |
23 args = shlex.split(args) | 23 args = shlex.split(args) |
24 handler = self._module.shell_command_handlers[args[0]] | 24 handler = self._module.shell_command_handlers[args[0]] |
25 return handler(args) | 25 return handler(args) |
26 | 26 |
27 def IsRootEnabled(self): | 27 def IsRootEnabled(self): |
28 return self.is_root_enabled | 28 return self.is_root_enabled |
29 | 29 |
30 class ADBCommandsModuleStub(object): | 30 class ADBCommandsModuleStub(object): |
31 def __init__(self): | 31 def __init__(self): |
32 self.attached_devices = [] | 32 self.attached_devices = [] |
33 self.shell_command_handlers = {} | 33 self.shell_command_handlers = {} |
34 | 34 |
35 def ADBCommandsStubConstructor(device=None): | 35 def ADBCommandsStubConstructor(device=None): |
36 return ADBCommandsStub(self, device) | 36 return ADBCommandsStub(self, device) |
37 self.ADBCommands = ADBCommandsStubConstructor | 37 self.ADBCommands = ADBCommandsStubConstructor |
38 | 38 |
39 def IsAndroidSupported(self): | 39 def IsAndroidSupported(self): # pylint: disable=R0201 |
40 return True | 40 return True |
41 | 41 |
42 def GetAttachedDevices(self): | 42 def GetAttachedDevices(self): |
43 return self.attached_devices | 43 return self.attached_devices |
44 | 44 |
45 def HasForwarder(self, adb): | 45 def HasForwarder(self, adb): # pylint: disable=W0613,R0201 |
46 return True | 46 return True |
47 | 47 |
48 class AndroidBrowserFinderTest(unittest.TestCase): | 48 class AndroidBrowserFinderTest(unittest.TestCase): |
49 def test_no_adb(self): | 49 def test_no_adb(self): |
50 options = browser_options.BrowserOptions() | 50 options = browser_options.BrowserOptions() |
51 | 51 |
52 subprocess_stub = SubprocessModuleStub() | 52 subprocess_stub = SubprocessModuleStub() |
53 def NoADB(*args, **kargs): | 53 def NoADB(*args, **kargs): # pylint: disable=W0613 |
54 raise OSError('not found') | 54 raise OSError('not found') |
55 subprocess_stub.Popen_hook = NoADB | 55 subprocess_stub.Popen_hook = NoADB |
56 browsers = android_browser_finder.FindAllAvailableBrowsers( | 56 browsers = android_browser_finder.FindAllAvailableBrowsers( |
57 options, subprocess_stub) | 57 options, subprocess_stub) |
58 self.assertEquals(0, len(browsers)) | 58 self.assertEquals(0, len(browsers)) |
59 | 59 |
60 def test_adb_no_devices(self): | 60 def test_adb_no_devices(self): |
61 options = browser_options.BrowserOptions() | 61 options = browser_options.BrowserOptions() |
62 | 62 |
63 subprocess_stub = SubprocessModuleStub() | 63 subprocess_stub = SubprocessModuleStub() |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 assert args[1] == 'list' | 145 assert args[1] == 'list' |
146 assert args[2] == 'packages' | 146 assert args[2] == 'packages' |
147 return ['package:org.chromium.content_shell', | 147 return ['package:org.chromium.content_shell', |
148 'package.com.google.android.setupwizard'] | 148 'package.com.google.android.setupwizard'] |
149 | 149 |
150 adb_commands_module_stub.shell_command_handlers['pm'] = OnPM | 150 adb_commands_module_stub.shell_command_handlers['pm'] = OnPM |
151 | 151 |
152 browsers = android_browser_finder.FindAllAvailableBrowsers( | 152 browsers = android_browser_finder.FindAllAvailableBrowsers( |
153 options, subprocess_stub, adb_commands_module_stub) | 153 options, subprocess_stub, adb_commands_module_stub) |
154 self.assertEquals(1, len(browsers)) | 154 self.assertEquals(1, len(browsers)) |
OLD | NEW |