| Index: tools/telemetry/telemetry/core/platform/android_device_unittest.py
|
| diff --git a/tools/telemetry/telemetry/core/platform/android_device_unittest.py b/tools/telemetry/telemetry/core/platform/android_device_unittest.py
|
| index 5bba83d2a207b6d9e6db5a8a699862e8812de3a0..ed7707a9a93d2eb459c06d85459c2db5718ad3cc 100644
|
| --- a/tools/telemetry/telemetry/core/platform/android_device_unittest.py
|
| +++ b/tools/telemetry/telemetry/core/platform/android_device_unittest.py
|
| @@ -4,7 +4,10 @@
|
|
|
| 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.unittest_util import system_stub
|
|
|
|
|
| @@ -24,3 +27,73 @@ class AndroidDeviceTest(unittest.TestCase):
|
|
|
| def tearDown(self):
|
| self._android_device_stub.Restore()
|
| +
|
| +
|
| +class GetDeviceTest(unittest.TestCase):
|
| + def setUp(self):
|
| + self._android_device_stub = system_stub.Override(
|
| + android_device, ['adb_commands', 'os', 'subprocess', 'logging'])
|
| + self._apb_stub = system_stub.Override(
|
| + android_platform_backend, ['adb_commands'])
|
| +
|
| + def tearDown(self):
|
| + self._android_device_stub.Restore()
|
| + self._apb_stub.Restore()
|
| +
|
| + def testNoAdbReturnsNone(self):
|
| + finder_options = browser_options.BrowserFinderOptions()
|
| +
|
| + def NoAdb(*_, **__):
|
| + raise OSError('not found')
|
| + self._android_device_stub.subprocess.Popen = NoAdb
|
| +
|
| + self.assertEquals([], self._android_device_stub.logging.warnings)
|
| + self.assertIsNone(android_device.GetDevice(finder_options))
|
| +
|
| + def testAdbNoDevicesReturnsNone(self):
|
| + finder_options = browser_options.BrowserFinderOptions()
|
| + self.assertEquals([], self._android_device_stub.logging.warnings)
|
| + self.assertIsNone(android_device.GetDevice(finder_options))
|
| +
|
| + def testAdbPermissionsErrorReturnsNone(self):
|
| + finder_options = browser_options.BrowserFinderOptions()
|
| + self._android_device_stub.subprocess.Popen.communicate_result = (
|
| + 'List of devices attached\n????????????\tno permissions\n',
|
| + '* daemon not running. starting it now on port 5037 *\n'
|
| + '* daemon started successfully *\n')
|
| + device = android_device.GetDevice(finder_options)
|
| + self.assertEquals([
|
| + 'adb devices gave a permissions error. Consider running adb as root:',
|
| + ' adb kill-server',
|
| + ' sudo `which adb` devices\n\n'],
|
| + self._android_device_stub.logging.warnings)
|
| + self.assertIsNone(device)
|
| +
|
| + def testAdbTwoDevicesReturnsNone(self):
|
| + finder_options = browser_options.BrowserFinderOptions()
|
| + self._android_device_stub.adb_commands.attached_devices = [
|
| + '015d14fec128220c', '015d14fec128220d']
|
| + device = android_device.GetDevice(finder_options)
|
| + self.assertEquals([
|
| + 'Multiple devices attached. Please specify one of the following:\n'
|
| + ' --device=015d14fec128220c\n'
|
| + ' --device=015d14fec128220d'],
|
| + self._android_device_stub.logging.warnings)
|
| + self.assertIsNone(device)
|
| +
|
| + def testAdbPickOneDeviceReturnsDeviceInstance(self):
|
| + finder_options = browser_options.BrowserFinderOptions()
|
| + finder_options.android_device = '555d14fecddddddd' # pick one
|
| + self._android_device_stub.adb_commands.attached_devices = [
|
| + '015d14fec128220c', '555d14fecddddddd']
|
| + device = android_device.GetDevice(finder_options)
|
| + self.assertEquals([], self._android_device_stub.logging.warnings)
|
| + self.assertEquals('555d14fecddddddd', device.device_id)
|
| +
|
| + def testAdbOneDeviceReturnsDeviceInstance(self):
|
| + finder_options = browser_options.BrowserFinderOptions()
|
| + self._android_device_stub.adb_commands.attached_devices = (
|
| + ['015d14fec128220c'])
|
| + device = android_device.GetDevice(finder_options)
|
| + self.assertEquals([], self._android_device_stub.logging.warnings)
|
| + self.assertEquals('015d14fec128220c', device.device_id)
|
|
|