| 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 |