def testNetworkMetricResults(self): events = [ # A plain text HTML. self.MakeNetworkTimelineEvent(url='http://test.html1', response_headers={ 'Content-Type': 'text/html', 'Content-Length': str(len(HTML_BODY)), }, body=HTML_BODY), # A compressed HTML. self.MakeNetworkTimelineEvent(url='http://test.html2', response_headers={ 'Content-Type': 'text/html', 'Content-Encoding': 'gzip', 'X-Original-Content-Length': str(len(HTML_BODY)), }, body=HTML_BODY), # A base64 encoded image. self.MakeNetworkTimelineEvent(url='http://test.image', response_headers={ 'Content-Type': 'image/jpeg', 'Content-Encoding': 'gzip', 'X-Original-Content-Length': str(IMAGE_OCL), }, body=base64.b64encode(IMAGE_BODY), base64_encoded_body=True), ] metric = network.NetworkMetric() metric._events = events metric.compute_data_saving = True self.assertTrue(len(events), len(list(metric.IterResponses(None)))) results = test_page_measurement_results.TestPageMeasurementResults( self) metric.AddResults(None, results) cl = len(HTML_BODY) + GZIPPED_HTML_LEN + len(IMAGE_BODY) results.AssertHasPageSpecificScalarValue('content_length', 'bytes', cl) ocl = len(HTML_BODY) + len(HTML_BODY) + IMAGE_OCL results.AssertHasPageSpecificScalarValue('original_content_length', 'bytes', ocl) saving_percent = float(ocl - cl) * 100 / ocl results.AssertHasPageSpecificScalarValue('data_saving', 'percent', saving_percent)
def WillStartBrowser(self, platform): self._power_metric = power.PowerMetric(platform) self._network_metric = network.NetworkMetric(platform)