1 # Copyright 2014 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.
5 from measurements import repaint
6 from telemetry.core import wpr_modes
7 from telemetry.page import page_measurement_unittest_base
8 from telemetry.unittest import options_for_unittests
11 class RepaintUnitTest(
12 page_measurement_unittest_base.PageMeasurementUnitTestBase):
13 """Smoke test for repaint measurement
15 Runs repaint measurement on a simple page and verifies
16 that all metrics were added to the results. The test is purely functional,
17 i.e. it only checks if the metrics are present and non-zero.
21 self._options = options_for_unittests.GetCopy()
22 self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF
24 def testRepaint(self):
25 ps = self.CreatePageSetFromFileInUnittestDataDir('blank.html')
26 measurement = repaint.Repaint()
27 results = self.RunMeasurement(measurement, ps, options=self._options)
28 self.assertEquals(0, len(results.failures))
30 frame_times = results.FindAllPageSpecificValuesNamed('frame_times')
31 self.assertEquals(len(frame_times), 1)
32 self.assertGreater(frame_times[0].GetRepresentativeNumber(), 0)
34 mean_frame_time = results.FindAllPageSpecificValuesNamed('mean_frame_time')
35 self.assertEquals(len(mean_frame_time), 1)
36 self.assertGreater(mean_frame_time[0].GetRepresentativeNumber(), 0)
38 jank = results.FindAllPageSpecificValuesNamed('jank')
39 self.assertEquals(len(jank), 1)
40 self.assertGreater(jank[0].GetRepresentativeNumber(), 0)
42 mostly_smooth = results.FindAllPageSpecificValuesNamed('mostly_smooth')
43 self.assertEquals(len(mostly_smooth), 1)
44 self.assertGreaterEqual(mostly_smooth[0].GetRepresentativeNumber(), 0)
46 def testCleanUpTrace(self):
47 self.TestTracingCleanedUp(repaint.Repaint, self._options)