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

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

Issue 12294002: Revert 182991 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: 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.core import util
8 from telemetry.core.chrome import inspector_timeline
9 from telemetry.test import tab_test_case
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 = inspector_timeline.InspectorTimeline.RawEventToTimelineEvent(
53 _SAMPLE_MESSAGE)
54 self.assertTrue(root_event)
55 decode_image_event = [
56 child for child in root_event.GetAllChildrenRecursive()
57 if child.name == 'DecodeImage'][0]
58 self.assertEquals(decode_image_event.args['data']['imageType'], 'PNG')
59 self.assertTrue(decode_image_event.duration_ms > 0)
60
61 def testParsingWithSimpleData(self):
62 raw_event = {'type': 'Foo',
63 'startTime': 1,
64 'endTime': 3,
65 'children': []}
66 event = inspector_timeline.InspectorTimeline.RawEventToTimelineEvent(
67 raw_event)
68 self.assertEquals('Foo', event.name)
69 self.assertEquals(1, event.start_time_ms)
70 self.assertEquals(3, event.end_time_ms)
71 self.assertEquals(2, event.duration_ms)
72 self.assertEquals([], event.children)
73
74 def testParsingWithArgs(self):
75 raw_event = {'type': 'Foo',
76 'startTime': 1,
77 'endTime': 3,
78 'foo': 7,
79 'bar': {'x': 1}}
80 event = inspector_timeline.InspectorTimeline.RawEventToTimelineEvent(
81 raw_event)
82 self.assertEquals('Foo', event.name)
83 self.assertEquals(1, event.start_time_ms)
84 self.assertEquals(3, event.end_time_ms)
85 self.assertEquals(2, event.duration_ms)
86 self.assertEquals([], event.children)
87 self.assertEquals(7, event.args['foo'])
88 self.assertEquals(1, event.args['bar']['x'])
89
90 def testEventsWithNoStartTimeAreDropped(self):
91 raw_event = {'type': 'Foo',
92 'endTime': 1,
93 'children': []}
94 event = inspector_timeline.InspectorTimeline.RawEventToTimelineEvent(
95 raw_event)
96 self.assertEquals(None, event)
97
98 def testEventsWithNoEndTimeAreDropped(self):
99 raw_event = {'type': 'Foo',
100 'endTime': 1,
101 'children': []}
102 event = inspector_timeline.InspectorTimeline.RawEventToTimelineEvent(
103 raw_event)
104 self.assertEquals(None, event)
105
106
107 class InspectorTimelineTabTest(tab_test_case.TabTestCase):
108 def _StartServer(self):
109 base_dir = os.path.dirname(__file__)
110 self._browser.SetHTTPServerDirectory(os.path.join(base_dir, '..', '..',
111 'unittest_data'))
112
113 def _WaitForAnimationFrame(self):
114 def _IsDone():
115 js_is_done = """done"""
116 return bool(self._tab.EvaluateJavaScript(js_is_done))
117 util.WaitFor(_IsDone, 5)
118
119 def testGotTimeline(self):
120 with inspector_timeline.InspectorTimeline.Recorder(self._tab):
121 self._tab.ExecuteJavaScript(
122 """
123 var done = false;
124 window.webkitRequestAnimationFrame(function() { done = true; });
125 """)
126 self._WaitForAnimationFrame()
127
128 r = self._tab.timeline_model.GetAllOfName('FireAnimationFrame')
129 self.assertTrue(len(r) > 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