Home | History | Annotate | Download | only in tracing_agents
      1 # Copyright 2014 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 
      5 import unittest
      6 
      7 from systrace import util
      8 
      9 from devil.android import device_utils
     10 from devil.android.sdk import intent
     11 from devil.android.sdk import keyevent
     12 
     13 
     14 class BaseAgentTest(unittest.TestCase):
     15   def setUp(self):
     16     devices = device_utils.DeviceUtils.HealthyDevices()
     17     self.browser = 'stable'
     18     self.package_info = util.get_supported_browsers()[self.browser]
     19     self.device = devices[0]
     20 
     21     curr_browser = self.GetChromeProcessID()
     22     if curr_browser == None:
     23       self.StartBrowser()
     24 
     25   def tearDown(self):
     26     # Stop the browser after each test to ensure that it doesn't interfere
     27     # with subsequent tests, e.g. by holding the devtools socket open.
     28     self.device.ForceStop(self.package_info.package)
     29 
     30   def StartBrowser(self):
     31     # Turn on the device screen.
     32     self.device.SetScreen(True)
     33 
     34     # Unlock device.
     35     self.device.SendKeyEvent(keyevent.KEYCODE_MENU)
     36 
     37     # Start browser.
     38     self.device.StartActivity(
     39       intent.Intent(activity=self.package_info.activity,
     40                     package=self.package_info.package,
     41                     data='about:blank',
     42                     extras={'create_new_tab': True}),
     43       blocking=True, force_stop=True)
     44 
     45   def GetChromeProcessID(self):
     46     return self.device.GetApplicationPids(
     47         self.package_info.package, at_most_one=True)
     48