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
3# found in the LICENSE file.
4from measurements import rasterize_and_record_micro
5from telemetry.core import wpr_modes
6from telemetry.page import page_measurement_unittest_base
7from telemetry.unittest import options_for_unittests
8
9
10class RasterizeAndRecordMicroUnitTest(
11      page_measurement_unittest_base.PageMeasurementUnitTestBase):
12  """Smoke test for rasterize_and_record_micro measurement
13
14     Runs rasterize_and_record_micro measurement on a simple page and verifies
15     that all metrics were added to the results. The test is purely functional,
16     i.e. it only checks if the metrics are present and non-zero.
17  """
18
19  def setUp(self):
20    self._options = options_for_unittests.GetCopy()
21    self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF
22    self._options.rasterize_repeat = 1
23    self._options.record_repeat = 1
24    self._options.start_wait_time = 0.0
25
26  def testRasterizeAndRecordMicro(self):
27    ps = self.CreatePageSetFromFileInUnittestDataDir('blank.html')
28    measurement = rasterize_and_record_micro.RasterizeAndRecordMicro()
29    results = self.RunMeasurement(measurement, ps, options=self._options)
30    self.assertEquals(0, len(results.failures))
31
32    rasterize_time = results.FindAllPageSpecificValuesNamed('rasterize_time')
33    self.assertEquals(len(rasterize_time), 1)
34    self.assertGreater(rasterize_time[0].GetRepresentativeNumber(), 0)
35
36    record_time = results.FindAllPageSpecificValuesNamed('record_time')
37    self.assertEquals(len(record_time), 1)
38    self.assertGreater(record_time[0].GetRepresentativeNumber(), 0)
39
40    rasterized_pixels = results.FindAllPageSpecificValuesNamed(
41        'pixels_rasterized')
42    self.assertEquals(len(rasterized_pixels), 1)
43    self.assertGreater(rasterized_pixels[0].GetRepresentativeNumber(), 0)
44
45    recorded_pixels = results.FindAllPageSpecificValuesNamed('pixels_recorded')
46    self.assertEquals(len(recorded_pixels), 1)
47    self.assertGreater(recorded_pixels[0].GetRepresentativeNumber(), 0)
48