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 sys | 7 import sys |
8 import unittest | 8 import unittest |
9 | 9 |
10 from request_track import (TimeBetween, Request, CachingPolicy, RequestTrack, | 10 from request_track import (TimeBetween, Request, CachingPolicy, RequestTrack, |
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
393 "encodedDataLength": 1326, | 393 "encodedDataLength": 1326, |
394 "requestId": "32493.1", | 394 "requestId": "32493.1", |
395 "timestamp": 5571441.867347}} | 395 "timestamp": 5571441.867347}} |
396 _DATA_RECEIVED_2 = { | 396 _DATA_RECEIVED_2 = { |
397 "method": "Network.dataReceived", | 397 "method": "Network.dataReceived", |
398 "params": { | 398 "params": { |
399 "dataLength": 32768, | 399 "dataLength": 32768, |
400 "encodedDataLength": 32768, | 400 "encodedDataLength": 32768, |
401 "requestId": "32493.1", | 401 "requestId": "32493.1", |
402 "timestamp": 5571441.893121}} | 402 "timestamp": 5571441.893121}} |
| 403 _SERVED_FROM_CACHE = { |
| 404 "method": "Network.requestServedFromCache", |
| 405 "params": { |
| 406 "requestId": "32493.1"}} |
403 _LOADING_FINISHED = {'method': 'Network.loadingFinished', | 407 _LOADING_FINISHED = {'method': 'Network.loadingFinished', |
404 'params': { | 408 'params': { |
405 'encodedDataLength': 101829, | 409 'encodedDataLength': 101829, |
406 'requestId': '32493.1', | 410 'requestId': '32493.1', |
407 'timestamp': 5571441.891189}} | 411 'timestamp': 5571441.891189}} |
| 412 _LOADING_FAILED = {'method': 'Network.loadingFailed', |
| 413 'params': { |
| 414 'canceled': False, |
| 415 'blockedReason': None, |
| 416 'encodedDataLength': 101829, |
| 417 'errorText': 'net::ERR_TOO_MANY_REDIRECTS', |
| 418 'requestId': '32493.1', |
| 419 'timestamp': 5571441.891189, |
| 420 'type': 'Document'}} |
408 | 421 |
409 def setUp(self): | 422 def setUp(self): |
410 self.request_track = RequestTrack(None) | 423 self.request_track = RequestTrack(None) |
411 | 424 |
412 def testParseRequestWillBeSent(self): | 425 def testParseRequestWillBeSent(self): |
413 msg = RequestTrackTestCase._REQUEST_WILL_BE_SENT | 426 msg = RequestTrackTestCase._REQUEST_WILL_BE_SENT |
414 request_id = msg['params']['requestId'] | 427 request_id = msg['params']['requestId'] |
415 self.request_track.Handle('Network.requestWillBeSent', msg) | 428 self.request_track.Handle('Network.requestWillBeSent', msg) |
416 self.assertTrue(request_id in self.request_track._requests_in_flight) | 429 self.assertTrue(request_id in self.request_track._requests_in_flight) |
417 (_, status) = self.request_track._requests_in_flight[request_id] | 430 (_, status) = self.request_track._requests_in_flight[request_id] |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
472 request['params']['initiator']['type'] = 'script' | 485 request['params']['initiator']['type'] = 'script' |
473 self.request_track.Handle('Network.requestWillBeSent', request) | 486 self.request_track.Handle('Network.requestWillBeSent', request) |
474 self.assertEquals(1, self.request_track.inconsistent_initiators_count) | 487 self.assertEquals(1, self.request_track.inconsistent_initiators_count) |
475 | 488 |
476 def testRejectDuplicates(self): | 489 def testRejectDuplicates(self): |
477 msg = RequestTrackTestCase._REQUEST_WILL_BE_SENT | 490 msg = RequestTrackTestCase._REQUEST_WILL_BE_SENT |
478 self.request_track.Handle('Network.requestWillBeSent', msg) | 491 self.request_track.Handle('Network.requestWillBeSent', msg) |
479 with self.assertRaises(AssertionError): | 492 with self.assertRaises(AssertionError): |
480 self.request_track.Handle('Network.requestWillBeSent', msg) | 493 self.request_track.Handle('Network.requestWillBeSent', msg) |
481 | 494 |
| 495 def testSequenceOfGeneratedResponse(self): |
| 496 self.request_track.Handle('Network.requestServedFromCache', |
| 497 RequestTrackTestCase._SERVED_FROM_CACHE) |
| 498 self.request_track.Handle('Network.loadingFinished', |
| 499 RequestTrackTestCase._LOADING_FINISHED) |
| 500 self.assertEquals(0, len(self.request_track.GetEvents())) |
| 501 |
482 def testInvalidSequence(self): | 502 def testInvalidSequence(self): |
483 msg1 = RequestTrackTestCase._REQUEST_WILL_BE_SENT | 503 msg1 = RequestTrackTestCase._REQUEST_WILL_BE_SENT |
484 msg2 = RequestTrackTestCase._LOADING_FINISHED | 504 msg2 = RequestTrackTestCase._LOADING_FINISHED |
485 self.request_track.Handle('Network.requestWillBeSent', msg1) | 505 self.request_track.Handle('Network.requestWillBeSent', msg1) |
486 with self.assertRaises(AssertionError): | 506 with self.assertRaises(AssertionError): |
487 self.request_track.Handle('Network.loadingFinished', msg2) | 507 self.request_track.Handle('Network.loadingFinished', msg2) |
488 | 508 |
489 def testValidSequence(self): | 509 def testValidSequence(self): |
490 self._ValidSequence(self.request_track) | 510 self._ValidSequence(self.request_track) |
491 self.assertEquals(1, len(self.request_track.GetEvents())) | 511 self.assertEquals(1, len(self.request_track.GetEvents())) |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
542 msg2_different = copy.deepcopy(msg2) | 562 msg2_different = copy.deepcopy(msg2) |
543 msg2_different['params']['response']['encodedDataLength'] += 1 | 563 msg2_different['params']['response']['encodedDataLength'] += 1 |
544 self.request_track.Handle('Network.requestWillBeSent', msg1) | 564 self.request_track.Handle('Network.requestWillBeSent', msg1) |
545 self.request_track.Handle('Network.responseReceived', msg2) | 565 self.request_track.Handle('Network.responseReceived', msg2) |
546 # Should not raise an AssertionError. | 566 # Should not raise an AssertionError. |
547 self.request_track.Handle('Network.responseReceived', msg2) | 567 self.request_track.Handle('Network.responseReceived', msg2) |
548 self.assertEquals(1, self.request_track.duplicates_count) | 568 self.assertEquals(1, self.request_track.duplicates_count) |
549 with self.assertRaises(AssertionError): | 569 with self.assertRaises(AssertionError): |
550 self.request_track.Handle('Network.responseReceived', msg2_different) | 570 self.request_track.Handle('Network.responseReceived', msg2_different) |
551 | 571 |
| 572 def testLoadingFailed(self): |
| 573 self.request_track.Handle('Network.requestWillBeSent', |
| 574 RequestTrackTestCase._REQUEST_WILL_BE_SENT) |
| 575 self.request_track.Handle('Network.responseReceived', |
| 576 RequestTrackTestCase._RESPONSE_RECEIVED) |
| 577 self.request_track.Handle('Network.loadingFailed', |
| 578 RequestTrackTestCase._LOADING_FAILED) |
| 579 r = self.request_track.GetEvents()[0] |
| 580 self.assertTrue(r.failed) |
| 581 self.assertEquals('net::ERR_TOO_MANY_REDIRECTS', r.error_text) |
| 582 |
552 def testCanSerialize(self): | 583 def testCanSerialize(self): |
553 self._ValidSequence(self.request_track) | 584 self._ValidSequence(self.request_track) |
554 json_dict = self.request_track.ToJsonDict() | 585 json_dict = self.request_track.ToJsonDict() |
555 _ = json.dumps(json_dict) # Should not raise an exception. | 586 _ = json.dumps(json_dict) # Should not raise an exception. |
556 | 587 |
557 def testCanDeserialize(self): | 588 def testCanDeserialize(self): |
558 self._ValidSequence(self.request_track) | 589 self._ValidSequence(self.request_track) |
559 self.request_track.duplicates_count = 142 | 590 self.request_track.duplicates_count = 142 |
560 self.request_track.inconsistent_initiators_count = 123 | 591 self.request_track.inconsistent_initiators_count = 123 |
561 json_dict = self.request_track.ToJsonDict() | 592 json_dict = self.request_track.ToJsonDict() |
(...skipping 23 matching lines...) Expand all Loading... |
585 def _ValidSequence(cls, request_track): | 616 def _ValidSequence(cls, request_track): |
586 request_track.Handle( | 617 request_track.Handle( |
587 'Network.requestWillBeSent', cls._REQUEST_WILL_BE_SENT) | 618 'Network.requestWillBeSent', cls._REQUEST_WILL_BE_SENT) |
588 request_track.Handle('Network.responseReceived', cls._RESPONSE_RECEIVED) | 619 request_track.Handle('Network.responseReceived', cls._RESPONSE_RECEIVED) |
589 request_track.Handle('Network.dataReceived', cls._DATA_RECEIVED_1) | 620 request_track.Handle('Network.dataReceived', cls._DATA_RECEIVED_1) |
590 request_track.Handle('Network.dataReceived', cls._DATA_RECEIVED_2) | 621 request_track.Handle('Network.dataReceived', cls._DATA_RECEIVED_2) |
591 request_track.Handle('Network.loadingFinished', cls._LOADING_FINISHED) | 622 request_track.Handle('Network.loadingFinished', cls._LOADING_FINISHED) |
592 | 623 |
593 if __name__ == '__main__': | 624 if __name__ == '__main__': |
594 unittest.main() | 625 unittest.main() |
OLD | NEW |