| 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 // VMOptions= |
| 6 // VMOptions=--short_socket_read |
| 7 // VMOptions=--short_socket_write |
| 8 // VMOptions=--short_socket_read --short_socket_write |
| 9 |
| 10 import 'dart:async'; |
| 11 import 'dart:io'; |
| 12 import 'dart:isolate'; |
| 13 |
| 14 void testGetEmptyRequest() { |
| 15 HttpServer.bind().then((server) { |
| 16 server.listen((request) { |
| 17 request.pipe(request.response); |
| 18 }); |
| 19 |
| 20 var client = new HttpClient(); |
| 21 client.get("127.0.0.1", server.port, "/") |
| 22 .then((request) => request.close()) |
| 23 .then((response) { |
| 24 response.listen( |
| 25 (data) {}, |
| 26 onDone: server.close); |
| 27 }); |
| 28 }); |
| 29 } |
| 30 |
| 31 void testGetDataRequest() { |
| 32 HttpServer.bind().then((server) { |
| 33 var data = "lalala".charCodes; |
| 34 server.listen((request) { |
| 35 request.response.add(data); |
| 36 request.pipe(request.response); |
| 37 }); |
| 38 |
| 39 var client = new HttpClient(); |
| 40 client.get("127.0.0.1", server.port, "/") |
| 41 .then((request) => request.close()) |
| 42 .then((response) { |
| 43 int count = 0; |
| 44 response.listen( |
| 45 (data) => count += data.length, |
| 46 onDone: () { |
| 47 server.close(); |
| 48 Expect.equals(data.length, count); |
| 49 }); |
| 50 }); |
| 51 }); |
| 52 } |
| 53 |
| 54 void testGetInvalidHost() { |
| 55 var port = new ReceivePort(); |
| 56 var client = new HttpClient(); |
| 57 client.get("__SOMETHING_INVALID__", 8888, "/") |
| 58 .catchError((error) { |
| 59 port.close(); |
| 60 client.close(); |
| 61 }); |
| 62 } |
| 63 |
| 64 void testGetServerClose() { |
| 65 HttpServer.bind().then((server) { |
| 66 server.listen((request) { |
| 67 server.close(); |
| 68 }); |
| 69 |
| 70 var port = new ReceivePort(); |
| 71 var client = new HttpClient(); |
| 72 client.get("127.0.0.1", server.port, "/") |
| 73 .then((request) => request.close()) |
| 74 .then((response) { |
| 75 Expect.fail("Request not expected"); |
| 76 }) |
| 77 .catchError((error) => port.close(), |
| 78 test: (error) => error is HttpParserException); |
| 79 }); |
| 80 } |
| 81 |
| 82 void testGetDataServerClose() { |
| 83 var completer = new Completer(); |
| 84 HttpServer.bind().then((server) { |
| 85 server.listen((request) { |
| 86 request.response.contentLength = 100; |
| 87 request.response.addString("data"); |
| 88 request.response.addString("more data"); |
| 89 completer.future.then((_) => server.close()); |
| 90 }); |
| 91 |
| 92 var port = new ReceivePort(); |
| 93 var client = new HttpClient(); |
| 94 client.get("127.0.0.1", server.port, "/") |
| 95 .then((request) => request.close()) |
| 96 .then((response) { |
| 97 // Close the (incomplete) response, now we have seen the response object
. |
| 98 completer.complete(null); |
| 99 int errors = 0; |
| 100 response.listen( |
| 101 (data) {}, |
| 102 onError: (error) => errors++, |
| 103 onDone: () { |
| 104 port.close(); |
| 105 Expect.equals(1, errors); |
| 106 }); |
| 107 }); |
| 108 }); |
| 109 } |
| 110 |
| 111 void testPostEmptyRequest() { |
| 112 HttpServer.bind().then((server) { |
| 113 server.listen((request) { |
| 114 request.pipe(request.response); |
| 115 }); |
| 116 |
| 117 var client = new HttpClient(); |
| 118 client.post("127.0.0.1", server.port, "/") |
| 119 .then((request) => request.close()) |
| 120 .then((response) { |
| 121 response.listen((data) {}, onDone: server.close); |
| 122 }); |
| 123 }); |
| 124 } |
| 125 |
| 126 |
| 127 void main() { |
| 128 testGetEmptyRequest(); |
| 129 testGetDataRequest(); |
| 130 testGetInvalidHost(); |
| 131 testGetServerClose(); |
| 132 testGetDataServerClose(); |
| 133 testPostEmptyRequest(); |
| 134 } |
| OLD | NEW |