| // Copyright 2018 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. |
| |
| self.onmessage = (message) => { |
| const ws = new WebSocket(message.data.url); |
| const expectedToConnect = message.data.expectedToConnect; |
| const messageData = 'test message'; |
| |
| ws.onerror = (error) => { |
| postMessage(expectedToConnect ? 'FAIL; onerror' : 'PASS'); |
| }; |
| ws.onmessage = (message) => { |
| if (!expectedToConnect || message.data !== messageData) { |
| postMessage('FAIL; onmessage'); |
| } |
| ws.close(); |
| }; |
| ws.onclose = (event) => { |
| if (expectedToConnect) { |
| postMessage(event.wasClean ? 'PASS' : 'FAIL; onclose'); |
| } |
| }; |
| ws.onopen = () => { |
| if (!expectedToConnect) { |
| postMessage('FAIL; onopen'); |
| } |
| ws.send(messageData); |
| }; |
| } |