Index: tests/standalone/io/web_socket_test.dart |
diff --git a/tests/standalone/io/web_socket_test.dart b/tests/standalone/io/web_socket_test.dart |
index b04e02f35d4fac5f9d1046a0cae3d22361831874..0aa33a8724bfbf649fcc2aef40eb9a3e8168f47f 100644 |
--- a/tests/standalone/io/web_socket_test.dart |
+++ b/tests/standalone/io/web_socket_test.dart |
@@ -432,6 +432,34 @@ class SecurityConfiguration { |
}); |
} |
+ void testOnRequest(bool useFuture) { |
+ createServer().then((server) { |
+ server.listen((request) { |
+ Expect.isTrue(WebSocketTransformer.isUpgradeRequest(request)); |
+ Expect.equals(request.headers['My-Header'][0], 'my-value'); |
+ WebSocketTransformer.upgrade(request).then((webSocket) { |
+ webSocket.listen((_) { webSocket.close(); }); |
+ webSocket.add("Hello"); |
+ }); |
+ }); |
+ |
+ onRequest(request) { |
+ request.headers.set('My-Header', 'my-value'); |
+ return useFuture ? new Future.value() : null; |
Lasse Reichstein Nielsen
2015/01/12 15:11:56
Consider actually delaying some action to just bef
Søren Gjesse
2015/01/12 15:36:34
Removed the use of a callback.
|
+ } |
+ |
+ var url = '${secure ? "wss" : "ws"}://$HOST_NAME:${server.port}/'; |
+ |
+ WebSocket.connect(url, onRequest: onRequest).then((websocket) { |
+ return websocket.listen((message) { |
+ Expect.equals("Hello", message); |
+ websocket.close(); |
+ }).asFuture(); |
+ }).then((_) => server.close()); |
+ }); |
+ } |
kustermann
2015/01/09 14:45:12
[Since this file already imports async_helper, you
Søren Gjesse
2015/01/12 15:36:34
Done.
|
+ |
+ |
void runTests() { |
testRequestResponseClientCloses(2, null, null, 1); |
testRequestResponseClientCloses(2, 3001, null, 2); |
@@ -453,6 +481,8 @@ class SecurityConfiguration { |
testConnections(10, 3002, "Got tired"); |
testIndividualUpgrade(5); |
testFromUpgradedSocket(); |
+ testOnRequest(true); |
+ testOnRequest(false); |
} |
} |