summaryrefslogtreecommitdiffstats
path: root/tools/chrome_proxy/integration_tests/chrome_proxy_metrics_unittest.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/chrome_proxy/integration_tests/chrome_proxy_metrics_unittest.py')
-rw-r--r--tools/chrome_proxy/integration_tests/chrome_proxy_metrics_unittest.py105
1 files changed, 25 insertions, 80 deletions
diff --git a/tools/chrome_proxy/integration_tests/chrome_proxy_metrics_unittest.py b/tools/chrome_proxy/integration_tests/chrome_proxy_metrics_unittest.py
index b18ef5e..0f61619 100644
--- a/tools/chrome_proxy/integration_tests/chrome_proxy_metrics_unittest.py
+++ b/tools/chrome_proxy/integration_tests/chrome_proxy_metrics_unittest.py
@@ -5,8 +5,9 @@
import base64
import unittest
+from common import chrome_proxy_metrics as common_metrics
+from common import network_metrics_unittest as network_unittest
from integration_tests import chrome_proxy_metrics as metrics
-from integration_tests import network_metrics_unittest as network_unittest
from telemetry.unittest_util import test_page_test_results
TEST_EXTRA_VIA_HEADER = '1.1 EXTRA_VIA_HEADER'
@@ -29,7 +30,7 @@ EVENT_HTML_PROXY_VIA = (
'Content-Type': 'text/html',
'Content-Encoding': 'gzip',
'X-Original-Content-Length': str(len(network_unittest.HTML_BODY)),
- 'Via': '1.1 ' + metrics.CHROME_PROXY_VIA_HEADER,
+ 'Via': '1.1 ' + common_metrics.CHROME_PROXY_VIA_HEADER,
},
body=network_unittest.HTML_BODY,
remote_port=443))
@@ -42,7 +43,7 @@ EVENT_HTML_PROXY_EXTRA_VIA = (
'Content-Type': 'text/html',
'Content-Encoding': 'gzip',
'X-Original-Content-Length': str(len(network_unittest.HTML_BODY)),
- 'Via': '1.1 ' + metrics.CHROME_PROXY_VIA_HEADER + ", " +
+ 'Via': '1.1 ' + common_metrics.CHROME_PROXY_VIA_HEADER + ", " +
TEST_EXTRA_VIA_HEADER,
},
body=network_unittest.HTML_BODY,
@@ -56,7 +57,7 @@ EVENT_HTML_PROXY_VIA_HTTP_FALLBACK = (
'Content-Type': 'text/html',
'Content-Encoding': 'gzip',
'X-Original-Content-Length': str(len(network_unittest.HTML_BODY)),
- 'Via': '1.1 ' + metrics.CHROME_PROXY_VIA_HEADER,
+ 'Via': '1.1 ' + common_metrics.CHROME_PROXY_VIA_HEADER,
},
body=network_unittest.HTML_BODY,
remote_port=80))
@@ -69,7 +70,7 @@ EVENT_IMAGE_PROXY_VIA = (
'Content-Type': 'image/jpeg',
'Content-Encoding': 'gzip',
'X-Original-Content-Length': str(network_unittest.IMAGE_OCL),
- 'Via': '1.1 ' + metrics.CHROME_PROXY_VIA_HEADER,
+ 'Via': '1.1 ' + common_metrics.CHROME_PROXY_VIA_HEADER,
},
body=base64.b64encode(network_unittest.IMAGE_BODY),
base64_encoded_body=True,
@@ -83,7 +84,7 @@ EVENT_IMAGE_PROXY_VIA_HTTP_FALLBACK = (
'Content-Type': 'image/jpeg',
'Content-Encoding': 'gzip',
'X-Original-Content-Length': str(network_unittest.IMAGE_OCL),
- 'Via': '1.1 ' + metrics.CHROME_PROXY_VIA_HEADER,
+ 'Via': '1.1 ' + common_metrics.CHROME_PROXY_VIA_HEADER,
},
body=base64.b64encode(network_unittest.IMAGE_BODY),
base64_encoded_body=True,
@@ -97,7 +98,7 @@ EVENT_IMAGE_PROXY_CACHED = (
'Content-Type': 'image/jpeg',
'Content-Encoding': 'gzip',
'X-Original-Content-Length': str(network_unittest.IMAGE_OCL),
- 'Via': '1.1 ' + metrics.CHROME_PROXY_VIA_HEADER,
+ 'Via': '1.1 ' + common_metrics.CHROME_PROXY_VIA_HEADER,
},
body=base64.b64encode(network_unittest.IMAGE_BODY),
base64_encoded_body=True,
@@ -120,7 +121,7 @@ EVENT_MALWARE_PROXY = (
url='http://test.malware',
response_headers={
'X-Malware-Url': '1',
- 'Via': '1.1 ' + metrics.CHROME_PROXY_VIA_HEADER,
+ 'Via': '1.1 ' + common_metrics.CHROME_PROXY_VIA_HEADER,
'Location': 'http://test.malware',
},
status=307))
@@ -132,7 +133,7 @@ EVENT_IMAGE_BYPASS = (
response_headers={
'Chrome-Proxy': 'bypass=1',
'Content-Type': 'text/html',
- 'Via': '1.1 ' + metrics.CHROME_PROXY_VIA_HEADER,
+ 'Via': '1.1 ' + common_metrics.CHROME_PROXY_VIA_HEADER,
},
status=502))
@@ -158,63 +159,6 @@ class ChromeProxyMetricTest(unittest.TestCase):
metrics.GetProxyInfoFromNetworkInternals = stub
ChromeProxyMetricTest._test_proxy_info = info
- def testChromeProxyResponse(self):
- # An https non-proxy response.
- resp = metrics.ChromeProxyResponse(
- network_unittest.NetworkMetricTest.MakeNetworkTimelineEvent(
- url='https://test.url',
- response_headers={
- 'Content-Type': 'text/html',
- 'Content-Length': str(len(network_unittest.HTML_BODY)),
- 'Via': 'some other via',
- },
- body=network_unittest.HTML_BODY))
- self.assertFalse(resp.ShouldHaveChromeProxyViaHeader())
- self.assertFalse(resp.HasChromeProxyViaHeader())
- self.assertTrue(resp.IsValidByViaHeader())
-
- # A proxied JPEG image response
- resp = metrics.ChromeProxyResponse(
- network_unittest.NetworkMetricTest.MakeNetworkTimelineEvent(
- url='http://test.image',
- response_headers={
- 'Content-Type': 'image/jpeg',
- 'Content-Encoding': 'gzip',
- 'Via': '1.1 ' + metrics.CHROME_PROXY_VIA_HEADER,
- 'X-Original-Content-Length': str(network_unittest.IMAGE_OCL),
- },
- body=base64.b64encode(network_unittest.IMAGE_BODY),
- base64_encoded_body=True))
- self.assertTrue(resp.ShouldHaveChromeProxyViaHeader())
- self.assertTrue(resp.HasChromeProxyViaHeader())
- self.assertTrue(resp.IsValidByViaHeader())
-
- def testChromeProxyMetricForDataSaving(self):
- metric = metrics.ChromeProxyMetric()
- events = [
- EVENT_HTML_DIRECT,
- EVENT_HTML_PROXY_VIA,
- EVENT_IMAGE_PROXY_CACHED,
- EVENT_IMAGE_DIRECT]
- metric.SetEvents(events)
-
- self.assertTrue(len(events), len(list(metric.IterResponses(None))))
- results = test_page_test_results.TestPageTestResults(self)
-
- metric.AddResultsForDataSaving(None, results)
- results.AssertHasPageSpecificScalarValue('resources_via_proxy', 'count', 2)
- results.AssertHasPageSpecificScalarValue('resources_from_cache', 'count', 1)
- results.AssertHasPageSpecificScalarValue('resources_direct', 'count', 2)
-
- # Passing in zero responses should cause a failure.
- metric.SetEvents([])
- no_responses_exception = False
- try:
- metric.AddResultsForDataSaving(None, results)
- except metrics.ChromeProxyMetricException:
- no_responses_exception = True
- self.assertTrue(no_responses_exception)
-
def testChromeProxyMetricForHeaderValidation(self):
metric = metrics.ChromeProxyMetric()
metric.SetEvents([
@@ -228,7 +172,7 @@ class ChromeProxyMetricTest(unittest.TestCase):
missing_via_exception = False
try:
metric.AddResultsForHeaderValidation(None, results)
- except metrics.ChromeProxyMetricException:
+ except common_metrics.ChromeProxyMetricException:
missing_via_exception = True
# Only the HTTP image response does not have a valid Via header.
self.assertTrue(missing_via_exception)
@@ -245,7 +189,7 @@ class ChromeProxyMetricTest(unittest.TestCase):
no_responses_exception = False
try:
metric.AddResultsForHeaderValidation(None, results)
- except metrics.ChromeProxyMetricException:
+ except common_metrics.ChromeProxyMetricException:
no_responses_exception = True
self.assertTrue(no_responses_exception)
@@ -263,7 +207,7 @@ class ChromeProxyMetricTest(unittest.TestCase):
exception_occurred = False
try:
metric.AddResultsForExtraViaHeader(None, results, TEST_EXTRA_VIA_HEADER)
- except metrics.ChromeProxyMetricException:
+ except common_metrics.ChromeProxyMetricException:
exception_occurred = True
# The response had the chrome proxy via header, but not the extra expected
# via header.
@@ -281,7 +225,7 @@ class ChromeProxyMetricTest(unittest.TestCase):
bypass_exception = False
try:
metric.AddResultsForBypass(None, results)
- except metrics.ChromeProxyMetricException:
+ except common_metrics.ChromeProxyMetricException:
bypass_exception = True
# Two of the first three events have Via headers.
self.assertTrue(bypass_exception)
@@ -296,7 +240,7 @@ class ChromeProxyMetricTest(unittest.TestCase):
no_responses_exception = False
try:
metric.AddResultsForBypass(None, results)
- except metrics.ChromeProxyMetricException:
+ except common_metrics.ChromeProxyMetricException:
no_responses_exception = True
self.assertTrue(no_responses_exception)
@@ -314,7 +258,7 @@ class ChromeProxyMetricTest(unittest.TestCase):
no_responses_exception = False
try:
metric.AddResultsForCorsBypass(None, results)
- except metrics.ChromeProxyMetricException:
+ except common_metrics.ChromeProxyMetricException:
no_responses_exception = True
self.assertTrue(no_responses_exception)
@@ -332,7 +276,7 @@ class ChromeProxyMetricTest(unittest.TestCase):
exception_occurred = False
try:
metric.AddResultsForBlockOnce(None, results)
- except metrics.ChromeProxyMetricException:
+ except common_metrics.ChromeProxyMetricException:
exception_occurred = True
# The second response was over direct, but was expected via proxy.
self.assertTrue(exception_occurred)
@@ -342,7 +286,7 @@ class ChromeProxyMetricTest(unittest.TestCase):
no_responses_exception = False
try:
metric.AddResultsForBlockOnce(None, results)
- except metrics.ChromeProxyMetricException:
+ except common_metrics.ChromeProxyMetricException:
no_responses_exception = True
self.assertTrue(no_responses_exception)
@@ -375,7 +319,7 @@ class ChromeProxyMetricTest(unittest.TestCase):
exception_occurred = False
try:
metric.AddResultsForHTTPFallback(None, results)
- except metrics.ChromeProxyMetricException:
+ except common_metrics.ChromeProxyMetricException:
exception_occurred = True
# The responses came through the SPDY proxy, but were expected through the
# HTTP fallback proxy.
@@ -386,7 +330,7 @@ class ChromeProxyMetricTest(unittest.TestCase):
no_responses_exception = False
try:
metric.AddResultsForHTTPFallback(None, results)
- except metrics.ChromeProxyMetricException:
+ except common_metrics.ChromeProxyMetricException:
no_responses_exception = True
self.assertTrue(no_responses_exception)
@@ -405,7 +349,7 @@ class ChromeProxyMetricTest(unittest.TestCase):
exception_occurred = False
try:
metric.AddResultsForHTTPToDirectFallback(None, results, 'test.html2')
- except metrics.ChromeProxyMetricException:
+ except common_metrics.ChromeProxyMetricException:
exception_occurred = True
# The first response was expected through the HTTP fallback proxy.
self.assertTrue(exception_occurred)
@@ -416,7 +360,7 @@ class ChromeProxyMetricTest(unittest.TestCase):
exception_occurred = False
try:
metric.AddResultsForHTTPToDirectFallback(None, results, 'test.html2')
- except metrics.ChromeProxyMetricException:
+ except common_metrics.ChromeProxyMetricException:
exception_occurred = True
# All but the first response were expected to be over direct.
self.assertTrue(exception_occurred)
@@ -427,7 +371,7 @@ class ChromeProxyMetricTest(unittest.TestCase):
exception_occurred = False
try:
metric.AddResultsForHTTPToDirectFallback(None, results, 'test.html2')
- except metrics.ChromeProxyMetricException:
+ except common_metrics.ChromeProxyMetricException:
exception_occurred = True
# The first response was expected through the HTTP fallback proxy.
self.assertTrue(exception_occurred)
@@ -437,6 +381,7 @@ class ChromeProxyMetricTest(unittest.TestCase):
no_responses_exception = False
try:
metric.AddResultsForHTTPToDirectFallback(None, results, 'test.html2')
- except metrics.ChromeProxyMetricException:
+ except common_metrics.ChromeProxyMetricException:
no_responses_exception = True
self.assertTrue(no_responses_exception)
+