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