| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| (async function() { |
| TestRunner.addResult(`Tests that WebSocket network requests do not loose focus on frame being received.\n`); |
| await TestRunner.loadModule('network_test_runner'); |
| await TestRunner.showPanel('network'); |
| |
| NetworkTestRunner.recordNetwork(); |
| |
| const wsUrl = 'ws://localhost:8880/echo'; |
| const networkLogView = UI.panels.network._networkLogView; |
| const dataGrid = networkLogView._dataGrid; |
| await TestRunner.evaluateInPagePromise('ws = new WebSocket(\'' + wsUrl + '\')'); |
| var websocketRequest = NetworkTestRunner.findRequestsByURLPattern(createPlainTextSearchRegex(wsUrl))[0]; |
| await NetworkTestRunner.waitForRequestResponse(websocketRequest); |
| var node = await NetworkTestRunner.waitForNetworkLogViewNodeForRequest(websocketRequest); |
| networkLogView._refresh(); |
| node.select(); |
| logSelectedNode(); |
| |
| TestRunner.addResult('Sending Websocket frame'); |
| await TestRunner.evaluateInPagePromise('ws.send(\'test\')'); |
| await NetworkTestRunner.waitForWebsocketFrameReceived(websocketRequest, 'test'); |
| networkLogView._refresh(); |
| TestRunner.addResult('Websocket Frame Received'); |
| logSelectedNode(); |
| |
| TestRunner.completeTest(); |
| |
| function logSelectedNode() { |
| TestRunner.addResult('Selected Request: ' + (dataGrid.selectedNode && dataGrid.selectedNode.request().url()) || ''); |
| } |
| })(); |