Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/http/tests/inspector/network-test.js |
| diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector/network-test.js b/third_party/WebKit/LayoutTests/http/tests/inspector/network-test.js |
| index dc9bf760c1d2583e9bd52ef4a97af93ff0d1c944..379dddd40c8998364b92ad5a410e1ab6c63b2b24 100644 |
| --- a/third_party/WebKit/LayoutTests/http/tests/inspector/network-test.js |
| +++ b/third_party/WebKit/LayoutTests/http/tests/inspector/network-test.js |
| @@ -56,6 +56,84 @@ var initialize_NetworkTest = function() { |
| InspectorTest.preloadPanel("network"); |
| +/** |
| + * @param {!SDK.NetworkRequest} request |
| + * @return {!Promise<!SDK.NetworkRequest>} |
| + */ |
| +InspectorTest.waitForRequestResponse = function(request) |
| +{ |
| + return new Promise(resolve => { |
| + if (request.responseReceivedTime !== -1) { |
| + resolve(request); |
| + return; |
| + } |
| + InspectorTest.networkManager.addEventListener(SDK.NetworkManager.Events.RequestUpdated, checkRequestUpdated); |
| + |
| + function checkRequestUpdated(data) |
| + { |
| + if (data.data !== request || request.responseReceivedTime === -1) |
| + return; |
| + InspectorTest.networkManager.removeEventListener(SDK.NetworkManager.Events.RequestUpdated, checkRequestUpdated); |
| + resolve(request); |
| + } |
| + }); |
| +} |
| + |
| +/** |
| + * @param {!SDK.NetworkRequest} request |
| + * @return {?Network.NetworkRequestNode} |
|
dgozman
2017/04/28 20:49:31
Promise<...>
allada
2017/04/28 20:54:41
Done.
|
| + */ |
| +InspectorTest.awaitNetworkLogViewNodeForRequest = function(request) |
|
dgozman
2017/04/28 20:49:31
waitForNetworkLogViewNode(request)
allada
2017/04/28 20:54:41
Done.
|
| +{ |
| + var networkLogView = UI.panels.network._networkLogView; |
| + var node = networkLogView._nodesByRequestId.get(request.requestId()); |
| + if (node) |
| + return Promise.resolve(node); |
| + return new Promise(resolve => { |
| + networkLogView.addEventToListeners(Network.NetworkLogView.Events.UpdateRequest, requestUpdated); |
| + networkLogView._appendRequest; |
| + |
| + function requestUpdated(data) { |
| + if (data.data !== request) |
| + return; |
| + networkLogView.removeEventToListeners(Network.NetworkLogView.Events.UpdateRequest, requestUpdated); |
| + var node = networkLogView._nodesByRequestId.get(request.requestId()); |
| + console.assert(node); |
| + resolve(node); |
| + } |
| + }); |
| +} |
| + |
| +/** |
| + * @param {!SDK.NetworkRequest} wsRequest |
| + * @param {string} message |
| + * @return {!Promise<!SDK.NetworkRequest.WebSocketFrame>} |
| + */ |
| +InspectorTest.waitForWebsocketFrameReceived = function(wsRequest, message) |
| +{ |
| + return new Promise(resolve => { |
| + for (var frame of wsRequest.frames()) { |
| + if (resolveIfNeeded(frame)) |
| + return; |
| + } |
| + wsRequest.addEventListener(SDK.NetworkRequest.Events.WebsocketFrameAdded, handleFrameReceived); |
| + |
| + function handleFrameReceived(data) |
| + { |
| + if (resolveIfNeeded(/** @type {!SDK.NetworkRequest.WebSocketFrame} */ (data.data))) |
| + wsRequest.removeEventListener(SDK.NetworkRequest.Events.WebsocketFrameAdded, handleFrameReceived); |
| + } |
| + |
| + function resolveIfNeeded(frame) |
| + { |
| + if (frame.type !== SDK.NetworkRequest.WebSocketFrameType.Receive || frame.text !== message) |
| + return false; |
| + resolve(frame); |
| + return true; |
| + } |
| + }); |
| +} |
| + |
| InspectorTest.recordNetwork = function() |
| { |
| UI.panels.network._networkLogView.setRecording(true); |