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 |