Index: tools/perf/metrics/network_unittest.py |
diff --git a/tools/perf/metrics/network_unittest.py b/tools/perf/metrics/network_unittest.py |
deleted file mode 100644 |
index 5ae9974e5c477316f0a3857422912a2c0e2bf563..0000000000000000000000000000000000000000 |
--- a/tools/perf/metrics/network_unittest.py |
+++ /dev/null |
@@ -1,174 +0,0 @@ |
-# Copyright 2014 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-import base64 |
-import unittest |
- |
-from metrics import test_page_measurement_results |
-from metrics import network |
-from telemetry.timeline import event |
- |
- |
-HTML_BODY = """<!DOCTYPE HTML> |
- <html> |
- <head> </head> |
- <body> |
- <div id="test"> TEST HTML</div> |
- </body> |
- </html>""" |
-IMAGE_BODY = """fake image data""" |
-GZIPPED_HTML_LEN = network.HTTPResponse.GetGizppedBodyLength(HTML_BODY) |
-# Make up original content length for the image. |
-IMAGE_OCL = 3 * len(IMAGE_BODY) |
- |
- |
-class NetworkMetricTest(unittest.TestCase): |
- @staticmethod |
- def MakeNetworkTimelineEvent( |
- url, response_headers, body=None, base64_encoded_body=False, |
- served_from_cache=False, request_headers=None, status=200): |
- if not request_headers: |
- request_headers = {} |
- e = event.TimelineEvent('network', 'HTTPResponse', 0, 0) |
- e.args = {} |
- e.args['requestId'] = 0 |
- e.args['response'] = { |
- 'status': status, |
- 'url': url, |
- 'headers': response_headers, |
- 'requestHeaders': request_headers, |
- } |
- e.args['body'] = body |
- e.args['base64_encoded_body'] = base64_encoded_body |
- e.args['served_from_cache'] = served_from_cache |
- return e |
- |
- def testHTTPResponse(self): |
- url = 'http://test.url' |
- self.assertLess(GZIPPED_HTML_LEN, len(HTML_BODY)) |
- |
- # A plain text HTML response |
- resp = network.HTTPResponse(self.MakeNetworkTimelineEvent( |
- url=url, |
- response_headers={ |
- 'Content-Type': 'text/html', |
- 'Content-Length': str(len(HTML_BODY)), |
- }, |
- body=HTML_BODY)) |
- self.assertEqual(url, resp.response.url) |
- body, base64_encoded = resp.response.GetBody() |
- self.assertEqual(HTML_BODY, body) |
- self.assertFalse(base64_encoded) |
- self.assertEqual('text/html', resp.response.GetHeader('Content-Type')) |
- |
- self.assertEqual(len(HTML_BODY), resp.content_length) |
- self.assertEqual(None, resp.response.GetHeader('Content-Encoding')) |
- self.assertFalse(resp.has_original_content_length) |
- self.assertEqual(0.0, resp.data_saving_rate) |
- |
- # A gzipped HTML response |
- resp = network.HTTPResponse(self.MakeNetworkTimelineEvent( |
- url=url, |
- response_headers={ |
- 'Content-Type': 'text/html', |
- 'Content-Encoding': 'gzip', |
- 'X-Original-Content-Length': str(len(HTML_BODY)), |
- }, |
- body=HTML_BODY)) |
- body, base64_encoded = resp.response.GetBody() |
- self.assertFalse(base64_encoded) |
- self.assertEqual(GZIPPED_HTML_LEN, resp.content_length) |
- self.assertEqual('gzip', resp.response.GetHeader('Content-Encoding')) |
- self.assertTrue(resp.has_original_content_length) |
- self.assertEqual(len(HTML_BODY), resp.original_content_length) |
- self.assertEqual( |
- float(len(HTML_BODY) - GZIPPED_HTML_LEN) / len(HTML_BODY), |
- resp.data_saving_rate) |
- |
- # A JPEG image response. |
- resp = network.HTTPResponse(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)) |
- body, base64_encoded = resp.response.GetBody() |
- self.assertTrue(base64_encoded) |
- self.assertEqual(IMAGE_BODY, base64.b64decode(body)) |
- self.assertEqual(len(IMAGE_BODY), resp.content_length) |
- self.assertTrue(resp.has_original_content_length) |
- self.assertEqual(IMAGE_OCL, resp.original_content_length) |
- self.assertFalse(resp.response.served_from_cache) |
- self.assertEqual(float(IMAGE_OCL - len(IMAGE_BODY)) / IMAGE_OCL, |
- resp.data_saving_rate) |
- |
- # A JPEG image response from cache. |
- resp = network.HTTPResponse(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, |
- served_from_cache=True)) |
- self.assertEqual(len(IMAGE_BODY), resp.content_length) |
- self.assertTrue(resp.has_original_content_length) |
- self.assertEqual(IMAGE_OCL, resp.original_content_length) |
- # Cached resource has zero saving. |
- self.assertTrue(resp.response.served_from_cache) |
- self.assertEqual(0.0, resp.data_saving_rate) |
- |
- 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) |