summaryrefslogtreecommitdiffstats
path: root/tools/profile_chrome/chrome_controller_unittest.py
blob: aec4e77e4b208a1d1223b12bbcb211cfaebea1f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 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 os
import json

from profile_chrome import chrome_controller
from profile_chrome import controllers_unittest


class ChromeControllerTest(controllers_unittest.BaseControllerTest):
  def testGetCategories(self):
    # Not supported on stable yet.
    # TODO(skyostil): Remove this once category queries roll into stable.
    if self.browser == 'stable':
      return

    categories = \
        chrome_controller.ChromeTracingController.GetCategories(
            self.device, self.package_info)

    self.assertEquals(len(categories), 2)
    self.assertTrue(categories[0])
    self.assertTrue(categories[1])

  def testTracing(self):
    categories = '*'
    ring_buffer = False
    controller = chrome_controller.ChromeTracingController(self.device,
                                                           self.package_info,
                                                           categories,
                                                           ring_buffer)

    interval = 1
    try:
      controller.StartTracing(interval)
    finally:
      controller.StopTracing()

    result = controller.PullTrace()
    try:
      with open(result) as f:
        json.loads(f.read())
    finally:
      os.remove(result)