Upstream version 6.35.121.0
[platform/framework/web/crosswalk.git] / src / tools / perf / measurements / repaint_unittest.py
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.
4
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
9
10
11 class RepaintUnitTest(
12       page_measurement_unittest_base.PageMeasurementUnitTestBase):
13   """Smoke test for repaint measurement
14
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.
18   """
19
20   def setUp(self):
21     self._options = options_for_unittests.GetCopy()
22     self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF
23
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))
29
30     frame_times = results.FindAllPageSpecificValuesNamed('frame_times')
31     self.assertEquals(len(frame_times), 1)
32     self.assertGreater(frame_times[0].GetRepresentativeNumber(), 0)
33
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)
37
38     jank = results.FindAllPageSpecificValuesNamed('jank')
39     self.assertEquals(len(jank), 1)
40     self.assertGreater(jank[0].GetRepresentativeNumber(), 0)
41
42     mostly_smooth = results.FindAllPageSpecificValuesNamed('mostly_smooth')
43     self.assertEquals(len(mostly_smooth), 1)
44     self.assertGreaterEqual(mostly_smooth[0].GetRepresentativeNumber(), 0)
45
46   def testCleanUpTrace(self):
47     self.TestTracingCleanedUp(repaint.Repaint, self._options)