Index: tests/standalone/io/web_socket_compression_test.dart |
diff --git a/tests/standalone/io/web_socket_compression_test.dart b/tests/standalone/io/web_socket_compression_test.dart |
index 99f341eeaf6939a821a11ebb5b36528938a45864..5507c84a4423091ffbd0849cc77483bd03619c07 100644 |
--- a/tests/standalone/io/web_socket_compression_test.dart |
+++ b/tests/standalone/io/web_socket_compression_test.dart |
@@ -27,21 +27,16 @@ String localFile(path) => Platform.script.resolve(path).toFilePath(); |
SecurityContext serverContext = new SecurityContext() |
..useCertificateChain(localFile('certificates/server_chain.pem')) |
..usePrivateKey(localFile('certificates/server_key.pem'), |
- password: 'dartdart'); |
+ password: 'dartdart'); |
class SecurityConfiguration { |
final bool secure; |
SecurityConfiguration({bool this.secure}); |
- Future<HttpServer> createServer({int backlog: 0}) => |
- secure ? HttpServer.bindSecure(HOST_NAME, |
- 0, |
- serverContext, |
- backlog: backlog) |
- : HttpServer.bind(HOST_NAME, |
- 0, |
- backlog: backlog); |
+ Future<HttpServer> createServer({int backlog: 0}) => secure |
+ ? HttpServer.bindSecure(HOST_NAME, 0, serverContext, backlog: backlog) |
+ : HttpServer.bind(HOST_NAME, 0, backlog: backlog); |
Future<WebSocket> createClient(int port) => |
// TODO(whesse): Add client context argument to WebSocket.connect |
@@ -87,9 +82,8 @@ class SecurityConfiguration { |
}); |
} |
- void testCompressionSupport({server: false, |
- client: false, |
- contextTakeover: false}) { |
+ void testCompressionSupport( |
+ {server: false, client: false, contextTakeover: false}) { |
asyncStart(); |
var clientOptions = new CompressionOptions( |
@@ -104,15 +98,16 @@ class SecurityConfiguration { |
createServer().then((server) { |
server.listen((request) { |
Expect.isTrue(WebSocketTransformer.isUpgradeRequest(request)); |
- WebSocketTransformer.upgrade(request, compression: serverOptions) |
- .then((webSocket) { |
- webSocket.listen((message) { |
- Expect.equals("Hello World", message); |
- |
- webSocket.add(message); |
- webSocket.close(); |
- }); |
- webSocket.add("Hello World"); |
+ WebSocketTransformer |
+ .upgrade(request, compression: serverOptions) |
+ .then((webSocket) { |
+ webSocket.listen((message) { |
+ Expect.equals("Hello World", message); |
+ |
+ webSocket.add(message); |
+ webSocket.close(); |
+ }); |
+ webSocket.add("Hello World"); |
}); |
}); |
@@ -130,20 +125,22 @@ class SecurityConfiguration { |
}); |
} |
- void testContextSupport({CompressionOptions serverOpts, |
- CompressionOptions clientOpts, |
- int messages}) { |
+ void testContextSupport( |
+ {CompressionOptions serverOpts, |
+ CompressionOptions clientOpts, |
+ int messages}) { |
asyncStart(); |
createServer().then((server) { |
server.listen((request) { |
Expect.isTrue(WebSocketTransformer.isUpgradeRequest(request)); |
- WebSocketTransformer.upgrade(request, compression: serverOpts) |
- .then((webSocket) { |
- webSocket.listen((message) { |
- Expect.equals("Hello World", message); |
- webSocket.add(message); |
- }); |
+ WebSocketTransformer |
+ .upgrade(request, compression: serverOpts) |
+ .then((webSocket) { |
+ webSocket.listen((message) { |
+ Expect.equals("Hello World", message); |
+ webSocket.add(message); |
+ }); |
}); |
}); |
@@ -178,11 +175,12 @@ class SecurityConfiguration { |
var digest = sha1.convert("$key$WEB_SOCKET_GUID".codeUnits); |
var accept = BASE64.encode(digest.bytes); |
request.response |
- ..statusCode = HttpStatus.SWITCHING_PROTOCOLS |
- ..headers.add(HttpHeaders.CONNECTION, "Upgrade") |
- ..headers.add(HttpHeaders.UPGRADE, "websocket") |
- ..headers.add("Sec-WebSocket-Accept", accept) |
- ..headers.add("Sec-WebSocket-Extensions", |
+ ..statusCode = HttpStatus.SWITCHING_PROTOCOLS |
+ ..headers.add(HttpHeaders.CONNECTION, "Upgrade") |
+ ..headers.add(HttpHeaders.UPGRADE, "websocket") |
+ ..headers.add("Sec-WebSocket-Accept", accept) |
+ ..headers.add( |
+ "Sec-WebSocket-Extensions", |
"permessage-deflate;" |
// Test quoted values and space padded = |
'server_max_window_bits="10"; client_max_window_bits = 12' |
@@ -208,50 +206,50 @@ class SecurityConfiguration { |
}); |
} |
- void testReturnHeaders(String headerValue, String expected, { |
- CompressionOptions serverCompression: CompressionOptions.DEFAULT}) { |
+ void testReturnHeaders(String headerValue, String expected, |
+ {CompressionOptions serverCompression: CompressionOptions.DEFAULT}) { |
asyncStart(); |
createServer().then((server) { |
server.listen((request) { |
// Stuff |
Expect.isTrue(WebSocketTransformer.isUpgradeRequest(request)); |
- WebSocketTransformer.upgrade(request, compression: serverCompression) |
- .then((webSocket) { |
- webSocket.listen((message) { |
- Expect.equals("Hello World", message); |
- |
- webSocket.add(message); |
- webSocket.close(); |
- }); |
+ WebSocketTransformer |
+ .upgrade(request, compression: serverCompression) |
+ .then((webSocket) { |
+ webSocket.listen((message) { |
+ Expect.equals("Hello World", message); |
+ |
+ webSocket.add(message); |
+ webSocket.close(); |
+ }); |
}); |
}); |
var url = '${secure ? "wss" : "ws"}://$HOST_NAME:${server.port}/'; |
- createWebsocket(url, headerValue) |
- .then((HttpClientResponse response) { |
- Expect.equals(response.statusCode, HttpStatus.SWITCHING_PROTOCOLS); |
- print(response.headers.value('Sec-WebSocket-Extensions')); |
- Expect.equals(response.headers.value("Sec-WebSocket-Extensions"), |
- expected); |
- |
- String accept = response.headers.value("Sec-WebSocket-Accept"); |
- Expect.isNotNull(accept); |
- |
- var protocol = response.headers.value('Sec-WebSocket-Protocol'); |
- return response.detachSocket().then((socket) => |
- new WebSocket.fromUpgradedSocket( |
- socket, protocol: protocol, serverSide: false)); |
- }).then((websocket) { |
- var future = websocket.listen((message) { |
- Expect.equals("Hello", message); |
- websocket.close(); |
- }).asFuture(); |
- websocket.add("Hello World"); |
- return future; |
- }).then((_) { |
- server.close(); |
- asyncEnd(); |
- }); |
+ createWebsocket(url, headerValue).then((HttpClientResponse response) { |
+ Expect.equals(response.statusCode, HttpStatus.SWITCHING_PROTOCOLS); |
+ print(response.headers.value('Sec-WebSocket-Extensions')); |
+ Expect.equals( |
+ response.headers.value("Sec-WebSocket-Extensions"), expected); |
+ |
+ String accept = response.headers.value("Sec-WebSocket-Accept"); |
+ Expect.isNotNull(accept); |
+ |
+ var protocol = response.headers.value('Sec-WebSocket-Protocol'); |
+ return response.detachSocket().then((socket) => |
+ new WebSocket.fromUpgradedSocket(socket, |
+ protocol: protocol, serverSide: false)); |
+ }).then((websocket) { |
+ var future = websocket.listen((message) { |
+ Expect.equals("Hello", message); |
+ websocket.close(); |
+ }).asFuture(); |
+ websocket.add("Hello World"); |
+ return future; |
+ }).then((_) { |
+ server.close(); |
+ asyncEnd(); |
+ }); |
}); // End createServer |
} |
@@ -271,12 +269,12 @@ class SecurityConfiguration { |
hv.parameters['client_max_window_bits']); |
WebSocketTransformer.upgrade(request).then((webSocket) { |
- webSocket.listen((message) { |
- Expect.equals('Hello World', message); |
+ webSocket.listen((message) { |
+ Expect.equals('Hello World', message); |
- webSocket.add(message); |
- webSocket.close(); |
- }); |
+ webSocket.add(message); |
+ webSocket.close(); |
+ }); |
}); |
}); |
@@ -311,66 +309,65 @@ class SecurityConfiguration { |
// Test Multiple messages with various context takeover configurations. |
// no context takeover on the server. |
var serverComp = new CompressionOptions(serverNoContextTakeover: true); |
- testContextSupport(serverOpts: serverComp, |
- clientOpts: serverComp, |
- messages: 5); |
+ testContextSupport( |
+ serverOpts: serverComp, clientOpts: serverComp, messages: 5); |
// no contexttakeover on the client. |
var clientComp = new CompressionOptions(clientNoContextTakeover: true); |
- testContextSupport(serverOpts: clientComp, |
- clientOpts: clientComp, |
- messages: 5); |
+ testContextSupport( |
+ serverOpts: clientComp, clientOpts: clientComp, messages: 5); |
// no context takeover enabled for both. |
- var compression = new CompressionOptions(serverNoContextTakeover: true, |
- clientNoContextTakeover: true); |
- testContextSupport(serverOpts: compression, |
- clientOpts: compression, |
- messages: 5); |
+ var compression = new CompressionOptions( |
+ serverNoContextTakeover: true, clientNoContextTakeover: true); |
+ testContextSupport( |
+ serverOpts: compression, clientOpts: compression, messages: 5); |
// no context take over for opposing configurations. |
- testContextSupport(serverOpts: serverComp, |
- clientOpts: clientComp, |
- messages: 5); |
- testContextSupport(serverOpts: clientComp, |
- clientOpts: serverComp, |
- messages: 5); |
+ testContextSupport( |
+ serverOpts: serverComp, clientOpts: clientComp, messages: 5); |
+ testContextSupport( |
+ serverOpts: clientComp, clientOpts: serverComp, messages: 5); |
testCompressionHeaders(); |
// Chrome headers |
testReturnHeaders('permessage-deflate; client_max_window_bits', |
- "permessage-deflate; client_max_window_bits=15"); |
+ "permessage-deflate; client_max_window_bits=15"); |
// Firefox headers |
- testReturnHeaders('permessage-deflate', |
- "permessage-deflate; client_max_window_bits=15"); |
+ testReturnHeaders( |
+ 'permessage-deflate', "permessage-deflate; client_max_window_bits=15"); |
// Ensure max_window_bits resize appropriately. |
- testReturnHeaders('permessage-deflate; server_max_window_bits=10', |
- "permessage-deflate;" |
- " server_max_window_bits=10;" |
- " client_max_window_bits=10"); |
+ testReturnHeaders( |
+ 'permessage-deflate; server_max_window_bits=10', |
+ "permessage-deflate;" |
+ " server_max_window_bits=10;" |
+ " client_max_window_bits=10"); |
// Don't provider context takeover if requested but not enabled. |
// Default is not enabled. |
- testReturnHeaders('permessage-deflate; client_max_window_bits;' |
- 'client_no_context_takeover', |
- 'permessage-deflate; client_max_window_bits=15'); |
+ testReturnHeaders( |
+ 'permessage-deflate; client_max_window_bits;' |
+ 'client_no_context_takeover', |
+ 'permessage-deflate; client_max_window_bits=15'); |
// Enable context Takeover and provide if requested. |
- compression = new CompressionOptions(clientNoContextTakeover: true, |
- serverNoContextTakeover: true); |
- testReturnHeaders('permessage-deflate; client_max_window_bits; ' |
- 'client_no_context_takeover', |
- 'permessage-deflate; client_no_context_takeover; ' |
- 'client_max_window_bits=15', |
- serverCompression: compression); |
+ compression = new CompressionOptions( |
+ clientNoContextTakeover: true, serverNoContextTakeover: true); |
+ testReturnHeaders( |
+ 'permessage-deflate; client_max_window_bits; ' |
+ 'client_no_context_takeover', |
+ 'permessage-deflate; client_no_context_takeover; ' |
+ 'client_max_window_bits=15', |
+ serverCompression: compression); |
// Enable context takeover and don't provide if not requested |
- compression = new CompressionOptions(clientNoContextTakeover: true, |
- serverNoContextTakeover: true); |
+ compression = new CompressionOptions( |
+ clientNoContextTakeover: true, serverNoContextTakeover: true); |
testReturnHeaders('permessage-deflate; client_max_window_bits; ', |
- 'permessage-deflate; client_max_window_bits=15', |
- serverCompression: compression); |
+ 'permessage-deflate; client_max_window_bits=15', |
+ serverCompression: compression); |
compression = CompressionOptions.DEFAULT; |
testClientRequestHeaders(compression); |
- compression = new CompressionOptions(clientNoContextTakeover: true, |
- serverNoContextTakeover: true); |
+ compression = new CompressionOptions( |
+ clientNoContextTakeover: true, serverNoContextTakeover: true); |
testClientRequestHeaders(compression); |
- compression = new CompressionOptions(clientNoContextTakeover: true, |
+ compression = new CompressionOptions( |
+ clientNoContextTakeover: true, |
serverNoContextTakeover: true, |
clientMaxWindowBits: 8, |
serverMaxWindowBits: 8); |