blob: 1da88543520bad45e6e666ac41d9f556f14db554 [file] [log] [blame]
// Copyright (c) 2012, 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.
import "dart:io";
import "dart:uri";
import "dart:isolate";
const SERVER_ADDRESS = "127.0.0.1";
const HOST_NAME = "localhost";
void testListenOn() {
void test(void onDone()) {
HttpsServer server = new HttpsServer();
Expect.throws(() => server.port);
ReceivePort serverPort = new ReceivePort();
server.defaultRequestHandler =
(HttpRequest request, HttpResponse response) {
request.inputStream.onClosed = () {
response.outputStream.close();
serverPort.close();
};
};
server.onError = (Exception e) {
Expect.fail("Unexpected error in Https Server: $e");
};
server.listen(SERVER_ADDRESS,
0,
backlog: 5,
certificate_name: 'CN=$HOST_NAME');
HttpClient client = new HttpClient();
HttpClientConnection conn =
client.getUrl(Uri.parse("https://$HOST_NAME:${server.port}/"));
conn.onRequest = (HttpClientRequest request) {
request.outputStream.close();
};
ReceivePort clientPort = new ReceivePort();
conn.onResponse = (HttpClientResponse response) {
response.inputStream.onClosed = () {
client.shutdown();
clientPort.close();
server.close();
Expect.throws(() => server.port);
onDone();
};
};
conn.onError = (Exception e) {
Expect.fail("Unexpected error in Https Client: $e");
};
};
// Test two connection after each other.
test(() {
test(() {
});
});
}
void InitializeSSL() {
var testPkcertDatabase =
new Path(new Options().script).directoryPath.append('pkcert/');
SecureSocket.initialize(database: testPkcertDatabase.toNativePath(),
password: 'dartdart');
}
void main() {
InitializeSSL();
testListenOn();
}