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

Side by Side Diff: tests/standalone/io/http_stream_close_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: Rebased to r18818 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) 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 5
6 import "dart:io"; 6 import "dart:io";
7 import "dart:uri"; 7 import "dart:uri";
8 8
9 main() { 9 main() {
10 bool serverOnClosed = false; 10 bool serverOnClosed = false;
11 bool clientOnClosed = false; 11 bool clientOnClosed = false;
12 bool requestOnClosed = false; 12 bool requestOnClosed = false;
13 13
14 var server = new HttpServer(); 14 HttpServer.bind("127.0.0.1", 0).then((server) {
15 var client = new HttpClient(); 15 var client = new HttpClient();
16 16
17 checkDone() { 17 checkDone() {
18 if (serverOnClosed && clientOnClosed && requestOnClosed) { 18 if (serverOnClosed && clientOnClosed && requestOnClosed) {
19 server.close(); 19 server.close();
20 client.shutdown(); 20 client.close();
21 }
21 } 22 }
22 }
23 23
24 server.listen("127.0.0.1", 0); 24 server.listen((request) {
25 server.defaultRequestHandler = (request, response) { 25 request.listen(
26 request.inputStream.onData = request.inputStream.read; 26 (_) {},
27 request.inputStream.onClosed = () { 27 onDone: () {
28 response.outputStream.onClosed = () { 28 request.response.done.then((_) {
29 serverOnClosed = true; 29 serverOnClosed = true;
30 checkDone(); 30 checkDone();
31 }; 31 });
32 response.outputStream.writeString("hello!"); 32 request.response.addString("hello!");
33 response.outputStream.close(); 33 request.response.close();
34 }; 34 });
35 }; 35 });
36 36
37 var connection = client.postUrl( 37 client.postUrl(Uri.parse("http://127.0.0.1:${server.port}"))
38 Uri.parse("http://127.0.0.1:${server.port}")); 38 .then((request) {
39 connection.onError = (e) { throw e; }; 39 request.contentLength = "hello!".length;
40 connection.onRequest = (request) { 40 request.done.then((_) {
41 request.contentLength = "hello!".length; 41 clientOnClosed = true;
42 request.outputStream.onError = (e) { throw e; }; 42 checkDone();
43 request.outputStream.onClosed = () { 43 });
44 clientOnClosed = true; 44 request.addString("hello!");
45 checkDone(); 45 return request.close();
46 }; 46 })
47 request.outputStream.writeString("hello!"); 47 .then((response) {
48 request.outputStream.close(); 48 response.listen(
49 }; 49 (_) {},
50 connection.onResponse = (response) { 50 onDone: () {
51 response.inputStream.onData = response.inputStream.read; 51 requestOnClosed = true;
52 response.inputStream.onClosed = () { 52 checkDone();
53 requestOnClosed = true; 53 });
54 checkDone(); 54 });
55 }; 55 });
56 };
57 } 56 }
OLDNEW
« no previous file with comments | « tests/standalone/io/http_shutdown_test.dart ('k') | tests/standalone/io/https_client_certificate_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698