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

Side by Side Diff: tools/telemetry/telemetry/core/chrome/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
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 import os 4 import os
5 import unittest 5 import unittest
6 6
7 from telemetry import tab_test_case 7 from telemetry.core import util
8 from telemetry import util 8 from telemetry.core.chrome import inspector_timeline
9 from telemetry.inspector_timeline import InspectorTimeline 9 from telemetry.test import tab_test_case
10 10
11 _SAMPLE_MESSAGE = { 11 _SAMPLE_MESSAGE = {
12 'children': [ 12 'children': [
13 {'data': {}, 13 {'data': {},
14 'startTime': 1352783525921.823, 14 'startTime': 1352783525921.823,
15 'type': 'BeginFrame', 15 'type': 'BeginFrame',
16 'usedHeapSize': 1870736}, 16 'usedHeapSize': 1870736},
17 {'children': [], 17 {'children': [],
18 'data': {'height': 723, 18 'data': {'height': 723,
19 'width': 1272, 19 'width': 1272,
(...skipping 22 matching lines...) Expand all
42 'type': 'Paint', 42 'type': 'Paint',
43 'usedHeapSize': 1870736} 43 'usedHeapSize': 1870736}
44 ], 44 ],
45 'data': {}, 45 'data': {},
46 'endTime': 1352783525928.041, 46 'endTime': 1352783525928.041,
47 'startTime': 1352783525921.8049, 47 'startTime': 1352783525921.8049,
48 'type': 'Program'} 48 'type': 'Program'}
49 49
50 class InspectorEventParsingTest(unittest.TestCase): 50 class InspectorEventParsingTest(unittest.TestCase):
51 def testParsingWithSampleData(self): 51 def testParsingWithSampleData(self):
52 root_event = InspectorTimeline.RawEventToTimelineEvent(_SAMPLE_MESSAGE) 52 root_event = inspector_timeline.InspectorTimeline.RawEventToTimelineEvent(
53 _SAMPLE_MESSAGE)
53 self.assertTrue(root_event) 54 self.assertTrue(root_event)
54 decode_image_event = [ 55 decode_image_event = [
55 child for child in root_event.GetAllChildrenRecursive() 56 child for child in root_event.GetAllChildrenRecursive()
56 if child.name == 'DecodeImage'][0] 57 if child.name == 'DecodeImage'][0]
57 self.assertEquals(decode_image_event.args['data']['imageType'], 'PNG') 58 self.assertEquals(decode_image_event.args['data']['imageType'], 'PNG')
58 self.assertTrue(decode_image_event.duration_ms > 0) 59 self.assertTrue(decode_image_event.duration_ms > 0)
59 60
60 def testParsingWithSimpleData(self): 61 def testParsingWithSimpleData(self):
61 raw_event = {'type': 'Foo', 62 raw_event = {'type': 'Foo',
62 'startTime': 1, 63 'startTime': 1,
63 'endTime': 3, 64 'endTime': 3,
64 'children': []} 65 'children': []}
65 event = InspectorTimeline.RawEventToTimelineEvent(raw_event) 66 event = inspector_timeline.InspectorTimeline.RawEventToTimelineEvent(
67 raw_event)
66 self.assertEquals('Foo', event.name) 68 self.assertEquals('Foo', event.name)
67 self.assertEquals(1, event.start_time_ms) 69 self.assertEquals(1, event.start_time_ms)
68 self.assertEquals(3, event.end_time_ms) 70 self.assertEquals(3, event.end_time_ms)
69 self.assertEquals(2, event.duration_ms) 71 self.assertEquals(2, event.duration_ms)
70 self.assertEquals([], event.children) 72 self.assertEquals([], event.children)
71 73
72 def testParsingWithArgs(self): 74 def testParsingWithArgs(self):
73 raw_event = {'type': 'Foo', 75 raw_event = {'type': 'Foo',
74 'startTime': 1, 76 'startTime': 1,
75 'endTime': 3, 77 'endTime': 3,
76 'foo': 7, 78 'foo': 7,
77 'bar': {'x': 1}} 79 'bar': {'x': 1}}
78 event = InspectorTimeline.RawEventToTimelineEvent(raw_event) 80 event = inspector_timeline.InspectorTimeline.RawEventToTimelineEvent(
81 raw_event)
79 self.assertEquals('Foo', event.name) 82 self.assertEquals('Foo', event.name)
80 self.assertEquals(1, event.start_time_ms) 83 self.assertEquals(1, event.start_time_ms)
81 self.assertEquals(3, event.end_time_ms) 84 self.assertEquals(3, event.end_time_ms)
82 self.assertEquals(2, event.duration_ms) 85 self.assertEquals(2, event.duration_ms)
83 self.assertEquals([], event.children) 86 self.assertEquals([], event.children)
84 self.assertEquals(7, event.args['foo']) 87 self.assertEquals(7, event.args['foo'])
85 self.assertEquals(1, event.args['bar']['x']) 88 self.assertEquals(1, event.args['bar']['x'])
86 89
87 def testEventsWithNoStartTimeAreDropped(self): 90 def testEventsWithNoStartTimeAreDropped(self):
88 raw_event = {'type': 'Foo', 91 raw_event = {'type': 'Foo',
89 'endTime': 1, 92 'endTime': 1,
90 'children': []} 93 'children': []}
91 event = InspectorTimeline.RawEventToTimelineEvent(raw_event) 94 event = inspector_timeline.InspectorTimeline.RawEventToTimelineEvent(
95 raw_event)
92 self.assertEquals(None, event) 96 self.assertEquals(None, event)
93 97
94 def testEventsWithNoEndTimeAreDropped(self): 98 def testEventsWithNoEndTimeAreDropped(self):
95 raw_event = {'type': 'Foo', 99 raw_event = {'type': 'Foo',
96 'endTime': 1, 100 'endTime': 1,
97 'children': []} 101 'children': []}
98 event = InspectorTimeline.RawEventToTimelineEvent(raw_event) 102 event = inspector_timeline.InspectorTimeline.RawEventToTimelineEvent(
103 raw_event)
99 self.assertEquals(None, event) 104 self.assertEquals(None, event)
100 105
101 106
102 class InspectorTimelineTabTest(tab_test_case.TabTestCase): 107 class InspectorTimelineTabTest(tab_test_case.TabTestCase):
103 def _StartServer(self): 108 def _StartServer(self):
104 base_dir = os.path.dirname(__file__) 109 base_dir = os.path.dirname(__file__)
105 self._browser.SetHTTPServerDirectory(os.path.join(base_dir, '..', 110 self._browser.SetHTTPServerDirectory(os.path.join(base_dir, '..', '..',
106 'unittest_data')) 111 'unittest_data'))
107 112
108 def _WaitForAnimationFrame(self): 113 def _WaitForAnimationFrame(self):
109 def _IsDone(): 114 def _IsDone():
110 js_is_done = """done""" 115 js_is_done = """done"""
111 return bool(self._tab.EvaluateJavaScript(js_is_done)) 116 return bool(self._tab.EvaluateJavaScript(js_is_done))
112 util.WaitFor(_IsDone, 5) 117 util.WaitFor(_IsDone, 5)
113 118
114 def testGotTimeline(self): 119 def testGotTimeline(self):
115 with InspectorTimeline.Recorder(self._tab): 120 with inspector_timeline.InspectorTimeline.Recorder(self._tab):
116 self._tab.ExecuteJavaScript( 121 self._tab.ExecuteJavaScript(
117 """ 122 """
118 var done = false; 123 var done = false;
119 window.webkitRequestAnimationFrame(function() { done = true; }); 124 window.webkitRequestAnimationFrame(function() { done = true; });
120 """) 125 """)
121 self._WaitForAnimationFrame() 126 self._WaitForAnimationFrame()
122 127
123 r = self._tab.timeline_model.GetAllOfName('FireAnimationFrame') 128 r = self._tab.timeline_model.GetAllOfName('FireAnimationFrame')
124 self.assertTrue(len(r) > 0) 129 self.assertTrue(len(r) > 0)
125 self.assertTrue(r[0].duration_ms > 0) 130 self.assertTrue(r[0].duration_ms > 0)
OLDNEW
« no previous file with comments | « tools/telemetry/telemetry/core/chrome/inspector_timeline.py ('k') | tools/telemetry/telemetry/core/chrome/platform.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698