| let port; |
| let received = false; |
| |
| function reportFailure(details) { |
| port.postMessage('FAIL: ' + details); |
| } |
| |
| onmessage = event => { |
| port = event.source; |
| |
| const ws = new WebSocket('wss://{{host}}:{{ports[wss][0]}}/echo'); |
| ws.onopen = () => { |
| ws.send('Hello'); |
| }; |
| ws.onmessage = msg => { |
| if (msg.data !== 'Hello') { |
| reportFailure('Unexpected reply: ' + msg.data); |
| return; |
| } |
| |
| received = true; |
| ws.close(); |
| }; |
| ws.onclose = (event) => { |
| if (!received) { |
| reportFailure('Closed before receiving reply: ' + event.code); |
| return; |
| } |
| |
| port.postMessage('PASS'); |
| }; |
| ws.onerror = () => { |
| reportFailure('Got an error event'); |
| }; |
| }; |