Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(51)

Side by Side Diff: tests/standalone/io/https_server_test.dart

Issue 12316036: Merge IO v2 branch to bleeding edge (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import "dart:io"; 5 import "dart:io";
6 import "dart:uri"; 6 import "dart:uri";
7 import "dart:isolate"; 7 import "dart:isolate";
8 8
9 const SERVER_ADDRESS = "127.0.0.1"; 9 const SERVER_ADDRESS = "127.0.0.1";
10 const HOST_NAME = "localhost"; 10 const HOST_NAME = "localhost";
11 11
12 void testListenOn() { 12 void testListenOn() {
13 void test(void onDone()) { 13 void test(void onDone()) {
14 HttpsServer server = new HttpsServer(); 14 HttpServer.bindSecure(SERVER_ADDRESS,
15 Expect.throws(() => server.port); 15 0,
16 backlog: 5,
17 certificateName: 'localhost_cert').then((server) {
18 ReceivePort serverPort = new ReceivePort();
19 server.listen((HttpRequest request) {
20 request.listen(
21 (_) { },
22 onDone: () {
23 request.response.close();
24 serverPort.close();
25 });
26 });
16 27
17 ReceivePort serverPort = new ReceivePort(); 28 HttpClient client = new HttpClient();
18 server.defaultRequestHandler = 29 ReceivePort clientPort = new ReceivePort();
19 (HttpRequest request, HttpResponse response) { 30 client.getUrl(Uri.parse("https://$HOST_NAME:${server.port}/"))
20 request.inputStream.onClosed = () { 31 .then((HttpClientRequest request) {
21 response.outputStream.close(); 32 return request.close();
22 serverPort.close(); 33 })
23 }; 34 .then((HttpClientResponse response) {
24 }; 35 response.listen(
36 (_) { },
37 onDone: () {
38 client.close();
39 clientPort.close();
40 server.close();
41 Expect.throws(() => server.port);
42 onDone();
43 });
44 })
45 .catchError((error) {
46 Expect.fail("Unexpected error in Https client: $error");
47 });
48 });
49 }
25 50
26 server.onError = (Exception e) { 51 // Test two servers in succession.
27 Expect.fail("Unexpected error in Https Server: $e");
28 };
29
30 server.listen(SERVER_ADDRESS,
31 0,
32 backlog: 5,
33 certificate_name: 'CN=$HOST_NAME');
34
35 HttpClient client = new HttpClient();
36 HttpClientConnection conn =
37 client.getUrl(Uri.parse("https://$HOST_NAME:${server.port}/"));
38 conn.onRequest = (HttpClientRequest request) {
39 request.outputStream.close();
40 };
41 ReceivePort clientPort = new ReceivePort();
42 conn.onResponse = (HttpClientResponse response) {
43 response.inputStream.onClosed = () {
44 client.shutdown();
45 clientPort.close();
46 server.close();
47 Expect.throws(() => server.port);
48 onDone();
49 };
50 };
51 conn.onError = (Exception e) {
52 Expect.fail("Unexpected error in Https Client: $e");
53 };
54 };
55
56 // Test two connection after each other.
57 test(() { 52 test(() {
58 test(() { 53 test(() { });
59 });
60 }); 54 });
61 } 55 }
62 56
63 void InitializeSSL() { 57 void InitializeSSL() {
64 var testPkcertDatabase = 58 var testPkcertDatabase =
65 new Path(new Options().script).directoryPath.append('pkcert/'); 59 new Path(new Options().script).directoryPath.append('pkcert/');
66 SecureSocket.initialize(database: testPkcertDatabase.toNativePath(), 60 SecureSocket.initialize(database: testPkcertDatabase.toNativePath(),
67 password: 'dartdart'); 61 password: 'dartdart');
68 } 62 }
69 63
70 void main() { 64 void main() {
71 InitializeSSL(); 65 InitializeSSL();
72 testListenOn(); 66 testListenOn();
73 } 67 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698