| Index: tests/standalone/io/raw_secure_socket_test.dart
|
| diff --git a/tests/standalone/io/raw_secure_socket_test.dart b/tests/standalone/io/raw_secure_socket_test.dart
|
| index cd327ec5a13fad8de1528833b1eb48ab833e644b..9cd54a1aa26b556d67686ab1b09e9de4a99c6eae 100644
|
| --- a/tests/standalone/io/raw_secure_socket_test.dart
|
| +++ b/tests/standalone/io/raw_secure_socket_test.dart
|
| @@ -13,69 +13,61 @@ import "dart:async";
|
| import "dart:io";
|
| import "dart:isolate";
|
|
|
| -Future<HttpServer> startServer() {
|
| - return HttpServer.bindSecure(
|
| - "localhost",
|
| - 0,
|
| - backlog: 5,
|
| - certificateName: 'localhost_cert').then((server) {
|
| - server.listen((HttpRequest request) {
|
| - request.listen(
|
| - (_) { },
|
| - onDone: () {
|
| - request.response.contentLength = 100;
|
| - for (int i = 0; i < 10; i++) {
|
| - request.response.add([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
|
| - }
|
| - request.response.close();
|
| - });
|
| - });
|
| - return server;
|
| - });
|
| -}
|
| +String localFile(path) => Platform.script.resolve(path).toFilePath();
|
|
|
| -void InitializeSSL() {
|
| - var testPkcertDatabase = Platform.script.resolve('pkcert').toFilePath();
|
| - SecureSocket.initialize(database: testPkcertDatabase,
|
| - password: 'dartdart');
|
| -}
|
| +SecurityContext serverContext = new SecurityContext()
|
| + ..useCertificateChain(localFile('certificates/server_chain.pem'))
|
| + ..usePrivateKey(localFile('certificates/server_key.pem'),
|
| + password: 'dartdart');
|
|
|
| -void main() {
|
| +SecurityContext clientContext = new SecurityContext()
|
| + ..setTrustedCertificates(file: localFile('certificates/trusted_certs.pem'));
|
| +
|
| +main() async {
|
| List<int> message = "GET / HTTP/1.0\r\nHost: localhost\r\n\r\n".codeUnits;
|
| int written = 0;
|
| List<int> body = <int>[];
|
| - InitializeSSL();
|
| - startServer().then((server) {
|
| - RawSecureSocket.connect("localhost", server.port).then((socket) {
|
| - socket.listen(
|
| - (RawSocketEvent event) {
|
| - switch (event) {
|
| - case RawSocketEvent.READ:
|
| - body.addAll(socket.read());
|
| - break;
|
| - case RawSocketEvent.WRITE:
|
| - written +=
|
| - socket.write(message, written, message.length - written);
|
| - if (written < message.length) {
|
| - socket.writeEventsEnabled = true;
|
| - } else {
|
| - socket.shutdown(SocketDirection.SEND);
|
| - }
|
| - break;
|
| - case RawSocketEvent.READ_CLOSED:
|
| - Expect.isTrue(body.length > 100, "$body\n${body.length}");
|
| - Expect.equals(72, body[0]);
|
| - Expect.equals(9, body[body.length - 1]);
|
| - server.close();
|
| - break;
|
| - default: throw "Unexpected event $event";
|
| - }
|
| - },
|
| - onError: (e, trace) {
|
| - String msg = "onError handler of RawSecureSocket stream hit $e";
|
| - if (trace != null) msg += "\nStackTrace: $trace";
|
| - Expect.fail(msg);
|
| - });
|
| - });
|
| + var server = await HttpServer.bindSecure(
|
| + "localhost",
|
| + 0,
|
| + serverContext,
|
| + backlog: 5);
|
| + server.listen((HttpRequest request) async {
|
| + await request.drain();
|
| + request.response.contentLength = 100;
|
| + for (int i = 0; i < 10; i++) {
|
| + request.response.add([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
|
| + }
|
| + request.response.close();
|
| + });
|
| + var socket = await RawSecureSocket.connect("localhost",
|
| + server.port,
|
| + context: clientContext);
|
| + socket.listen((RawSocketEvent event) {
|
| + switch (event) {
|
| + case RawSocketEvent.READ:
|
| + body.addAll(socket.read());
|
| + break;
|
| + case RawSocketEvent.WRITE:
|
| + written +=
|
| + socket.write(message, written, message.length - written);
|
| + if (written < message.length) {
|
| + socket.writeEventsEnabled = true;
|
| + } else {
|
| + socket.shutdown(SocketDirection.SEND);
|
| + }
|
| + break;
|
| + case RawSocketEvent.READ_CLOSED:
|
| + Expect.isTrue(body.length > 100, "$body\n${body.length}");
|
| + Expect.equals(72, body[0]);
|
| + Expect.equals(9, body[body.length - 1]);
|
| + server.close();
|
| + break;
|
| + default: throw "Unexpected event $event";
|
| + }
|
| + }, onError: (e, trace) {
|
| + String msg = "onError handler of RawSecureSocket stream hit $e";
|
| + if (trace != null) msg += "\nStackTrace: $trace";
|
| + Expect.fail(msg);
|
| });
|
| }
|
|
|