| // 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 WebSocketFrames are being sent and received by Web Inspector.\n`); |
| await TestRunner.evaluateInPagePromise(` |
| var ws; |
| function sendMessages() { |
| ws = new WebSocket("ws://localhost:8880/echo"); |
| ws.onopen = function() |
| { |
| ws.send("test"); |
| ws.send("exit"); |
| }; |
| } |
| `); |
| |
| var frames = []; |
| function onRequest(event) { |
| var request = event.data; |
| var done = false; |
| if (request.resourceType().name() !== 'websocket') |
| return; |
| var previous_frames = frames; |
| frames = []; |
| var websocketFrames = request.frames(); |
| for (var i = 0; i < websocketFrames.length; i++) { |
| var frame = websocketFrames[i]; |
| frames[i] = String.sprintf('%d-%s: %s', (i + 1), frame.type, frame.text); |
| if (frame.type !== SDK.NetworkRequest.WebSocketFrameType.Send && frame.text === 'exit') |
| done = true; |
| } |
| if (JSON.stringify(frames) === JSON.stringify(previous_frames)) { |
| // There is no update. |
| return; |
| } |
| for (var i = 0; i < frames.length; ++i) |
| TestRunner.addResult(frames[i]); |
| if (done) |
| TestRunner.completeTest(); |
| } |
| TestRunner.networkManager.addEventListener(SDK.NetworkManager.Events.RequestUpdated, onRequest); |
| TestRunner.evaluateInPage('sendMessages()'); |
| })(); |