Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(170)

Side by Side Diff: tools/chrome_proxy/webdriver/lofi.py

Issue 2941103002: Adds lite page integration test (ignoring country blacklist). (Closed)
Patch Set: Renames two triggering tests to be less specific wrt actual previews server selects. Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/chrome_proxy/webdriver/lite_page.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 from decorators import ChromeVersionBeforeM 8 from decorators import ChromeVersionBeforeM
9 9 from decorators import ChromeVersionEqualOrAfterM
10 10
11 class LoFi(IntegrationTest): 11 class LoFi(IntegrationTest):
12 12
13 # Checks that the compressed image is below a certain threshold. 13 # Checks that the compressed image is below a certain threshold.
14 # The test page is uncacheable otherwise a cached page may be served that 14 # The test page is uncacheable otherwise a cached page may be served that
15 # doesn't have the correct via headers. 15 # doesn't have the correct via headers.
16 def testLoFi(self): 16 def testLoFi(self):
17 with TestDriver() as test_driver: 17 with TestDriver() as test_driver:
18 test_driver.AddChromeArg('--enable-spdy-proxy-auth') 18 test_driver.AddChromeArg('--enable-spdy-proxy-auth')
19 test_driver.AddChromeArg('--data-reduction-proxy-lo-fi=always-on') 19 test_driver.AddChromeArg('--data-reduction-proxy-lo-fi=always-on')
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 continue 178 continue
179 responses = responses + 1 179 responses = responses + 1
180 self.assertHasChromeProxyViaHeader(response) 180 self.assertHasChromeProxyViaHeader(response)
181 self.checkLoFiResponse(response, False) 181 self.checkLoFiResponse(response, False)
182 182
183 # Verify that responses were seen. 183 # Verify that responses were seen.
184 self.assertNotEqual(0, responses) 184 self.assertNotEqual(0, responses)
185 185
186 # Checks that LoFi images are served and the force empty image experiment 186 # Checks that LoFi images are served and the force empty image experiment
187 # directive is provided when LoFi is always-on without Lite Pages enabled. 187 # directive is provided when LoFi is always-on without Lite Pages enabled.
188 @ChromeVersionEqualOrAfterM(61)
188 def testLoFiForcedExperiment(self): 189 def testLoFiForcedExperiment(self):
189 # If it was attempted to run with another experiment, skip this test. 190 # If it was attempted to run with another experiment, skip this test.
190 if common.ParseFlags().browser_args and ('--data-reduction-proxy-experiment' 191 if common.ParseFlags().browser_args and ('--data-reduction-proxy-experiment'
191 in common.ParseFlags().browser_args): 192 in common.ParseFlags().browser_args):
192 self.skipTest('This test cannot be run with other experiments.') 193 self.skipTest('This test cannot be run with other experiments.')
193 with TestDriver() as test_driver: 194 with TestDriver() as test_driver:
194 test_driver.AddChromeArg('--enable-spdy-proxy-auth') 195 test_driver.AddChromeArg('--enable-spdy-proxy-auth')
195 test_driver.AddChromeArg('--data-reduction-proxy-lo-fi=always-on') 196 test_driver.AddChromeArg('--data-reduction-proxy-lo-fi=always-on')
197 test_driver.AddChromeArg('--enable-features='
198 'DataReductionProxyDecidesTransform')
199
200 # Ensure fast network (4G) to ensure force flag ignores ECT.
201 test_driver.AddChromeArg('--force-fieldtrial-params='
202 'NetworkQualityEstimator.Enabled:'
203 'force_effective_connection_type/4G')
204 test_driver.AddChromeArg('--force-fieldtrials=NetworkQualityEstimator/'
205 'Enabled')
196 206
197 test_driver.LoadURL('http://check.googlezip.net/static/index.html') 207 test_driver.LoadURL('http://check.googlezip.net/static/index.html')
198 208
199 lofi_responses = 0 209 lofi_responses = 0
200 for response in test_driver.GetHTTPResponses(): 210 for response in test_driver.GetHTTPResponses():
201 self.assertIn('exp=force_page_policies_empty_image', 211 self.assertIn('exp=force_page_policies_empty_image',
202 response.request_headers['chrome-proxy']) 212 response.request_headers['chrome-proxy'])
203 if response.url.endswith('html'): 213 if response.url.endswith('html'):
204 # TODO(dougarnett): Check page-policies response when server supports 214 # Verify that the server provides the fallback directive
215 self.assertIn('chrome-proxy', response.response_headers)
216 self.assertIn('page-policies=empty-image',
217 response.response_headers['chrome-proxy'])
205 continue 218 continue
206 if response.url.endswith('png'): 219 if response.url.endswith('png'):
207 # TODO(dougarnett): Set 4G ECT when server supports force empty image
208 self.checkLoFiResponse(response, True) 220 self.checkLoFiResponse(response, True)
209 lofi_responses = lofi_responses + 1 221 lofi_responses = lofi_responses + 1
210 222
211 # Verify that Lo-Fi responses were seen. 223 # Verify that Lo-Fi responses were seen.
212 self.assertNotEqual(0, lofi_responses) 224 self.assertNotEqual(0, lofi_responses)
213 225
214 # Checks that Client LoFi resource requests have the Intervention header 226 # Checks that Client LoFi resource requests have the Intervention header
215 # (in case page has https images that may not be fully loaded). 227 # (in case page has https images that may not be fully loaded).
228 @ChromeVersionEqualOrAfterM(61)
216 def testClientLoFiInterventionHeader(self): 229 def testClientLoFiInterventionHeader(self):
217 with TestDriver() as test_driver: 230 with TestDriver() as test_driver:
218 test_driver.AddChromeArg('--enable-spdy-proxy-auth') 231 test_driver.AddChromeArg('--enable-spdy-proxy-auth')
219 test_driver.AddChromeArg('--force-fieldtrials=' 232 test_driver.AddChromeArg('--force-fieldtrials='
220 'PreviewsClientLoFi/Enabled') 233 'PreviewsClientLoFi/Enabled')
221 test_driver.AddChromeArg('--force-fieldtrial-params=' 234 test_driver.AddChromeArg('--force-fieldtrial-params='
222 'PreviewsClientLoFi.Enabled:' 235 'PreviewsClientLoFi.Enabled:'
223 'max_allowed_effective_connection_type/4G') 236 'max_allowed_effective_connection_type/4G')
224 237
225 test_driver.LoadURL('http://check.googlezip.net/static/index.html') 238 test_driver.LoadURL('http://check.googlezip.net/static/index.html')
226 239
227 intervention_headers = 0 240 intervention_headers = 0
228 for response in test_driver.GetHTTPResponses(): 241 for response in test_driver.GetHTTPResponses():
229 if not response.url.endswith('html'): 242 if not response.url.endswith('html'):
230 self.assertIn('intervention', response.request_headers) 243 self.assertIn('intervention', response.request_headers)
231 intervention_headers = intervention_headers + 1 244 intervention_headers = intervention_headers + 1
232 245
233 self.assertNotEqual(0, intervention_headers) 246 self.assertNotEqual(0, intervention_headers)
234 247
235 if __name__ == '__main__': 248 if __name__ == '__main__':
236 IntegrationTest.RunAllTests() 249 IntegrationTest.RunAllTests()
OLDNEW
« no previous file with comments | « tools/chrome_proxy/webdriver/lite_page.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698