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 5import logging 6 7from measurements import rasterize_and_record_micro 8from telemetry.core import wpr_modes 9from telemetry.page import page_test 10from telemetry.unittest import options_for_unittests 11from telemetry.unittest import page_test_test_case 12from telemetry.unittest import test 13 14 15class 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