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

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

Issue 201993002: Fix SecureSocket tests to look up localhost only once, where possible. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Remove useless change to https_client_certificate_test.dart Created 6 years, 9 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 "package:expect/expect.dart";
6 import "package:path/path.dart";
7 import "dart:async"; 5 import "dart:async";
8 import "dart:io"; 6 import "dart:io";
9 import "dart:isolate"; 7 import "dart:isolate";
10 8
11 const HOST_NAME = "localhost"; 9 import "package:expect/expect.dart";
10
11 InternetAddress HOST;
12 const CERTIFICATE = "localhost_cert";
12 13
13 void testListenOn() { 14 void testListenOn() {
14 void test(void onDone()) { 15 void test(void onDone()) {
15 HttpServer.bindSecure(HOST_NAME, 16 HttpServer.bindSecure(HOST,
16 0, 17 0,
17 backlog: 5, 18 backlog: 5,
18 certificateName: 'localhost_cert').then((server) { 19 certificateName: CERTIFICATE).then((server) {
19 ReceivePort serverPort = new ReceivePort(); 20 ReceivePort serverPort = new ReceivePort();
20 server.listen((HttpRequest request) { 21 server.listen((HttpRequest request) {
21 request.listen( 22 request.listen(
22 (_) { }, 23 (_) { },
23 onDone: () { 24 onDone: () {
24 request.response.close(); 25 request.response.close();
25 serverPort.close(); 26 serverPort.close();
26 }); 27 });
27 }); 28 });
28 29
29 HttpClient client = new HttpClient(); 30 HttpClient client = new HttpClient();
30 ReceivePort clientPort = new ReceivePort(); 31 ReceivePort clientPort = new ReceivePort();
31 client.getUrl(Uri.parse("https://$HOST_NAME:${server.port}/")) 32 client.getUrl(Uri.parse("https://${HOST.host}:${server.port}/"))
32 .then((HttpClientRequest request) { 33 .then((HttpClientRequest request) {
33 return request.close(); 34 return request.close();
34 }) 35 })
35 .then((HttpClientResponse response) { 36 .then((HttpClientResponse response) {
36 response.listen( 37 response.listen(
37 (_) { }, 38 (_) { },
38 onDone: () { 39 onDone: () {
39 client.close(); 40 client.close();
40 clientPort.close(); 41 clientPort.close();
41 server.close(); 42 server.close();
(...skipping 15 matching lines...) Expand all
57 }); 58 });
58 } 59 }
59 60
60 void InitializeSSL() { 61 void InitializeSSL() {
61 var testPkcertDatabase = Platform.script.resolve('pkcert').toFilePath(); 62 var testPkcertDatabase = Platform.script.resolve('pkcert').toFilePath();
62 SecureSocket.initialize(database: testPkcertDatabase, 63 SecureSocket.initialize(database: testPkcertDatabase,
63 password: 'dartdart'); 64 password: 'dartdart');
64 } 65 }
65 66
66 void testEarlyClientClose() { 67 void testEarlyClientClose() {
67 HttpServer.bindSecure(HOST_NAME, 68 HttpServer.bindSecure(HOST,
68 0, 69 0,
69 certificateName: 'localhost_cert').then((server) { 70 certificateName: 'localhost_cert').then((server) {
70 server.listen( 71 server.listen(
71 (request) { 72 (request) {
72 String name = Platform.script.toFilePath(); 73 String name = Platform.script.toFilePath();
73 new File(name).openRead().pipe(request.response) 74 new File(name).openRead().pipe(request.response)
74 .catchError((e) { /* ignore */ }); 75 .catchError((e) { /* ignore */ });
75 }); 76 });
76 77
77 var count = 0; 78 var count = 0;
78 makeRequest() { 79 makeRequest() {
79 Socket.connect(HOST_NAME, server.port).then((socket) { 80 Socket.connect(HOST, server.port).then((socket) {
80 var data = "Invalid TLS handshake"; 81 var data = "Invalid TLS handshake";
81 socket.write(data); 82 socket.write(data);
82 socket.close(); 83 socket.close();
83 socket.done.then((_) { 84 socket.done.then((_) {
84 socket.destroy(); 85 socket.destroy();
85 if (++count < 10) { 86 if (++count < 10) {
86 makeRequest(); 87 makeRequest();
87 } else { 88 } else {
88 server.close(); 89 server.close();
89 } 90 }
90 }); 91 });
91 }); 92 });
92 } 93 }
93 makeRequest(); 94 makeRequest();
94 }); 95 });
95 } 96 }
96 97
97 void main() { 98 void main() {
98 InitializeSSL(); 99 InitializeSSL();
99 testListenOn(); 100 InternetAddress.lookup("localhost").then((hosts) {
100 testEarlyClientClose(); 101 HOST = hosts.first;
102 testListenOn();
103 testEarlyClientClose();
104 });
101 } 105 }
OLDNEW
« no previous file with comments | « sdk/lib/io/secure_server_socket.dart ('k') | tests/standalone/io/raw_secure_server_closing_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698