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

Side by Side Diff: tools/android/loading/request_track_unittest.py

Issue 1633813005: tools/android/loading: Add support for multiple redirects. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 11 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
OLDNEW
1 # Copyright 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 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 copy 5 import copy
6 import json 6 import json
7 import unittest 7 import unittest
8 8
9 from request_track import (Request, RequestTrack, TimingFromDict) 9 from request_track import (Request, RequestTrack, TimingFromDict)
10 10
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 188
189 def testHandleRedirect(self): 189 def testHandleRedirect(self):
190 self.request_track.Handle('Network.requestWillBeSent', 190 self.request_track.Handle('Network.requestWillBeSent',
191 RequestTrackTestCase._REQUEST_WILL_BE_SENT) 191 RequestTrackTestCase._REQUEST_WILL_BE_SENT)
192 self.request_track.Handle('Network.requestWillBeSent', 192 self.request_track.Handle('Network.requestWillBeSent',
193 RequestTrackTestCase._REDIRECT) 193 RequestTrackTestCase._REDIRECT)
194 self.assertEquals(1, len(self.request_track._requests_in_flight)) 194 self.assertEquals(1, len(self.request_track._requests_in_flight))
195 self.assertEquals(1, len(self.request_track.GetEvents())) 195 self.assertEquals(1, len(self.request_track.GetEvents()))
196 redirect_request = self.request_track.GetEvents()[0] 196 redirect_request = self.request_track.GetEvents()[0]
197 self.assertTrue(redirect_request.request_id.endswith( 197 self.assertTrue(redirect_request.request_id.endswith(
198 RequestTrack.REDIRECT_SUFFIX)) 198 RequestTrack._REDIRECT_SUFFIX + '.1'))
199 request = self.request_track._requests_in_flight.values()[0][0]
200 self.assertEquals('redirect', request.initiator['type'])
201 self.assertEquals(
202 redirect_request.request_id,
203 request.initiator[Request.INITIATING_REQUEST])
204 self.assertEquals(0, self.request_track.inconsistent_initiators_count)
205
206 def testMultipleRedirects(self):
207 self.request_track.Handle('Network.requestWillBeSent',
208 RequestTrackTestCase._REQUEST_WILL_BE_SENT)
209 self.request_track.Handle('Network.requestWillBeSent',
210 RequestTrackTestCase._REDIRECT)
211 self.request_track.Handle('Network.requestWillBeSent',
212 RequestTrackTestCase._REDIRECT)
213 self.assertEquals(1, len(self.request_track._requests_in_flight))
214 self.assertEquals(2, len(self.request_track.GetEvents()))
215 first_redirect_request = self.request_track.GetEvents()[0]
216 self.assertTrue(first_redirect_request.request_id.endswith(
217 RequestTrack._REDIRECT_SUFFIX + '.1'))
218 second_redirect_request = self.request_track.GetEvents()[1]
219 self.assertTrue(second_redirect_request.request_id.endswith(
220 RequestTrack._REDIRECT_SUFFIX + '.2'))
221 self.assertEquals('redirect', second_redirect_request.initiator['type'])
222 self.assertEquals(
223 first_redirect_request.request_id,
224 second_redirect_request.initiator[Request.INITIATING_REQUEST])
225 request = self.request_track._requests_in_flight.values()[0][0]
226 self.assertEquals('redirect', request.initiator['type'])
227 self.assertEquals(
228 second_redirect_request.request_id,
229 request.initiator[Request.INITIATING_REQUEST])
230 self.assertEquals(0, self.request_track.inconsistent_initiators_count)
231
232 def testInconsistentInitiators(self):
233 self.request_track.Handle('Network.requestWillBeSent',
234 RequestTrackTestCase._REQUEST_WILL_BE_SENT)
235 request = copy.deepcopy(RequestTrackTestCase._REDIRECT)
236 request['params']['initiator']['type'] = 'script'
237 self.request_track.Handle('Network.requestWillBeSent', request)
238 self.assertEquals(1, self.request_track.inconsistent_initiators_count)
199 239
200 def testRejectDuplicates(self): 240 def testRejectDuplicates(self):
201 msg = RequestTrackTestCase._REQUEST_WILL_BE_SENT 241 msg = RequestTrackTestCase._REQUEST_WILL_BE_SENT
202 self.request_track.Handle('Network.requestWillBeSent', msg) 242 self.request_track.Handle('Network.requestWillBeSent', msg)
203 with self.assertRaises(AssertionError): 243 with self.assertRaises(AssertionError):
204 self.request_track.Handle('Network.requestWillBeSent', msg) 244 self.request_track.Handle('Network.requestWillBeSent', msg)
205 245
206 def testInvalidSequence(self): 246 def testInvalidSequence(self):
207 msg1 = RequestTrackTestCase._REQUEST_WILL_BE_SENT 247 msg1 = RequestTrackTestCase._REQUEST_WILL_BE_SENT
208 msg2 = RequestTrackTestCase._LOADING_FINISHED 248 msg2 = RequestTrackTestCase._LOADING_FINISHED
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 self.request_track.Handle('Network.responseReceived', msg2_different) 314 self.request_track.Handle('Network.responseReceived', msg2_different)
275 315
276 def testCanSerialize(self): 316 def testCanSerialize(self):
277 self._ValidSequence(self.request_track) 317 self._ValidSequence(self.request_track)
278 json_dict = self.request_track.ToJsonDict() 318 json_dict = self.request_track.ToJsonDict()
279 _ = json.dumps(json_dict) # Should not raise an exception. 319 _ = json.dumps(json_dict) # Should not raise an exception.
280 320
281 def testCanDeserialize(self): 321 def testCanDeserialize(self):
282 self._ValidSequence(self.request_track) 322 self._ValidSequence(self.request_track)
283 self.request_track.duplicates_count = 142 323 self.request_track.duplicates_count = 142
324 self.request_track.inconsistent_initiators_count = 123
284 json_dict = self.request_track.ToJsonDict() 325 json_dict = self.request_track.ToJsonDict()
285 request_track = RequestTrack.FromJsonDict(json_dict) 326 request_track = RequestTrack.FromJsonDict(json_dict)
286 self.assertEquals(self.request_track, request_track) 327 self.assertEquals(self.request_track, request_track)
287 328
288 def testMaxAge(self): 329 def testMaxAge(self):
289 rq = Request() 330 rq = Request()
290 self.assertEqual(-1, rq.MaxAge()) 331 self.assertEqual(-1, rq.MaxAge())
291 rq.response_headers = {} 332 rq.response_headers = {}
292 self.assertEqual(-1, rq.MaxAge()) 333 self.assertEqual(-1, rq.MaxAge())
293 rq.response_headers[ 334 rq.response_headers[
(...skipping 10 matching lines...) Expand all
304 def _ValidSequence(cls, request_track): 345 def _ValidSequence(cls, request_track):
305 request_track.Handle( 346 request_track.Handle(
306 'Network.requestWillBeSent', cls._REQUEST_WILL_BE_SENT) 347 'Network.requestWillBeSent', cls._REQUEST_WILL_BE_SENT)
307 request_track.Handle('Network.responseReceived', cls._RESPONSE_RECEIVED) 348 request_track.Handle('Network.responseReceived', cls._RESPONSE_RECEIVED)
308 request_track.Handle('Network.dataReceived', cls._DATA_RECEIVED_1) 349 request_track.Handle('Network.dataReceived', cls._DATA_RECEIVED_1)
309 request_track.Handle('Network.dataReceived', cls._DATA_RECEIVED_2) 350 request_track.Handle('Network.dataReceived', cls._DATA_RECEIVED_2)
310 request_track.Handle('Network.loadingFinished', cls._LOADING_FINISHED) 351 request_track.Handle('Network.loadingFinished', cls._LOADING_FINISHED)
311 352
312 if __name__ == '__main__': 353 if __name__ == '__main__':
313 unittest.main() 354 unittest.main()
OLDNEW
« tools/android/loading/request_track.py ('K') | « tools/android/loading/request_track.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698