OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 | 4 |
5 import unittest | 5 import unittest |
6 | 6 |
7 from telemetry.core import browser_options | 7 from telemetry.core import browser_options |
8 from telemetry.page import page_runner | 8 from telemetry.page import page_runner |
9 from telemetry.results import page_measurement_results | 9 from telemetry.results import page_test_results |
10 from telemetry.unittest import simple_mock | 10 from telemetry.unittest import simple_mock |
11 | 11 |
12 from measurements import page_cycler | 12 from measurements import page_cycler |
13 | 13 |
14 | 14 |
15 # Allow testing protected members in the unit test. | 15 # Allow testing protected members in the unit test. |
16 # pylint: disable=W0212 | 16 # pylint: disable=W0212 |
17 | 17 |
18 class MockMemoryMetric(object): | 18 class MockMemoryMetric(object): |
19 """Used instead of simple_mock.MockObject so that the precise order and | 19 """Used instead of simple_mock.MockObject so that the precise order and |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 def testCacheHandled(self): | 135 def testCacheHandled(self): |
136 cycler = self.SetUpCycler(['--pageset-repeat=5', | 136 cycler = self.SetUpCycler(['--pageset-repeat=5', |
137 '--cold-load-percent=50'], | 137 '--cold-load-percent=50'], |
138 True) | 138 True) |
139 | 139 |
140 url_name = 'http://fakepage.com' | 140 url_name = 'http://fakepage.com' |
141 page = FakePage(url_name) | 141 page = FakePage(url_name) |
142 tab = FakeTab() | 142 tab = FakeTab() |
143 | 143 |
144 for i in range(5): | 144 for i in range(5): |
145 results = page_measurement_results.PageMeasurementResults() | 145 results = page_test_results.PageTestResults() |
146 results.WillRunPage(page) | 146 results.WillRunPage(page) |
147 cycler.WillNavigateToPage(page, tab) | 147 cycler.WillNavigateToPage(page, tab) |
148 self.assertEqual(max(0, i - 2), tab.clear_cache_calls, | 148 self.assertEqual(max(0, i - 2), tab.clear_cache_calls, |
149 'Iteration %d tab.clear_cache_calls %d' % | 149 'Iteration %d tab.clear_cache_calls %d' % |
150 (i, tab.clear_cache_calls)) | 150 (i, tab.clear_cache_calls)) |
151 cycler.MeasurePage(page, tab, results) | 151 cycler.MeasurePage(page, tab, results) |
152 results.DidRunPage(page) | 152 results.DidRunPage(page) |
153 | 153 |
154 values = results.all_page_specific_values | 154 values = results.all_page_specific_values |
155 self.assertGreater(len(values), 2) | 155 self.assertGreater(len(values), 2) |
156 | 156 |
157 self.assertEqual(values[0].page, page) | 157 self.assertEqual(values[0].page, page) |
158 chart_name = 'cold_times' if i == 0 or i > 2 else 'warm_times' | 158 chart_name = 'cold_times' if i == 0 or i > 2 else 'warm_times' |
159 self.assertEqual(values[0].name, '%s.page_load_time' % chart_name) | 159 self.assertEqual(values[0].name, '%s.page_load_time' % chart_name) |
160 self.assertEqual(values[0].units, 'ms') | 160 self.assertEqual(values[0].units, 'ms') |
161 | 161 |
162 cycler.DidNavigateToPage(page, tab) | 162 cycler.DidNavigateToPage(page, tab) |
163 | 163 |
164 def testColdWarm(self): | 164 def testColdWarm(self): |
165 cycler = self.SetUpCycler(['--pageset-repeat=3'], True) | 165 cycler = self.SetUpCycler(['--pageset-repeat=3'], True) |
166 pages = [FakePage('http://fakepage1.com'), FakePage('http://fakepage2.com')] | 166 pages = [FakePage('http://fakepage1.com'), FakePage('http://fakepage2.com')] |
167 tab = FakeTab() | 167 tab = FakeTab() |
168 for i in range(3): | 168 for i in range(3): |
169 for page in pages: | 169 for page in pages: |
170 results = page_measurement_results.PageMeasurementResults() | 170 results = page_test_results.PageTestResults() |
171 results.WillRunPage(page) | 171 results.WillRunPage(page) |
172 cycler.WillNavigateToPage(page, tab) | 172 cycler.WillNavigateToPage(page, tab) |
173 cycler.MeasurePage(page, tab, results) | 173 cycler.MeasurePage(page, tab, results) |
174 results.DidRunPage(page) | 174 results.DidRunPage(page) |
175 | 175 |
176 values = results.all_page_specific_values | 176 values = results.all_page_specific_values |
177 self.assertGreater(len(values), 2) | 177 self.assertGreater(len(values), 2) |
178 | 178 |
179 self.assertEqual(values[0].page, page) | 179 self.assertEqual(values[0].page, page) |
180 | 180 |
181 chart_name = 'cold_times' if i == 0 or i > 1 else 'warm_times' | 181 chart_name = 'cold_times' if i == 0 or i > 1 else 'warm_times' |
182 self.assertEqual(values[0].name, '%s.page_load_time' % chart_name) | 182 self.assertEqual(values[0].name, '%s.page_load_time' % chart_name) |
183 self.assertEqual(values[0].units, 'ms') | 183 self.assertEqual(values[0].units, 'ms') |
184 | 184 |
185 cycler.DidNavigateToPage(page, tab) | 185 cycler.DidNavigateToPage(page, tab) |
186 | 186 |
187 def testResults(self): | 187 def testResults(self): |
188 cycler = self.SetUpCycler([], True) | 188 cycler = self.SetUpCycler([], True) |
189 | 189 |
190 pages = [FakePage('http://fakepage1.com'), FakePage('http://fakepage2.com')] | 190 pages = [FakePage('http://fakepage1.com'), FakePage('http://fakepage2.com')] |
191 tab = FakeTab() | 191 tab = FakeTab() |
192 | 192 |
193 for i in range(2): | 193 for i in range(2): |
194 for page in pages: | 194 for page in pages: |
195 results = page_measurement_results.PageMeasurementResults() | 195 results = page_test_results.PageTestResults() |
196 results.WillRunPage(page) | 196 results.WillRunPage(page) |
197 cycler.WillNavigateToPage(page, tab) | 197 cycler.WillNavigateToPage(page, tab) |
198 cycler.MeasurePage(page, tab, results) | 198 cycler.MeasurePage(page, tab, results) |
199 results.DidRunPage(page) | 199 results.DidRunPage(page) |
200 | 200 |
201 values = results.all_page_specific_values | 201 values = results.all_page_specific_values |
202 self.assertEqual(4, len(values)) | 202 self.assertEqual(4, len(values)) |
203 | 203 |
204 self.assertEqual(values[0].page, page) | 204 self.assertEqual(values[0].page, page) |
205 chart_name = 'cold_times' if i == 0 else 'warm_times' | 205 chart_name = 'cold_times' if i == 0 else 'warm_times' |
206 self.assertEqual(values[0].name, '%s.page_load_time' % chart_name) | 206 self.assertEqual(values[0].name, '%s.page_load_time' % chart_name) |
207 self.assertEqual(values[0].units, 'ms') | 207 self.assertEqual(values[0].units, 'ms') |
208 | 208 |
209 for value, expected in zip(values[1:], ['gpu', 'renderer', 'browser']): | 209 for value, expected in zip(values[1:], ['gpu', 'renderer', 'browser']): |
210 self.assertEqual(value.page, page) | 210 self.assertEqual(value.page, page) |
211 self.assertEqual(value.name, | 211 self.assertEqual(value.name, |
212 'cpu_utilization.cpu_utilization_%s' % expected) | 212 'cpu_utilization.cpu_utilization_%s' % expected) |
213 self.assertEqual(value.units, '%') | 213 self.assertEqual(value.units, '%') |
214 | 214 |
215 cycler.DidNavigateToPage(page, tab) | 215 cycler.DidNavigateToPage(page, tab) |
OLD | NEW |