# Copyright 2014 The Chromium Authors. All rights reserved.
|
# Use of this source code is governed by a BSD-style license that can be
|
# found in the LICENSE file.
|
|
import unittest
|
|
from systrace import util
|
|
from devil.android import device_utils
|
from devil.android.sdk import intent
|
from devil.android.sdk import keyevent
|
|
|
class BaseAgentTest(unittest.TestCase):
|
def setUp(self):
|
devices = device_utils.DeviceUtils.HealthyDevices()
|
self.browser = 'stable'
|
self.package_info = util.get_supported_browsers()[self.browser]
|
self.device = devices[0]
|
|
curr_browser = self.GetChromeProcessID()
|
if curr_browser is None:
|
self.StartBrowser()
|
|
def tearDown(self):
|
# Stop the browser after each test to ensure that it doesn't interfere
|
# with subsequent tests, e.g. by holding the devtools socket open.
|
self.device.ForceStop(self.package_info.package)
|
|
def StartBrowser(self):
|
# Turn on the device screen.
|
self.device.SetScreen(True)
|
|
# Unlock device.
|
self.device.SendKeyEvent(keyevent.KEYCODE_MENU)
|
|
# Start browser.
|
self.device.StartActivity(
|
intent.Intent(activity=self.package_info.activity,
|
package=self.package_info.package,
|
data='about:blank',
|
extras={'create_new_tab': True}),
|
blocking=True, force_stop=True)
|
|
def GetChromeProcessID(self):
|
return self.device.GetApplicationPids(
|
self.package_info.package, at_most_one=True)
|