Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(217)

Side by Side Diff: tools/telemetry/telemetry/inspector_timeline_unittest.py

Issue 12278015: [Telemetry] Reorganize everything. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Re-add shebangs. Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(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 import os
5 import unittest
6
7 from telemetry import tab_test_case
8 from telemetry import util
9 from telemetry.inspector_timeline import InspectorTimeline
10
11 _SAMPLE_MESSAGE = {
12 'children': [
13 {'data': {},
14 'startTime': 1352783525921.823,
15 'type': 'BeginFrame',
16 'usedHeapSize': 1870736},
17 {'children': [],
18 'data': {'height': 723,
19 'width': 1272,
20 'x': 0,
21 'y': 0},
22 'endTime': 1352783525921.8992,
23 'frameId': '10.2',
24 'startTime': 1352783525921.8281,
25 'type': 'Layout',
26 'usedHeapSize': 1870736},
27 {'children': [
28 {'children': [],
29 'data': {'imageType': 'PNG'},
30 'endTime': 1352783525927.7939,
31 'startTime': 1352783525922.4241,
32 'type': 'DecodeImage',
33 'usedHeapSize': 1870736}
34 ],
35 'data': {'height': 432,
36 'width': 1272,
37 'x': 0,
38 'y': 8},
39 'endTime': 1352783525927.9822,
40 'frameId': '10.2',
41 'startTime': 1352783525921.9292,
42 'type': 'Paint',
43 'usedHeapSize': 1870736}
44 ],
45 'data': {},
46 'endTime': 1352783525928.041,
47 'startTime': 1352783525921.8049,
48 'type': 'Program'}
49
50 class InspectorEventParsingTest(unittest.TestCase):
51 def testParsingWithSampleData(self):
52 root_event = InspectorTimeline.RawEventToTimelineEvent(_SAMPLE_MESSAGE)
53 self.assertTrue(root_event)
54 decode_image_event = [
55 child for child in root_event.GetAllChildrenRecursive()
56 if child.name == 'DecodeImage'][0]
57 self.assertEquals(decode_image_event.args['data']['imageType'], 'PNG')
58 self.assertTrue(decode_image_event.duration_ms > 0)
59
60 def testParsingWithSimpleData(self):
61 raw_event = {'type': 'Foo',
62 'startTime': 1,
63 'endTime': 3,
64 'children': []}
65 event = InspectorTimeline.RawEventToTimelineEvent(raw_event)
66 self.assertEquals('Foo', event.name)
67 self.assertEquals(1, event.start_time_ms)
68 self.assertEquals(3, event.end_time_ms)
69 self.assertEquals(2, event.duration_ms)
70 self.assertEquals([], event.children)
71
72 def testParsingWithArgs(self):
73 raw_event = {'type': 'Foo',
74 'startTime': 1,
75 'endTime': 3,
76 'foo': 7,
77 'bar': {'x': 1}}
78 event = InspectorTimeline.RawEventToTimelineEvent(raw_event)
79 self.assertEquals('Foo', event.name)
80 self.assertEquals(1, event.start_time_ms)
81 self.assertEquals(3, event.end_time_ms)
82 self.assertEquals(2, event.duration_ms)
83 self.assertEquals([], event.children)
84 self.assertEquals(7, event.args['foo'])
85 self.assertEquals(1, event.args['bar']['x'])
86
87 def testEventsWithNoStartTimeAreDropped(self):
88 raw_event = {'type': 'Foo',
89 'endTime': 1,
90 'children': []}
91 event = InspectorTimeline.RawEventToTimelineEvent(raw_event)
92 self.assertEquals(None, event)
93
94 def testEventsWithNoEndTimeAreDropped(self):
95 raw_event = {'type': 'Foo',
96 'endTime': 1,
97 'children': []}
98 event = InspectorTimeline.RawEventToTimelineEvent(raw_event)
99 self.assertEquals(None, event)
100
101
102 class InspectorTimelineTabTest(tab_test_case.TabTestCase):
103 def _StartServer(self):
104 base_dir = os.path.dirname(__file__)
105 self._browser.SetHTTPServerDirectory(os.path.join(base_dir, '..',
106 'unittest_data'))
107
108 def _WaitForAnimationFrame(self):
109 def _IsDone():
110 js_is_done = """done"""
111 return bool(self._tab.EvaluateJavaScript(js_is_done))
112 util.WaitFor(_IsDone, 5)
113
114 def testGotTimeline(self):
115 with InspectorTimeline.Recorder(self._tab):
116 self._tab.ExecuteJavaScript(
117 """
118 var done = false;
119 window.webkitRequestAnimationFrame(function() { done = true; });
120 """)
121 self._WaitForAnimationFrame()
122
123 r = self._tab.timeline_model.GetAllOfName('FireAnimationFrame')
124 self.assertTrue(len(r) > 0)
125 self.assertTrue(r[0].duration_ms > 0)
OLDNEW
« no previous file with comments | « tools/telemetry/telemetry/inspector_timeline.py ('k') | tools/telemetry/telemetry/multi_page_benchmark.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698