OLD | NEW |
| (Empty) |
1 # Copyright (c) 2012 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 cStringIO | |
6 import json | |
7 import logging | |
8 import os | |
9 import unittest | |
10 | |
11 from telemetry import tab_test_case | |
12 from telemetry import tracing_backend | |
13 from telemetry import util | |
14 | |
15 | |
16 class TracingBackendTest(tab_test_case.TabTestCase): | |
17 def _StartServer(self): | |
18 base_dir = os.path.dirname(__file__) | |
19 self._browser.SetHTTPServerDirectory(os.path.join(base_dir, '..', | |
20 'unittest_data')) | |
21 | |
22 def _WaitForAnimationFrame(self): | |
23 def _IsDone(): | |
24 js_is_done = """done""" | |
25 return bool(self._tab.EvaluateJavaScript(js_is_done)) | |
26 util.WaitFor(_IsDone, 5) | |
27 | |
28 def testGotTrace(self): | |
29 if not self._browser.supports_tracing: | |
30 logging.warning('Browser does not support tracing, skipping test.') | |
31 return | |
32 self._StartServer() | |
33 self._browser.StartTracing() | |
34 self._browser.StopTracing() | |
35 model = self._browser.GetTraceResultAndReset().AsTimelineModel() | |
36 events = model.GetAllEvents() | |
37 assert len(events) > 0 | |
38 | |
39 class TracingResultImplTest(unittest.TestCase): | |
40 def testWrite1(self): | |
41 ri = tracing_backend.TraceResultImpl([]) | |
42 f = cStringIO.StringIO() | |
43 ri.Serialize(f) | |
44 v = f.getvalue() | |
45 | |
46 j = json.loads(v) | |
47 assert 'traceEvents' in j | |
48 self.assertEquals(j['traceEvents'], []) | |
49 | |
50 def testWrite2(self): | |
51 ri = tracing_backend.TraceResultImpl([ | |
52 '"foo"', | |
53 '"bar"']) | |
54 f = cStringIO.StringIO() | |
55 ri.Serialize(f) | |
56 v = f.getvalue() | |
57 | |
58 j = json.loads(v) | |
59 assert 'traceEvents' in j | |
60 self.assertEquals(j['traceEvents'], ['foo', 'bar']) | |
61 | |
62 def testWrite3(self): | |
63 ri = tracing_backend.TraceResultImpl([ | |
64 '"foo"', | |
65 '"bar"', | |
66 '"baz"']) | |
67 f = cStringIO.StringIO() | |
68 ri.Serialize(f) | |
69 v = f.getvalue() | |
70 | |
71 j = json.loads(v) | |
72 assert 'traceEvents' in j | |
73 self.assertEquals(j['traceEvents'], | |
74 ['foo', 'bar', 'baz']) | |
OLD | NEW |