| OLD | NEW |
| 1 # Copyright 2017 The Chromium Authors. All rights reserved. | 1 # Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import common | 5 import common |
| 6 from common import TestDriver | 6 from common import TestDriver |
| 7 from common import IntegrationTest | 7 from common import IntegrationTest |
| 8 | 8 |
| 9 import time | 9 import time |
| 10 | 10 |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 'document.body.scrollHeight') | 81 'document.body.scrollHeight') |
| 82 self.assertGreater(new_scroll_height, original_scroll_height) | 82 self.assertGreater(new_scroll_height, original_scroll_height) |
| 83 | 83 |
| 84 # Make sure there were more requests that were proxied. | 84 # Make sure there were more requests that were proxied. |
| 85 responses = test_driver.GetHTTPResponses(override_has_logs=True) | 85 responses = test_driver.GetHTTPResponses(override_has_logs=True) |
| 86 self.assertNotEqual(0, len(responses)) | 86 self.assertNotEqual(0, len(responses)) |
| 87 for response in responses: | 87 for response in responses: |
| 88 self.assertHasChromeProxyViaHeader(response) | 88 self.assertHasChromeProxyViaHeader(response) |
| 89 self.assertIn(response.status, [200, 204]) | 89 self.assertIn(response.status, [200, 204]) |
| 90 | 90 |
| 91 # Checks that Lo-Fi images are used when the user is in the | 91 # Lo-Fi fallback is not currently supported via the client. Check that |
| 92 # no Lo-Fi response is received if the user is in the |
| 92 # DataCompressionProxyLitePageFallback field trial and a Lite Page is not | 93 # DataCompressionProxyLitePageFallback field trial and a Lite Page is not |
| 93 # served. | 94 # served. |
| 94 def testLitePageFallback(self): | 95 def testLitePageFallback(self): |
| 95 with TestDriver() as test_driver: | 96 with TestDriver() as test_driver: |
| 96 test_driver.AddChromeArg('--enable-spdy-proxy-auth') | 97 test_driver.AddChromeArg('--enable-spdy-proxy-auth') |
| 97 test_driver.AddChromeArg('--force-fieldtrials=' | 98 test_driver.AddChromeArg('--force-fieldtrials=' |
| 98 'DataCompressionProxyLoFi/Enabled_Preview/' | 99 'DataCompressionProxyLoFi/Enabled_Preview/' |
| 99 'DataCompressionProxyLitePageFallback/Enabled') | 100 'DataCompressionProxyLitePageFallback/Enabled') |
| 100 test_driver.AddChromeArg('--force-fieldtrial-params=' | 101 test_driver.AddChromeArg('--force-fieldtrial-params=' |
| 101 'DataCompressionProxyLoFi.Enabled_Preview:' | 102 'DataCompressionProxyLoFi.Enabled_Preview:' |
| 102 'effective_connection_type/4G') | 103 'effective_connection_type/4G') |
| 103 test_driver.AddChromeArg('--force-net-effective-connection-type=2g') | 104 test_driver.AddChromeArg('--force-net-effective-connection-type=2g') |
| 104 | 105 |
| 105 test_driver.LoadURL('http://check.googlezip.net/lite-page-fallback') | 106 test_driver.LoadURL('http://check.googlezip.net/lite-page-fallback') |
| 106 | 107 |
| 107 lite_page_requests = 0 | 108 lite_page_requests = 0 |
| 108 lo_fi_responses = 0 | 109 lo_fi_responses = 0 |
| 109 for response in test_driver.GetHTTPResponses(): | 110 for response in test_driver.GetHTTPResponses(): |
| 110 if not response.request_headers: | 111 if not response.request_headers: |
| 111 continue | 112 continue |
| 112 | 113 |
| 113 cpat_request = response.request_headers['chrome-proxy-accept-transform'] | |
| 114 if ('lite-page' in cpat_request): | |
| 115 lite_page_requests = lite_page_requests + 1 | |
| 116 self.assertFalse(self.checkLitePageResponse(response)) | |
| 117 | |
| 118 if not response.url.endswith('png'): | |
| 119 continue | |
| 120 | |
| 121 if (self.checkLoFiResponse(response, True)): | |
| 122 lo_fi_responses = lo_fi_responses + 1 | |
| 123 | |
| 124 # Verify that a Lite Page was requested and that the page fell back to | |
| 125 # Lo-Fi images. | |
| 126 self.assertEqual(1, lite_page_requests) | |
| 127 self.assertEqual(1, lo_fi_responses) | |
| 128 | |
| 129 # Checks that Lo-Fi images are not used when the user is not in the | |
| 130 # DataCompressionProxyLitePageFallback field trial and a Lite Page is not | |
| 131 # served. | |
| 132 def testLitePageNoFallback(self): | |
| 133 with TestDriver() as test_driver: | |
| 134 test_driver.AddChromeArg('--enable-spdy-proxy-auth') | |
| 135 # Lite Pages must be enabled via the field trial because the Lite Page | |
| 136 # flag always falls back to Lo-Fi. | |
| 137 test_driver.AddChromeArg('--force-fieldtrials=' | |
| 138 'DataCompressionProxyLoFi/Enabled_Preview') | |
| 139 test_driver.AddChromeArg('--force-fieldtrial-params=' | |
| 140 'DataCompressionProxyLoFi.Enabled_Preview:' | |
| 141 'effective_connection_type/4G') | |
| 142 test_driver.AddChromeArg('--force-net-effective-connection-type=2g') | |
| 143 | |
| 144 test_driver.LoadURL('http://check.googlezip.net/lite-page-fallback') | |
| 145 | |
| 146 lite_page_requests = 0 | |
| 147 for response in test_driver.GetHTTPResponses(): | |
| 148 if not response.request_headers: | |
| 149 continue | |
| 150 | |
| 151 if ('chrome-proxy-accept-transform' in response.request_headers): | 114 if ('chrome-proxy-accept-transform' in response.request_headers): |
| 152 cpat_request = response.request_headers[ | 115 cpat_request = response.request_headers[ |
| 153 'chrome-proxy-accept-transform'] | 116 'chrome-proxy-accept-transform'] |
| 154 if ('lite-page' in cpat_request): | 117 if ('lite-page' in cpat_request): |
| 155 lite_page_requests = lite_page_requests + 1 | 118 lite_page_requests = lite_page_requests + 1 |
| 156 self.assertFalse(self.checkLitePageResponse(response)) | 119 self.assertFalse(self.checkLitePageResponse(response)) |
| 157 | 120 |
| 158 if not response.url.endswith('png'): | 121 if not response.url.endswith('png'): |
| 159 continue | 122 continue |
| 160 | 123 |
| 124 # Lo-Fi fallback is not currently supported via the client. Check that |
| 125 # no Lo-Fi response is received. |
| 161 self.checkLoFiResponse(response, False) | 126 self.checkLoFiResponse(response, False) |
| 162 | 127 |
| 163 # Verify that a Lite Page was requested and that the page fell back to | 128 # Verify that a Lite Page was requested. |
| 164 # Lo-Fi images. | |
| 165 self.assertEqual(1, lite_page_requests) | 129 self.assertEqual(1, lite_page_requests) |
| 166 | 130 |
| 167 if __name__ == '__main__': | 131 if __name__ == '__main__': |
| 168 IntegrationTest.RunAllTests() | 132 IntegrationTest.RunAllTests() |
| OLD | NEW |