| library WebSocketTest; |
| import 'package:unittest/unittest.dart'; |
| import 'package:unittest/html_individual_config.dart'; |
| import 'dart:html'; |
| |
| main() { |
| |
| useHtmlIndividualConfiguration(); |
| |
| group('supported', () { |
| test('supported', () { |
| expect(WebSocket.supported, true); |
| }); |
| }); |
| |
| group('websocket', () { |
| var isWebSocket = predicate((x) => x is WebSocket, 'is a WebSocket'); |
| var expectation = WebSocket.supported ? returnsNormally : throws; |
| |
| test('constructorTest', () { |
| expect(() { |
| var socket = new WebSocket('ws://localhost/ws', 'chat'); |
| expect(socket, isNotNull); |
| expect(socket, isWebSocket); |
| }, expectation); |
| }); |
| |
| if (WebSocket.supported) { |
| test('echo', () { |
| var socket = new WebSocket('ws://${window.location.host}/ws'); |
| |
| socket.onOpen.first.then((_) { |
| socket.send('hello!'); |
| }); |
| |
| return socket.onMessage.first.then((MessageEvent e) { |
| expect(e.data, 'hello!'); |
| socket.close(); |
| }); |
| }); |
| |
| test('error handling', () { |
| var socket = new WebSocket('ws://${window.location.host}/ws'); |
| socket.onOpen.first.then((_) => socket.send('close-with-error')); |
| return socket.onError.first.then((e) { |
| print('$e was caught, yay!'); |
| socket.close(); |
| }); |
| }); |
| } |
| }); |
| } |