| # Copyright 2014 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import unittest |
| |
| from metrics import smoothness |
| |
| from telemetry.page import page |
| |
| |
| class FakePlatform(object): |
| def IsRawDisplayFrameRateSupported(self): |
| return False |
| |
| |
| class FakeBrowser(object): |
| def __init__(self): |
| self.platform = FakePlatform() |
| self.category_filter = None |
| |
| def StartTracing(self, category_filter, _): |
| self.category_filter = category_filter |
| |
| |
| class FakeTab(object): |
| def __init__(self): |
| self.browser = FakeBrowser() |
| |
| def ExecuteJavaScript(self, js): |
| pass |
| |
| |
| class SmoothnessMetricUnitTest(unittest.TestCase): |
| def testSyntheticDelayConfiguration(self): |
| attributes = { |
| 'synthetic_delays': { |
| 'cc.BeginMainFrame': { 'target_duration': 0.012 }, |
| 'cc.DrawAndSwap': { 'target_duration': 0.012, 'mode': 'alternating' }, |
| 'gpu.SwapBuffers': { 'target_duration': 0.012 } |
| } |
| } |
| test_page = page.Page('http://dummy', None, attributes=attributes) |
| |
| tab = FakeTab() |
| smoothness_metric = smoothness.SmoothnessMetric() |
| smoothness_metric.Start(test_page, tab) |
| |
| expected_category_filter = [ |
| 'DELAY(cc.BeginMainFrame;0.012000;static)', |
| 'DELAY(cc.DrawAndSwap;0.012000;alternating)', |
| 'DELAY(gpu.SwapBuffers;0.012000;static)', |
| 'benchmark', |
| 'webkit.console' |
| ] |
| self.assertEquals(expected_category_filter, |
| sorted(tab.browser.category_filter.split(','))) |