| OLD | NEW |
| (Empty) | |
| 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 |
| 3 // BSD-style license that can be found in the LICENSE file. |
| 4 |
| 5 import "dart:io"; |
| 6 import "dart:isolate"; |
| 7 import "dart:scalarlist"; |
| 8 |
| 9 void testClientRequest(void handler(request)) { |
| 10 HttpServer.bind().then((server) { |
| 11 server.listen((request) { |
| 12 request.listen((_) {}, onDone: () { |
| 13 request.response.close(); |
| 14 }, onError: (e) {}); |
| 15 }); |
| 16 |
| 17 var client = new HttpClient(); |
| 18 client.get("127.0.0.1", server.port, "/") |
| 19 .then((request) { |
| 20 return handler(request); |
| 21 }) |
| 22 .then((response) { |
| 23 response.listen((_) {}, onDone: () { |
| 24 client.close(); |
| 25 server.close(); |
| 26 }); |
| 27 }) |
| 28 .catchError((error) { |
| 29 server.close(); |
| 30 client.close(); |
| 31 }, test: (e) => e is HttpParserException); |
| 32 }); |
| 33 } |
| 34 |
| 35 void testResponseDone() { |
| 36 testClientRequest((request) { |
| 37 request.close(); |
| 38 request.done.then((req) { |
| 39 Expect.equals(request, req); |
| 40 }); |
| 41 return request.response; |
| 42 }); |
| 43 } |
| 44 |
| 45 void testBadResponseAdd() { |
| 46 testClientRequest((request) { |
| 47 var port = new ReceivePort(); |
| 48 request.contentLength = 0; |
| 49 request.add([0]); |
| 50 request.done.catchError((error) { |
| 51 port.close(); |
| 52 }, test: (e) => e is HttpException); |
| 53 return request.response; |
| 54 }); |
| 55 |
| 56 testClientRequest((request) { |
| 57 var port = new ReceivePort(); |
| 58 request.contentLength = 5; |
| 59 request.add([0, 0, 0]); |
| 60 request.add([0, 0, 0]); |
| 61 request.done.catchError((error) { |
| 62 port.close(); |
| 63 }, test: (e) => e is HttpException); |
| 64 return request.response; |
| 65 }); |
| 66 |
| 67 testClientRequest((request) { |
| 68 var port = new ReceivePort(); |
| 69 request.contentLength = 0; |
| 70 request.add(new Uint8List(64 * 1024)); |
| 71 request.add(new Uint8List(64 * 1024)); |
| 72 request.add(new Uint8List(64 * 1024)); |
| 73 request.done.catchError((error) { |
| 74 port.close(); |
| 75 }, test: (e) => e is HttpException); |
| 76 return request.response; |
| 77 }); |
| 78 } |
| 79 |
| 80 void testBadResponseClose() { |
| 81 testClientRequest((request) { |
| 82 var port = new ReceivePort(); |
| 83 request.contentLength = 5; |
| 84 request.close(); |
| 85 request.done.catchError((error) { |
| 86 port.close(); |
| 87 }, test: (e) => e is HttpException); |
| 88 return request.response; |
| 89 }); |
| 90 |
| 91 testClientRequest((request) { |
| 92 var port = new ReceivePort(); |
| 93 request.contentLength = 5; |
| 94 request.add([0]); |
| 95 request.close(); |
| 96 request.done.catchError((error) { |
| 97 port.close(); |
| 98 }, test: (e) => e is HttpException); |
| 99 return request.response; |
| 100 }); |
| 101 } |
| 102 |
| 103 void main() { |
| 104 testResponseDone(); |
| 105 testBadResponseAdd(); |
| 106 testBadResponseClose(); |
| 107 } |
| OLD | NEW |