| Index: tests/standalone/io/web_socket_no_secure_test.dart
|
| diff --git a/tests/standalone/io/web_socket_no_secure_test.dart b/tests/standalone/io/web_socket_no_secure_test.dart
|
| deleted file mode 100644
|
| index 53c227e8772d72f003df19376f9d81787326d2f8..0000000000000000000000000000000000000000
|
| --- a/tests/standalone/io/web_socket_no_secure_test.dart
|
| +++ /dev/null
|
| @@ -1,295 +0,0 @@
|
| -// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -//
|
| -// VMOptions=
|
| -// VMOptions=--short_socket_read
|
| -// VMOptions=--short_socket_write
|
| -// VMOptions=--short_socket_read --short_socket_write
|
| -
|
| -// TODO(7157): Remove this test once the bug is fixed.
|
| -// This is a copy of web_socket_test.dart with the secure connection
|
| -// tests disabled, so it does not crash on Windows.
|
| -
|
| -import "dart:async";
|
| -import "dart:io";
|
| -import "dart:isolate";
|
| -import "dart:scalarlist";
|
| -import "dart:uri";
|
| -
|
| -const String CERT_NAME = 'localhost_cert';
|
| -const String SERVER_ADDRESS = '127.0.0.1';
|
| -const String HOST_NAME = 'localhost';
|
| -
|
| -/**
|
| - * A SecurityConfiguration lets us run the tests over HTTP or HTTPS.
|
| - */
|
| -class SecurityConfiguration {
|
| - final bool secure;
|
| -
|
| - SecurityConfiguration({bool this.secure});
|
| -
|
| - Future<HttpServer> createServer({int backlog: 0}) =>
|
| - secure ? HttpServer.bindSecure(SERVER_ADDRESS,
|
| - 0,
|
| - backlog: backlog,
|
| - certificateName: CERT_NAME)
|
| - : HttpServer.bind(SERVER_ADDRESS,
|
| - 0,
|
| - backlog);
|
| -
|
| - Future<WebSocket> createClient(int port) =>
|
| - WebSocket.connect('${secure ? "wss" : "ws"}://$HOST_NAME:$port/');
|
| -
|
| - void testRequestResponseClientCloses(int totalConnections,
|
| - int closeStatus,
|
| - String closeReason) {
|
| - createServer().then((server) {
|
| - server.transform(new WebSocketTransformer()).listen((webSocket) {
|
| - webSocket.listen((event) {
|
| - if (event is MessageEvent) {
|
| - webSocket.send(event.data);
|
| - } else if (event is CloseEvent) {
|
| - Expect.equals(closeStatus == null
|
| - ? WebSocketStatus.NO_STATUS_RECEIVED
|
| - : closeStatus, event.code);
|
| - Expect.equals(closeReason == null ? "" : closeReason, event.reason);
|
| - }
|
| - });
|
| - });
|
| -
|
| - int closeCount = 0;
|
| - String messageText = "Hello, world!";
|
| - for (int i = 0; i < totalConnections; i++) {
|
| - int messageCount = 0;
|
| - createClient(server.port).then((webSocket) {
|
| - webSocket.send(messageText);
|
| - webSocket.listen((event) {
|
| - if (event is MessageEvent) {
|
| - messageCount++;
|
| - if (messageCount < 1 ) {
|
| - Expect.equals(messageText, event.data);
|
| - webSocket.send(event.data);
|
| - } else {
|
| - webSocket.close(closeStatus, closeReason);
|
| - }
|
| - } else if (event is CloseEvent) {
|
| - Expect.equals(closeStatus == null
|
| - ? WebSocketStatus.NO_STATUS_RECEIVED
|
| - : closeStatus, event.code);
|
| - Expect.equals("", event.reason);
|
| - closeCount++;
|
| - if (closeCount == totalConnections) {
|
| - server.close();
|
| - }
|
| - }
|
| - });
|
| - });
|
| - }
|
| - });
|
| - }
|
| -
|
| - void testRequestResponseServerCloses(int totalConnections,
|
| - int closeStatus,
|
| - String closeReason) {
|
| - createServer().then((server) {
|
| - int closeCount = 0;
|
| - server.transform(new WebSocketTransformer()).listen((webSocket) {
|
| - String messageText = "Hello, world!";
|
| - int messageCount = 0;
|
| - webSocket.listen((event) {
|
| - if (event is MessageEvent) {
|
| - messageCount++;
|
| - if (messageCount < 10) {
|
| - Expect.equals(messageText, event.data);
|
| - webSocket.send(event.data);
|
| - } else {
|
| - webSocket.close(closeStatus, closeReason);
|
| - }
|
| - } else if (event is CloseEvent) {
|
| - Expect.equals(closeStatus == null
|
| - ? WebSocketStatus.NO_STATUS_RECEIVED
|
| - : closeStatus, event.code);
|
| - Expect.equals("", event.reason);
|
| - closeCount++;
|
| - if (closeCount == totalConnections) {
|
| - server.close();
|
| - }
|
| - }
|
| - });
|
| - webSocket.send(messageText);
|
| - });
|
| -
|
| - for (int i = 0; i < totalConnections; i++) {
|
| - createClient(server.port).then((webSocket) {
|
| - webSocket.listen((event) {
|
| - if (event is MessageEvent) {
|
| - webSocket.send(event.data);
|
| - } else if (event is CloseEvent) {
|
| - Expect.equals(closeStatus == null
|
| - ? WebSocketStatus.NO_STATUS_RECEIVED
|
| - : closeStatus, event.code);
|
| - Expect.equals(
|
| - closeReason == null ? "" : closeReason, event.reason);
|
| - }
|
| - });
|
| - });
|
| - }
|
| -
|
| - });
|
| - }
|
| -
|
| -
|
| - void testMessageLength(int messageLength) {
|
| - createServer().then((server) {
|
| - Uint8List originalMessage = new Uint8List(messageLength);
|
| - server.transform(new WebSocketTransformer()).listen((webSocket) {
|
| - webSocket.listen((event) {
|
| - if (event is MessageEvent) {
|
| - Expect.listEquals(originalMessage, event.data);
|
| - webSocket.send(event.data);
|
| - } else if (event is CloseEvent) {
|
| - }
|
| - });
|
| - });
|
| -
|
| - createClient(server.port).then((webSocket) {
|
| - webSocket.listen((event) {
|
| - if (event is MessageEvent) {
|
| - Expect.listEquals(originalMessage, event.data);
|
| - webSocket.close();
|
| - } else if (event is CloseEvent) {
|
| - server.close();
|
| - }
|
| - });
|
| - webSocket.send(originalMessage);
|
| - });
|
| - });
|
| - }
|
| -
|
| -
|
| - void testNoUpgrade() {
|
| - createServer().then((server) {
|
| - // Create a server which always responds with NOT_FOUND.
|
| - server.listen((request) {
|
| - request.response.statusCode = HttpStatus.NOT_FOUND;
|
| - request.response.close();
|
| - });
|
| -
|
| - createClient(server.port).catchError((error) {
|
| - server.close();
|
| - });
|
| - });
|
| - }
|
| -
|
| -
|
| - void testUsePOST() {
|
| - createServer().then((server) {
|
| - var errorPort = new ReceivePort();
|
| - server.transform(new WebSocketTransformer()).listen((webSocket) {
|
| - Expect.fail("No connection expected");
|
| - }, onError: (e) {
|
| - errorPort.close();
|
| - });
|
| -
|
| - HttpClient client = new HttpClient();
|
| - client.postUrl(Uri.parse(
|
| - "${secure ? 'https:' : 'http:'}//$HOST_NAME:${server.port}/"))
|
| - .then((request) => request.close())
|
| - .then((response) {
|
| - Expect.equals(HttpStatus.BAD_REQUEST, response.statusCode);
|
| - client.close();
|
| - server.close();
|
| - });
|
| - });
|
| - }
|
| -
|
| - void testW3CInterface(int totalConnections,
|
| - int closeStatus,
|
| - String closeReason) {
|
| - createServer().then((server) {
|
| - int closeCount = 0;
|
| - server.transform(new WebSocketTransformer()).listen((webSocket) {
|
| - String messageText = "Hello, world!";
|
| - int messageCount = 0;
|
| - webSocket.listen((event) {
|
| - if (event is MessageEvent) {
|
| - messageCount++;
|
| - if (messageCount < 10) {
|
| - Expect.equals(messageText, event.data);
|
| - webSocket.send(event.data);
|
| - } else {
|
| - webSocket.close(closeStatus, closeReason);
|
| - }
|
| - } else if (event is CloseEvent) {
|
| - Expect.equals(closeStatus, event.code);
|
| - Expect.equals("", event.reason);
|
| - closeCount++;
|
| - if (closeCount == totalConnections) {
|
| - server.close();
|
| - }
|
| - }
|
| - });
|
| - webSocket.send(messageText);
|
| - });
|
| -
|
| - void webSocketConnection() {
|
| - bool onopenCalled = false;
|
| - int onmessageCalled = 0;
|
| - bool oncloseCalled = false;
|
| -
|
| - createClient(server.port).then((webSocket) {
|
| - Expect.isFalse(onopenCalled);
|
| - Expect.equals(0, onmessageCalled);
|
| - Expect.isFalse(oncloseCalled);
|
| - onopenCalled = true;
|
| - Expect.equals(WebSocket.OPEN, webSocket.readyState);
|
| - webSocket.listen((event) {
|
| - if (event is MessageEvent) {
|
| - onmessageCalled++;
|
| - Expect.isTrue(onopenCalled);
|
| - Expect.isFalse(oncloseCalled);
|
| - Expect.equals(WebSocket.OPEN, webSocket.readyState);
|
| - webSocket.send(event.data);
|
| - } else if (event is CloseEvent) {
|
| - Expect.isTrue(onopenCalled);
|
| - Expect.equals(10, onmessageCalled);
|
| - Expect.isFalse(oncloseCalled);
|
| - oncloseCalled = true;
|
| - Expect.isTrue(event.wasClean);
|
| - Expect.equals(3002, event.code);
|
| - Expect.equals("Got tired", event.reason);
|
| - Expect.equals(WebSocket.CLOSED, webSocket.readyState);
|
| - }
|
| - });
|
| - });
|
| - }
|
| -
|
| - for (int i = 0; i < totalConnections; i++) {
|
| - webSocketConnection();
|
| - }
|
| - });
|
| - }
|
| -
|
| - void runTests() {
|
| - testRequestResponseClientCloses(2, null, null);
|
| - testRequestResponseClientCloses(2, 3001, null);
|
| - testRequestResponseClientCloses(2, 3002, "Got tired");
|
| - testRequestResponseServerCloses(2, null, null);
|
| - testRequestResponseServerCloses(2, 3001, null);
|
| - testRequestResponseServerCloses(2, 3002, "Got tired");
|
| - testMessageLength(125);
|
| - testMessageLength(126);
|
| - testMessageLength(127);
|
| - testMessageLength(65535);
|
| - testMessageLength(65536);
|
| - testNoUpgrade();
|
| - testUsePOST();
|
| - testW3CInterface(10, 3002, "Got tired");
|
| - }
|
| -}
|
| -
|
| -
|
| -main() {
|
| - new SecurityConfiguration(secure: false).runTests();
|
| -}
|
|
|