| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 // VMOptions= | 5 // VMOptions= |
| 6 // VMOptions=--short_socket_read | 6 // VMOptions=--short_socket_read |
| 7 // VMOptions=--short_socket_write | 7 // VMOptions=--short_socket_write |
| 8 // VMOptions=--short_socket_read --short_socket_write | 8 // VMOptions=--short_socket_read --short_socket_write |
| 9 | 9 |
| 10 import "package:expect/expect.dart"; | 10 import "package:expect/expect.dart"; |
| 11 import "dart:async"; | 11 import "dart:async"; |
| 12 import "dart:io"; | 12 import "dart:io"; |
| 13 import "dart:isolate"; | 13 import "dart:isolate"; |
| 14 | 14 |
| 15 const HOST_IP = "127.0.0.1"; | |
| 16 const HOST_NAME = "localhost"; | 15 const HOST_NAME = "localhost"; |
| 17 const CERTIFICATE = "localhost_cert"; | 16 const CERTIFICATE = "localhost_cert"; |
| 18 | 17 |
| 19 // This test creates a server and a client connects. After connecting | 18 // This test creates a server and a client connects. After connecting |
| 20 // and an optional initial handshake the connection is secured by | 19 // and an optional initial handshake the connection is secured by |
| 21 // upgrading to a secure connection The client then writes and the | 20 // upgrading to a secure connection The client then writes and the |
| 22 // server echos. When the server has finished its echo it | 21 // server echos. When the server has finished its echo it |
| 23 // half-closes. When the client gets the close event is closes fully. | 22 // half-closes. When the client gets the close event is closes fully. |
| 24 // | 23 // |
| 25 // The test can be run in different configurations based on | 24 // The test can be run in different configurations based on |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 completer.complete(null); | 144 completer.complete(null); |
| 146 } | 145 } |
| 147 }, | 146 }, |
| 148 onDone: () => Expect.fail("Should not be called") | 147 onDone: () => Expect.fail("Should not be called") |
| 149 ); | 148 ); |
| 150 socket.add(createHandshakeTestData()); | 149 socket.add(createHandshakeTestData()); |
| 151 return completer.future; | 150 return completer.future; |
| 152 } | 151 } |
| 153 | 152 |
| 154 Future<SecureSocket> connectClient(int port) { | 153 Future<SecureSocket> connectClient(int port) { |
| 155 var host = hostnameInConnect ? HOST_NAME : HOST_IP; | |
| 156 if (!handshakeBeforeSecure) { | 154 if (!handshakeBeforeSecure) { |
| 157 return Socket.connect(host, port).then((socket) { | 155 return Socket.connect(HOST_NAME, port).then((socket) { |
| 158 var future; | 156 var future; |
| 159 if (hostnameInConnect) { | 157 if (hostnameInConnect) { |
| 160 future = SecureSocket.secure(socket); | 158 future = SecureSocket.secure(socket); |
| 161 } else { | 159 } else { |
| 162 future = SecureSocket.secure(socket, host: HOST_NAME); | 160 future = SecureSocket.secure(socket, host: HOST_NAME); |
| 163 } | 161 } |
| 164 return future.then((secureSocket) { | 162 return future.then((secureSocket) { |
| 165 Expect.throws(() => socket.add([0])); | 163 Expect.throws(() => socket.add([0])); |
| 166 return secureSocket; | 164 return secureSocket; |
| 167 }); | 165 }); |
| 168 }); | 166 }); |
| 169 } else { | 167 } else { |
| 170 return Socket.connect(host, port).then((socket) { | 168 return Socket.connect(HOST_NAME, port).then((socket) { |
| 171 return runClientHandshake(socket).then((_) { | 169 return runClientHandshake(socket).then((_) { |
| 172 var future; | 170 var future; |
| 173 if (hostnameInConnect) { | 171 if (hostnameInConnect) { |
| 174 future = SecureSocket.secure(socket); | 172 future = SecureSocket.secure(socket); |
| 175 } else { | 173 } else { |
| 176 future = SecureSocket.secure(socket, host: HOST_NAME); | 174 future = SecureSocket.secure(socket, host: HOST_NAME); |
| 177 } | 175 } |
| 178 return future.then((secureSocket) { | 176 return future.then((secureSocket) { |
| 179 Expect.throws(() => socket.add([0])); | 177 Expect.throws(() => socket.add([0])); |
| 180 return secureSocket; | 178 return secureSocket; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 SecureSocket.initialize(database: certificateDatabase.toNativePath(), | 216 SecureSocket.initialize(database: certificateDatabase.toNativePath(), |
| 219 password: 'dartdart', | 217 password: 'dartdart', |
| 220 useBuiltinRoots: false); | 218 useBuiltinRoots: false); |
| 221 test(false, false); | 219 test(false, false); |
| 222 test(true, false); | 220 test(true, false); |
| 223 test(false, true); | 221 test(false, true); |
| 224 test(true, true); | 222 test(true, true); |
| 225 test(false, true, true); | 223 test(false, true, true); |
| 226 test(true, true, true); | 224 test(true, true, true); |
| 227 } | 225 } |
| OLD | NEW |