| 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 unittest | 5 import unittest |
| 6 | 6 |
| 7 import devtools_monitor | 7 import devtools_monitor |
| 8 from loading_trace import LoadingTrace | 8 from loading_trace import LoadingTrace |
| 9 from request_dependencies_lens import RequestDependencyLens | 9 from request_dependencies_lens import RequestDependencyLens |
| 10 from request_track import (Request, TimingFromDict) | 10 from request_track import (Request, TimingFromDict) |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 | 30 |
| 31 def _RewriteEvent(self, event): | 31 def _RewriteEvent(self, event): |
| 32 # This modifies the instance used across tests, so this method | 32 # This modifies the instance used across tests, so this method |
| 33 # must be idempotent. | 33 # must be idempotent. |
| 34 event.timing = event.timing._replace(request_time=event.timestamp) | 34 event.timing = event.timing._replace(request_time=event.timestamp) |
| 35 return event | 35 return event |
| 36 | 36 |
| 37 | 37 |
| 38 class RequestDependencyLensTestCase(unittest.TestCase): | 38 class RequestDependencyLensTestCase(unittest.TestCase): |
| 39 _REDIRECT_REQUEST = Request.FromJsonDict( | 39 _REDIRECT_REQUEST = Request.FromJsonDict( |
| 40 {'url': 'http://bla.com', 'request_id': '1234.1.redirect', | 40 {'url': 'http://bla.com', 'request_id': '1234.redirect.1', |
| 41 'initiator': {'type': 'other'}, | 41 'initiator': {'type': 'other'}, |
| 42 'timestamp': 1, 'timing': TimingFromDict({})}) | 42 'timestamp': 1, 'timing': TimingFromDict({})}) |
| 43 _REDIRECTED_REQUEST = Request.FromJsonDict({ |
| 44 'url': 'http://bla.com', |
| 45 'request_id': '1234.1', |
| 46 'frame_id': '123.1', |
| 47 'initiator': {'type': 'redirect', |
| 48 'initiating_request': '1234.redirect.1'}, |
| 49 'timestamp': 2, |
| 50 'timing': TimingFromDict({})}) |
| 43 _REQUEST = Request.FromJsonDict({'url': 'http://bla.com', | 51 _REQUEST = Request.FromJsonDict({'url': 'http://bla.com', |
| 44 'request_id': '1234.1', | 52 'request_id': '1234.1', |
| 45 'frame_id': '123.1', | 53 'frame_id': '123.1', |
| 46 'initiator': {'type': 'other'}, | 54 'initiator': {'type': 'other'}, |
| 47 'timestamp': 2, | 55 'timestamp': 2, |
| 48 'timing': TimingFromDict({})}) | 56 'timing': TimingFromDict({})}) |
| 49 _JS_REQUEST = Request.FromJsonDict({'url': 'http://bla.com/nyancat.js', | 57 _JS_REQUEST = Request.FromJsonDict({'url': 'http://bla.com/nyancat.js', |
| 50 'request_id': '1234.12', | 58 'request_id': '1234.12', |
| 51 'frame_id': '123.1', | 59 'frame_id': '123.1', |
| 52 'initiator': {'type': 'parser', | 60 'initiator': {'type': 'parser', |
| (...skipping 19 matching lines...) Expand all Loading... |
| 72 'frame_id': '123.1', | 80 'frame_id': '123.1', |
| 73 'initiator': {'type': 'script', | 81 'initiator': {'type': 'script', |
| 74 'stackTrace': [{'url': 'unknown'}, | 82 'stackTrace': [{'url': 'unknown'}, |
| 75 {'url': 'http://bla.com/nyancat.js'}]}, | 83 {'url': 'http://bla.com/nyancat.js'}]}, |
| 76 'timestamp': 10, 'timing': TimingFromDict({})}) | 84 'timestamp': 10, 'timing': TimingFromDict({})}) |
| 77 _PAGE_TRACK = FakeTrack( | 85 _PAGE_TRACK = FakeTrack( |
| 78 [{'method': 'Page.frameAttached', | 86 [{'method': 'Page.frameAttached', |
| 79 'frame_id': '123.13', 'parent_frame_id': '123.1'}]) | 87 'frame_id': '123.13', 'parent_frame_id': '123.1'}]) |
| 80 | 88 |
| 81 def testRedirectDependency(self): | 89 def testRedirectDependency(self): |
| 82 request_track = FakeRequestTrack([self._REDIRECT_REQUEST, self._REQUEST]) | 90 request_track = FakeRequestTrack([ |
| 91 self._REDIRECT_REQUEST, self._REDIRECTED_REQUEST]) |
| 83 loading_trace = LoadingTrace(None, None, PageTrack(None), | 92 loading_trace = LoadingTrace(None, None, PageTrack(None), |
| 84 request_track, None) | 93 request_track, None) |
| 85 request_dependencies_lens = RequestDependencyLens(loading_trace) | 94 request_dependencies_lens = RequestDependencyLens(loading_trace) |
| 86 deps = request_dependencies_lens.GetRequestDependencies() | 95 deps = request_dependencies_lens.GetRequestDependencies() |
| 87 self.assertEquals(1, len(deps)) | 96 self.assertEquals(1, len(deps)) |
| 88 (first, second, reason) = deps[0] | 97 (first, second, reason) = deps[0] |
| 89 self.assertEquals('redirect', reason) | 98 self.assertEquals('redirect', reason) |
| 90 self.assertEquals(self._REDIRECT_REQUEST.request_id, first.request_id) | 99 self.assertEquals(self._REDIRECT_REQUEST.request_id, first.request_id) |
| 91 self.assertEquals(self._REQUEST.request_id, second.request_id) | 100 self.assertEquals(self._REQUEST.request_id, second.request_id) |
| 92 | 101 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 107 request_track, None) | 116 request_track, None) |
| 108 request_dependencies_lens = RequestDependencyLens(loading_trace) | 117 request_dependencies_lens = RequestDependencyLens(loading_trace) |
| 109 deps = request_dependencies_lens.GetRequestDependencies() | 118 deps = request_dependencies_lens.GetRequestDependencies() |
| 110 self.assertEquals(1, len(deps)) | 119 self.assertEquals(1, len(deps)) |
| 111 self._AssertDependencyIs( | 120 self._AssertDependencyIs( |
| 112 deps[0], | 121 deps[0], |
| 113 self._REQUEST.request_id, self._JS_REQUEST.request_id, 'parser') | 122 self._REQUEST.request_id, self._JS_REQUEST.request_id, 'parser') |
| 114 | 123 |
| 115 def testSeveralDependencies(self): | 124 def testSeveralDependencies(self): |
| 116 request_track = FakeRequestTrack( | 125 request_track = FakeRequestTrack( |
| 117 [self._REDIRECT_REQUEST, self._REQUEST, self._JS_REQUEST, | 126 [self._REDIRECT_REQUEST, self._REDIRECTED_REQUEST, self._JS_REQUEST, |
| 118 self._JS_REQUEST_2]) | 127 self._JS_REQUEST_2]) |
| 119 loading_trace = LoadingTrace(None, None, PageTrack(None), | 128 loading_trace = LoadingTrace(None, None, PageTrack(None), |
| 120 request_track, None) | 129 request_track, None) |
| 121 request_dependencies_lens = RequestDependencyLens(loading_trace) | 130 request_dependencies_lens = RequestDependencyLens(loading_trace) |
| 122 deps = request_dependencies_lens.GetRequestDependencies() | 131 deps = request_dependencies_lens.GetRequestDependencies() |
| 123 self.assertEquals(3, len(deps)) | 132 self.assertEquals(3, len(deps)) |
| 124 self._AssertDependencyIs( | 133 self._AssertDependencyIs( |
| 125 deps[0], self._REDIRECT_REQUEST.request_id, self._REQUEST.request_id, | 134 deps[0], self._REDIRECT_REQUEST.request_id, self._REQUEST.request_id, |
| 126 'redirect') | 135 'redirect') |
| 127 self._AssertDependencyIs( | 136 self._AssertDependencyIs( |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 def _AssertDependencyIs( | 172 def _AssertDependencyIs( |
| 164 self, dep, first_request_id, second_request_id, reason): | 173 self, dep, first_request_id, second_request_id, reason): |
| 165 (first, second, dependency_reason) = dep | 174 (first, second, dependency_reason) = dep |
| 166 self.assertEquals(reason, dependency_reason) | 175 self.assertEquals(reason, dependency_reason) |
| 167 self.assertEquals(first_request_id, first.request_id) | 176 self.assertEquals(first_request_id, first.request_id) |
| 168 self.assertEquals(second_request_id, second.request_id) | 177 self.assertEquals(second_request_id, second.request_id) |
| 169 | 178 |
| 170 | 179 |
| 171 if __name__ == '__main__': | 180 if __name__ == '__main__': |
| 172 unittest.main() | 181 unittest.main() |
| OLD | NEW |