OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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() |
OLD | NEW |