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

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

Issue 20036002: Don't throw exceptions when adding to a IOSink(StreamSink) after close. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Document the behaviour. Created 7 years, 5 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
« no previous file with comments | « tests/standalone/io/socket_exception_test.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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";
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 Future<SecureSocket> connectClient(int port) { 153 Future<SecureSocket> connectClient(int port) {
154 if (!handshakeBeforeSecure) { 154 if (!handshakeBeforeSecure) {
155 return Socket.connect(HOST_NAME, port).then((socket) { 155 return Socket.connect(HOST_NAME, port).then((socket) {
156 var future; 156 var future;
157 if (hostnameInConnect) { 157 if (hostnameInConnect) {
158 future = SecureSocket.secure(socket); 158 future = SecureSocket.secure(socket);
159 } else { 159 } else {
160 future = SecureSocket.secure(socket, host: HOST_NAME); 160 future = SecureSocket.secure(socket, host: HOST_NAME);
161 } 161 }
162 return future.then((secureSocket) { 162 return future.then((secureSocket) {
163 Expect.throws(() => socket.add([0])); 163 socket.add([0]);
164 return secureSocket; 164 return secureSocket;
165 }); 165 });
166 }); 166 });
167 } else { 167 } else {
168 return Socket.connect(HOST_NAME, port).then((socket) { 168 return Socket.connect(HOST_NAME, port).then((socket) {
169 return runClientHandshake(socket).then((_) { 169 return runClientHandshake(socket).then((_) {
170 var future; 170 var future;
171 if (hostnameInConnect) { 171 if (hostnameInConnect) {
172 future = SecureSocket.secure(socket); 172 future = SecureSocket.secure(socket);
173 } else { 173 } else {
174 future = SecureSocket.secure(socket, host: HOST_NAME); 174 future = SecureSocket.secure(socket, host: HOST_NAME);
175 } 175 }
176 return future.then((secureSocket) { 176 return future.then((secureSocket) {
177 Expect.throws(() => socket.add([0])); 177 socket.add([0]);
178 return secureSocket; 178 return secureSocket;
179 }); 179 });
180 }); 180 });
181 }); 181 });
182 } 182 }
183 } 183 }
184 184
185 serverReady(server) { 185 serverReady(server) {
186 server.listen((client) { 186 server.listen((client) {
187 if (!handshakeBeforeSecure) { 187 if (!handshakeBeforeSecure) {
188 SecureSocket.secureServer(client, CERTIFICATE).then((secureClient) { 188 SecureSocket.secureServer(client, CERTIFICATE).then((secureClient) {
189 Expect.throws(() => client.add([0])); 189 client.add([0]);
190 runServer(secureClient).then((_) => server.close()); 190 runServer(secureClient).then((_) => server.close());
191 }); 191 });
192 } else { 192 } else {
193 runServerHandshake(client).then((carryOverData) { 193 runServerHandshake(client).then((carryOverData) {
194 SecureSocket.secureServer( 194 SecureSocket.secureServer(
195 client, 195 client,
196 CERTIFICATE, 196 CERTIFICATE,
197 bufferedData: carryOverData).then((secureClient) { 197 bufferedData: carryOverData).then((secureClient) {
198 Expect.throws(() => client.add([0])); 198 client.add([0]);
199 runServer(secureClient).then((_) => server.close()); 199 runServer(secureClient).then((_) => server.close());
200 }); 200 });
201 }); 201 });
202 } 202 }
203 }); 203 });
204 204
205 connectClient(server.port).then(runClient).then((socket) { 205 connectClient(server.port).then(runClient).then((socket) {
206 port.close(); 206 port.close();
207 }); 207 });
208 } 208 }
209 209
210 ServerSocket.bind(HOST_NAME, 0).then(serverReady); 210 ServerSocket.bind(HOST_NAME, 0).then(serverReady);
211 } 211 }
212 212
213 main() { 213 main() {
214 Path scriptDir = new Path(Platform.script).directoryPath; 214 Path scriptDir = new Path(Platform.script).directoryPath;
215 Path certificateDatabase = scriptDir.append('pkcert'); 215 Path certificateDatabase = scriptDir.append('pkcert');
216 SecureSocket.initialize(database: certificateDatabase.toNativePath(), 216 SecureSocket.initialize(database: certificateDatabase.toNativePath(),
217 password: 'dartdart', 217 password: 'dartdart',
218 useBuiltinRoots: false); 218 useBuiltinRoots: false);
219 test(false, false); 219 test(false, false);
220 test(true, false); 220 test(true, false);
221 test(false, true); 221 test(false, true);
222 test(true, true); 222 test(true, true);
223 test(false, true, true); 223 test(false, true, true);
224 test(true, true, true); 224 test(true, true, true);
225 } 225 }
OLDNEW
« no previous file with comments | « tests/standalone/io/socket_exception_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698