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 os 6 import json 7 8 from profile_chrome import chrome_controller 9 from profile_chrome import controllers_unittest 10 11 12 class ChromeControllerTest(controllers_unittest.BaseControllerTest): 13 def testGetCategories(self): 14 # Not supported on stable yet. 15 # TODO(skyostil): Remove this once category queries roll into stable. 16 if self.browser == 'stable': 17 return 18 19 categories = \ 20 chrome_controller.ChromeTracingController.GetCategories( 21 self.device, self.package_info) 22 23 self.assertEquals(len(categories), 2) 24 self.assertTrue(categories[0]) 25 self.assertTrue(categories[1]) 26 27 def testTracing(self): 28 categories = '*' 29 ring_buffer = False 30 controller = chrome_controller.ChromeTracingController(self.device, 31 self.package_info, 32 categories, 33 ring_buffer) 34 35 interval = 1 36 try: 37 controller.StartTracing(interval) 38 finally: 39 controller.StopTracing() 40 41 result = controller.PullTrace() 42 try: 43 with open(result) as f: 44 json.loads(f.read()) 45 finally: 46 os.remove(result) 47