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

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

Issue 2103673003: tools/android/loading: Properly detect page loading failures (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addresses Colin's nit Created 4 years, 5 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/android/loading/request_track.py ('k') | tools/android/loading/tracing.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 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
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
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
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
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()
OLDNEW
« no previous file with comments | « tools/android/loading/request_track.py ('k') | tools/android/loading/tracing.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698