| 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 import "package:expect/expect.dart"; | |
| 6 import "dart:io"; | 5 import "dart:io"; |
| 7 import "dart:isolate"; | |
| 8 import "dart:typed_data"; | 6 import "dart:typed_data"; |
| 9 | 7 |
| 10 void testClientRequest(void handler(request)) { | 8 import "package:async_helper/async_helper.dart"; |
| 9 import "package:expect/expect.dart"; |
| 10 |
| 11 void testClientRequest(Future handler(request)) { |
| 11 HttpServer.bind("127.0.0.1", 0).then((server) { | 12 HttpServer.bind("127.0.0.1", 0).then((server) { |
| 12 server.listen((request) { | 13 server.listen((request) { |
| 13 request.listen((_) {}, onDone: () { | 14 request.listen((_) {}, onDone: () { |
| 14 request.response.close(); | 15 request.response.close(); |
| 15 }, onError: (e) {}); | 16 }, onError: (e) {}); |
| 16 }); | 17 }); |
| 17 | 18 |
| 18 var client = new HttpClient(); | 19 var client = new HttpClient(); |
| 19 client.get("127.0.0.1", server.port, "/") | 20 client.get("127.0.0.1", server.port, "/") |
| 20 .then((request) { | 21 .then((request) { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 38 request.close().then((res1) { | 39 request.close().then((res1) { |
| 39 request.done.then((res2) { | 40 request.done.then((res2) { |
| 40 Expect.equals(res1, res2); | 41 Expect.equals(res1, res2); |
| 41 }); | 42 }); |
| 42 }); | 43 }); |
| 43 return request.done; | 44 return request.done; |
| 44 }); | 45 }); |
| 45 } | 46 } |
| 46 | 47 |
| 47 void testBadResponseAdd() { | 48 void testBadResponseAdd() { |
| 49 asyncStart(); |
| 48 testClientRequest((request) { | 50 testClientRequest((request) { |
| 49 var port = new ReceivePort(); | |
| 50 request.contentLength = 0; | 51 request.contentLength = 0; |
| 51 request.add([0]); | 52 request.add([0]); |
| 52 request.close(); | 53 request.close(); |
| 53 request.done.catchError((error) { | 54 request.done.catchError((error) { |
| 54 port.close(); | 55 asyncEnd(); |
| 55 }, test: (e) => e is HttpException); | 56 }, test: (e) => e is HttpException); |
| 56 return request.done; | 57 return request.done; |
| 57 }); | 58 }); |
| 58 | 59 |
| 60 asyncStart(); |
| 59 testClientRequest((request) { | 61 testClientRequest((request) { |
| 60 var port = new ReceivePort(); | |
| 61 request.contentLength = 5; | 62 request.contentLength = 5; |
| 62 request.add([0, 0, 0]); | 63 request.add([0, 0, 0]); |
| 63 request.add([0, 0, 0]); | 64 request.add([0, 0, 0]); |
| 64 request.close(); | 65 request.close(); |
| 65 request.done.catchError((error) { | 66 request.done.catchError((error) { |
| 66 port.close(); | 67 asyncEnd(); |
| 67 }, test: (e) => e is HttpException); | 68 }, test: (e) => e is HttpException); |
| 68 return request.done; | 69 return request.done; |
| 69 }); | 70 }); |
| 70 | 71 |
| 72 asyncStart(); |
| 71 testClientRequest((request) { | 73 testClientRequest((request) { |
| 72 var port = new ReceivePort(); | |
| 73 request.contentLength = 0; | 74 request.contentLength = 0; |
| 74 request.add(new Uint8List(64 * 1024)); | 75 request.add(new Uint8List(64 * 1024)); |
| 75 request.add(new Uint8List(64 * 1024)); | 76 request.add(new Uint8List(64 * 1024)); |
| 76 request.add(new Uint8List(64 * 1024)); | 77 request.add(new Uint8List(64 * 1024)); |
| 77 request.close(); | 78 request.close(); |
| 78 request.done.catchError((error) { | 79 request.done.catchError((error) { |
| 79 port.close(); | 80 asyncEnd(); |
| 80 }, test: (e) => e is HttpException); | 81 }, test: (e) => e is HttpException); |
| 81 return request.done; | 82 return request.done; |
| 82 }); | 83 }); |
| 83 } | 84 } |
| 84 | 85 |
| 85 void testBadResponseClose() { | 86 void testBadResponseClose() { |
| 87 asyncStart(); |
| 86 testClientRequest((request) { | 88 testClientRequest((request) { |
| 87 var port = new ReceivePort(); | |
| 88 request.contentLength = 5; | 89 request.contentLength = 5; |
| 89 request.close(); | 90 request.close(); |
| 90 request.done.catchError((error) { | 91 request.done.catchError((error) { |
| 91 port.close(); | 92 asyncEnd(); |
| 92 }, test: (e) => e is HttpException); | 93 }, test: (e) => e is HttpException); |
| 93 return request.done; | 94 return request.done; |
| 94 }); | 95 }); |
| 95 | 96 |
| 97 asyncStart(); |
| 96 testClientRequest((request) { | 98 testClientRequest((request) { |
| 97 var port = new ReceivePort(); | |
| 98 request.contentLength = 5; | 99 request.contentLength = 5; |
| 99 request.add([0]); | 100 request.add([0]); |
| 100 request.close(); | 101 request.close(); |
| 101 request.done.catchError((error) { | 102 request.done.catchError((error) { |
| 102 port.close(); | 103 asyncEnd(); |
| 103 }, test: (e) => e is HttpException); | 104 }, test: (e) => e is HttpException); |
| 104 return request.done; | 105 return request.done; |
| 105 }); | 106 }); |
| 106 } | 107 } |
| 107 | 108 |
| 108 void main() { | 109 void main() { |
| 109 testResponseDone(); | 110 testResponseDone(); |
| 110 testBadResponseAdd(); | 111 testBadResponseAdd(); |
| 111 testBadResponseClose(); | 112 testBadResponseClose(); |
| 112 } | 113 } |
| OLD | NEW |