def __init__(self, device, require_root): assert device, ( 'AndroidPlatformBackend can only be initialized from remote device' ) super(AndroidPlatformBackend, self).__init__(device) self._device = device_utils.DeviceUtils(device.device_id) self._can_elevate_privilege = False self._require_root = require_root if self._require_root: # Trying to root the device, if possible. if not self._device.HasRoot(): try: self._device.EnableRoot() except device_errors.CommandFailedError: logging.warning('Unable to root %s', str(self._device)) self._can_elevate_privilege = (self._device.HasRoot() or self._device.NeedsSU()) assert self._can_elevate_privilege, ( 'Android device must have root access to run Telemetry') self._battery = battery_utils.BatteryUtils(self._device) self._surface_stats_collector = None self._perf_tests_setup = perf_control.PerfControl(self._device) self._thermal_throttle = thermal_throttle.ThermalThrottle(self._device) self._raw_display_frame_rate_measurements = [] self._device_copy_script = None self._system_ui = None self._device_host_clock_offset = None self._video_recorder = None # TODO(https://crbug.com/1026296): Remove this once --chromium-output-dir # has a default value we can use. self._build_dir = util.GetUsedBuildDirectory() _FixPossibleAdbInstability()
def testGetUsedBuildDirectoryNoBrowserDirectory(self): def side_effect(arg): return arg == os.path.join('.', 'out', 'Release_x64') with mock.patch('os.path.exists') as m: m.side_effect = side_effect self.assertEquals(util.GetUsedBuildDirectory(chrome_root='.'), os.path.join('.', 'out', 'Release_x64'))
def __init__(self, android_platform_backend, browser_options, browser_directory, profile_directory, backend_settings): assert isinstance(android_platform_backend, android_platform_backend_module.AndroidPlatformBackend) super(AndroidBrowserBackend, self).__init__( android_platform_backend, browser_options=browser_options, browser_directory=browser_directory, profile_directory=profile_directory, supports_extensions=False, supports_tab_control=backend_settings.supports_tab_control) self._backend_settings = backend_settings # Initialize fields so that an explosion during init doesn't break in Close. self._saved_sslflag = '' self._app_ui = None # Set the debug app if needed. self.platform_backend.SetDebugApp(self._backend_settings.package) # TODO(https://crbug.com/1026296): Remove this once --chromium-output-dir # has a default value we can use. self._build_dir = util.GetUsedBuildDirectory()
def testGetUsedBuildDirectoryBrowserDirectoryDoesNotExist(self): with mock.patch('os.path.exists') as m: m.return_value = False self.assertNotEqual(util.GetUsedBuildDirectory('/foo/test'), '/foo/test')
def testGetUsedBuildDirectoryBrowserDirectoryExists(self): with mock.patch('os.path.exists') as m: m.return_value = True self.assertEquals(util.GetUsedBuildDirectory('/foo/test'), '/foo/test')