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