Index: test/codegen/lib/html/websocket_test.dart |
diff --git a/test/codegen/lib/html/websocket_test.dart b/test/codegen/lib/html/websocket_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1715c884def1573c7c4dd8ab0c29342256f71d2c |
--- /dev/null |
+++ b/test/codegen/lib/html/websocket_test.dart |
@@ -0,0 +1,52 @@ |
+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(); |
+ }); |
+ }); |
+ } |
+ }); |
+} |