Index: tools/android/loading/test_utils.py |
diff --git a/tools/android/loading/test_utils.py b/tools/android/loading/test_utils.py |
index 654e94bdb655943f88b4163d83fb51a5e3fc74f7..aea73a76a02810194d5e46f5a8863e880fb64416 100644 |
--- a/tools/android/loading/test_utils.py |
+++ b/tools/android/loading/test_utils.py |
@@ -5,6 +5,7 @@ |
"""Common utilities used in unit tests, within this directory.""" |
import devtools_monitor |
+import loading_model |
import loading_trace |
import page_track |
import request_track |
@@ -80,3 +81,33 @@ def LoadingTraceFromEvents(requests, page_events=None, trace_events=None): |
tracing_track = None |
return loading_trace.LoadingTrace( |
None, None, page_event_track, request, tracing_track) |
+ |
+ |
+class SimpleLens(object): |
+ """A simple replacement for RequestDependencyLens. |
+ |
+ Uses only the initiator url of a request for determining a dependency. |
+ """ |
+ def __init__(self, trace): |
+ self._trace = trace |
+ |
+ def GetRequestDependencies(self): |
+ url_to_rq = {} |
+ deps = [] |
+ for rq in self._trace.request_track.GetEvents(): |
+ assert rq.url not in url_to_rq |
+ url_to_rq[rq.url] = rq |
+ for rq in self._trace.request_track.GetEvents(): |
+ initiating_url = rq.initiator['url'] |
+ if initiating_url in url_to_rq: |
+ deps.append((url_to_rq[initiating_url], rq, rq.initiator['type'])) |
+ return deps |
+ |
+ |
+class TestResourceGraph(loading_model.ResourceGraph): |
+ """Replace the default request lens in a ResourceGraph with our SimpleLens.""" |
+ REQUEST_LENS = SimpleLens |
+ |
+ @classmethod |
+ def FromRequestList(cls, requests, page_events=None, trace_events=None): |
+ return cls(LoadingTraceFromEvents(requests, page_events, trace_events)) |