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) |
11 import test_utils | 11 import test_utils |
12 | 12 |
13 | 13 |
14 class RequestDependencyLensTestCase(unittest.TestCase): | 14 class RequestDependencyLensTestCase(unittest.TestCase): |
15 _REDIRECT_REQUEST = Request.FromJsonDict( | 15 _REDIRECT_REQUEST = Request.FromJsonDict( |
16 {'url': 'http://bla.com', 'request_id': '1234.1.redirect', | 16 {'url': 'http://bla.com', 'request_id': '1234.redirect.1', |
17 'initiator': {'type': 'other'}, | 17 'initiator': {'type': 'other'}, |
18 'timestamp': 1, 'timing': TimingFromDict({})}) | 18 'timestamp': 1, 'timing': TimingFromDict({})}) |
| 19 _REDIRECTED_REQUEST = Request.FromJsonDict({ |
| 20 'url': 'http://bla.com', |
| 21 'request_id': '1234.1', |
| 22 'frame_id': '123.1', |
| 23 'initiator': {'type': 'redirect', |
| 24 'initiating_request': '1234.redirect.1'}, |
| 25 'timestamp': 2, |
| 26 'timing': TimingFromDict({})}) |
19 _REQUEST = Request.FromJsonDict({'url': 'http://bla.com', | 27 _REQUEST = Request.FromJsonDict({'url': 'http://bla.com', |
20 'request_id': '1234.1', | 28 'request_id': '1234.1', |
21 'frame_id': '123.1', | 29 'frame_id': '123.1', |
22 'initiator': {'type': 'other'}, | 30 'initiator': {'type': 'other'}, |
23 'timestamp': 2, | 31 'timestamp': 2, |
24 'timing': TimingFromDict({})}) | 32 'timing': TimingFromDict({})}) |
25 _JS_REQUEST = Request.FromJsonDict({'url': 'http://bla.com/nyancat.js', | 33 _JS_REQUEST = Request.FromJsonDict({'url': 'http://bla.com/nyancat.js', |
26 'request_id': '1234.12', | 34 'request_id': '1234.12', |
27 'frame_id': '123.1', | 35 'frame_id': '123.1', |
28 'initiator': {'type': 'parser', | 36 'initiator': {'type': 'parser', |
(...skipping 19 matching lines...) Expand all Loading... |
48 'frame_id': '123.1', | 56 'frame_id': '123.1', |
49 'initiator': {'type': 'script', | 57 'initiator': {'type': 'script', |
50 'stackTrace': [{'url': 'unknown'}, | 58 'stackTrace': [{'url': 'unknown'}, |
51 {'url': 'http://bla.com/nyancat.js'}]}, | 59 {'url': 'http://bla.com/nyancat.js'}]}, |
52 'timestamp': 10, 'timing': TimingFromDict({})}) | 60 'timestamp': 10, 'timing': TimingFromDict({})}) |
53 _PAGE_EVENTS = [{'method': 'Page.frameAttached', | 61 _PAGE_EVENTS = [{'method': 'Page.frameAttached', |
54 'frame_id': '123.13', 'parent_frame_id': '123.1'}] | 62 'frame_id': '123.13', 'parent_frame_id': '123.1'}] |
55 | 63 |
56 def testRedirectDependency(self): | 64 def testRedirectDependency(self): |
57 loading_trace = test_utils.LoadingTraceFromEvents( | 65 loading_trace = test_utils.LoadingTraceFromEvents( |
58 [self._REDIRECT_REQUEST, self._REQUEST]) | 66 [self._REDIRECT_REQUEST, self._REDIRECTED_REQUEST]) |
59 request_dependencies_lens = RequestDependencyLens(loading_trace) | 67 request_dependencies_lens = RequestDependencyLens(loading_trace) |
60 deps = request_dependencies_lens.GetRequestDependencies() | 68 deps = request_dependencies_lens.GetRequestDependencies() |
61 self.assertEquals(1, len(deps)) | 69 self.assertEquals(1, len(deps)) |
62 (first, second, reason) = deps[0] | 70 (first, second, reason) = deps[0] |
63 self.assertEquals('redirect', reason) | 71 self.assertEquals('redirect', reason) |
64 self.assertEquals(self._REDIRECT_REQUEST.request_id, first.request_id) | 72 self.assertEquals(self._REDIRECT_REQUEST.request_id, first.request_id) |
65 self.assertEquals(self._REQUEST.request_id, second.request_id) | 73 self.assertEquals(self._REQUEST.request_id, second.request_id) |
66 | 74 |
67 def testScriptDependency(self): | 75 def testScriptDependency(self): |
68 loading_trace = test_utils.LoadingTraceFromEvents( | 76 loading_trace = test_utils.LoadingTraceFromEvents( |
(...skipping 10 matching lines...) Expand all Loading... |
79 [self._REQUEST, self._JS_REQUEST]) | 87 [self._REQUEST, self._JS_REQUEST]) |
80 request_dependencies_lens = RequestDependencyLens(loading_trace) | 88 request_dependencies_lens = RequestDependencyLens(loading_trace) |
81 deps = request_dependencies_lens.GetRequestDependencies() | 89 deps = request_dependencies_lens.GetRequestDependencies() |
82 self.assertEquals(1, len(deps)) | 90 self.assertEquals(1, len(deps)) |
83 self._AssertDependencyIs( | 91 self._AssertDependencyIs( |
84 deps[0], | 92 deps[0], |
85 self._REQUEST.request_id, self._JS_REQUEST.request_id, 'parser') | 93 self._REQUEST.request_id, self._JS_REQUEST.request_id, 'parser') |
86 | 94 |
87 def testSeveralDependencies(self): | 95 def testSeveralDependencies(self): |
88 loading_trace = test_utils.LoadingTraceFromEvents( | 96 loading_trace = test_utils.LoadingTraceFromEvents( |
89 [self._REDIRECT_REQUEST, self._REQUEST, self._JS_REQUEST, | 97 [self._REDIRECT_REQUEST, self._REDIRECTED_REQUEST, self._JS_REQUEST, |
90 self._JS_REQUEST_2]) | 98 self._JS_REQUEST_2]) |
91 request_dependencies_lens = RequestDependencyLens(loading_trace) | 99 request_dependencies_lens = RequestDependencyLens(loading_trace) |
92 deps = request_dependencies_lens.GetRequestDependencies() | 100 deps = request_dependencies_lens.GetRequestDependencies() |
93 self.assertEquals(3, len(deps)) | 101 self.assertEquals(3, len(deps)) |
94 self._AssertDependencyIs( | 102 self._AssertDependencyIs( |
95 deps[0], self._REDIRECT_REQUEST.request_id, self._REQUEST.request_id, | 103 deps[0], self._REDIRECT_REQUEST.request_id, self._REQUEST.request_id, |
96 'redirect') | 104 'redirect') |
97 self._AssertDependencyIs( | 105 self._AssertDependencyIs( |
98 deps[1], | 106 deps[1], |
99 self._REQUEST.request_id, self._JS_REQUEST.request_id, 'parser') | 107 self._REQUEST.request_id, self._JS_REQUEST.request_id, 'parser') |
(...skipping 29 matching lines...) Expand all Loading... |
129 def _AssertDependencyIs( | 137 def _AssertDependencyIs( |
130 self, dep, first_request_id, second_request_id, reason): | 138 self, dep, first_request_id, second_request_id, reason): |
131 (first, second, dependency_reason) = dep | 139 (first, second, dependency_reason) = dep |
132 self.assertEquals(reason, dependency_reason) | 140 self.assertEquals(reason, dependency_reason) |
133 self.assertEquals(first_request_id, first.request_id) | 141 self.assertEquals(first_request_id, first.request_id) |
134 self.assertEquals(second_request_id, second.request_id) | 142 self.assertEquals(second_request_id, second.request_id) |
135 | 143 |
136 | 144 |
137 if __name__ == '__main__': | 145 if __name__ == '__main__': |
138 unittest.main() | 146 unittest.main() |
OLD | NEW |