Home | History | Annotate | Download | only in measurements
      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.
      4 
      5 import logging
      6 
      7 from measurements import rasterize_and_record_micro
      8 from telemetry.core import wpr_modes
      9 from telemetry.page import page_test
     10 from telemetry.unittest import options_for_unittests
     11 from telemetry.unittest import page_test_test_case
     12 from telemetry.unittest import test
     13 
     14 
     15 class RasterizeAndRecordMicroUnitTest(page_test_test_case.PageTestTestCase):
     16   """Smoke test for rasterize_and_record_micro measurement
     17 
     18      Runs rasterize_and_record_micro measurement on a simple page and verifies
     19      that all metrics were added to the results. The test is purely functional,
     20      i.e. it only checks if the metrics are present and non-zero.
     21   """
     22 
     23   def setUp(self):
     24     self._options = options_for_unittests.GetCopy()
     25     self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF
     26     self._options.rasterize_repeat = 1
     27     self._options.record_repeat = 1
     28     self._options.start_wait_time = 0.0
     29     self._options.report_detailed_results = True
     30 
     31   @test.Disabled('win', 'chromeos')
     32   def testRasterizeAndRecordMicro(self):
     33     ps = self.CreatePageSetFromFileInUnittestDataDir('blank.html')
     34     measurement = rasterize_and_record_micro.RasterizeAndRecordMicro()
     35     try:
     36       results = self.RunMeasurement(measurement, ps, options=self._options)
     37     except page_test.TestNotSupportedOnPlatformFailure as failure:
     38       logging.warning(str(failure))
     39       return
     40     self.assertEquals(0, len(results.failures))
     41 
     42     rasterize_time = results.FindAllPageSpecificValuesNamed('rasterize_time')
     43     self.assertEquals(len(rasterize_time), 1)
     44     self.assertGreater(rasterize_time[0].GetRepresentativeNumber(), 0)
     45 
     46     record_time = results.FindAllPageSpecificValuesNamed('record_time')
     47     self.assertEquals(len(record_time), 1)
     48     self.assertGreater(record_time[0].GetRepresentativeNumber(), 0)
     49 
     50     rasterized_pixels = results.FindAllPageSpecificValuesNamed(
     51         'pixels_rasterized')
     52     self.assertEquals(len(rasterized_pixels), 1)
     53     self.assertGreater(rasterized_pixels[0].GetRepresentativeNumber(), 0)
     54 
     55     recorded_pixels = results.FindAllPageSpecificValuesNamed('pixels_recorded')
     56     self.assertEquals(len(recorded_pixels), 1)
     57     self.assertGreater(recorded_pixels[0].GetRepresentativeNumber(), 0)
     58 
     59     pixels_rasterized_with_non_solid_color = \
     60         results.FindAllPageSpecificValuesNamed(
     61             'pixels_rasterized_with_non_solid_color')
     62     self.assertEquals(len(pixels_rasterized_with_non_solid_color), 1)
     63     self.assertGreater(
     64         pixels_rasterized_with_non_solid_color[0].GetRepresentativeNumber(), 0)
     65 
     66     pixels_rasterized_as_opaque = \
     67         results.FindAllPageSpecificValuesNamed('pixels_rasterized_as_opaque')
     68     self.assertEquals(len(pixels_rasterized_as_opaque), 1)
     69     self.assertGreater(
     70         pixels_rasterized_as_opaque[0].GetRepresentativeNumber(), 0)
     71 
     72     total_layers = results.FindAllPageSpecificValuesNamed('total_layers')
     73     self.assertEquals(len(total_layers), 1)
     74     self.assertGreater(total_layers[0].GetRepresentativeNumber(), 0)
     75 
     76     total_picture_layers = \
     77         results.FindAllPageSpecificValuesNamed('total_picture_layers')
     78     self.assertEquals(len(total_picture_layers), 1)
     79     self.assertGreater(total_picture_layers[0].GetRepresentativeNumber(), 0)
     80 
     81     total_picture_layers_with_no_content = \
     82         results.FindAllPageSpecificValuesNamed(
     83             'total_picture_layers_with_no_content')
     84     self.assertEquals(len(total_picture_layers_with_no_content), 1)
     85     self.assertGreater(
     86         total_picture_layers_with_no_content[0].GetRepresentativeNumber(), 0)
     87 
     88     total_picture_layers_off_screen = \
     89         results.FindAllPageSpecificValuesNamed(
     90             'total_picture_layers_off_screen')
     91     self.assertEquals(len(total_picture_layers_off_screen), 1)
     92     self.assertEqual(
     93         total_picture_layers_off_screen[0].GetRepresentativeNumber(), 0)
     94 
     95 
     96