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

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

Issue 14251006: Remove AsyncError with Expando. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comments. Created 7 years, 8 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/http_10_test.dart ('k') | tests/standalone/io/http_redirect_test.dart » ('j') | 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 import "package:expect/expect.dart"; 5 import "package:expect/expect.dart";
6 import "dart:isolate"; 6 import "dart:isolate";
7 import "dart:io"; 7 import "dart:io";
8 8
9 void testNoBody(int totalConnections, bool explicitContentLength) { 9 void testNoBody(int totalConnections, bool explicitContentLength) {
10 var errors = 0; 10 var errors = 0;
11 HttpServer.bind("127.0.0.1", 0, totalConnections).then((server) { 11 HttpServer.bind("127.0.0.1", 0, totalConnections).then((server) {
12 server.listen( 12 server.listen(
13 (HttpRequest request) { 13 (HttpRequest request) {
14 Expect.equals("0", request.headers.value('content-length')); 14 Expect.equals("0", request.headers.value('content-length'));
15 Expect.equals(0, request.contentLength); 15 Expect.equals(0, request.contentLength);
16 var response = request.response; 16 var response = request.response;
17 response.contentLength = 0; 17 response.contentLength = 0;
18 response.done 18 response.done
19 .then((_) { 19 .then((_) {
20 Expect.fail("Unexpected successful response completion"); 20 Expect.fail("Unexpected successful response completion");
21 }) 21 })
22 .catchError((e) { 22 .catchError((error) {
23 Expect.isTrue(e.error is HttpException); 23 Expect.isTrue(error is HttpException);
24 }); 24 });
25 // write with content length 0 closes the connection and 25 // write with content length 0 closes the connection and
26 // reports an error. 26 // reports an error.
27 response.write("x"); 27 response.write("x");
28 // Subsequent write are ignored as there is already an 28 // Subsequent write are ignored as there is already an
29 // error. 29 // error.
30 response.write("x"); 30 response.write("x");
31 // After an explicit close, write becomes a state error 31 // After an explicit close, write becomes a state error
32 // because we have said we will not add more. 32 // because we have said we will not add more.
33 response.close(); 33 response.close();
34 Expect.throws(() => response.write("x"), 34 Expect.throws(() => response.write("x"),
35 (e) => e is StateError); 35 (e) => e is StateError);
36 }, 36 },
37 onError: (e) { 37 onError: (e) {
38 Expect.fail("Unexpected server error $e"); 38 String msg = "Unexpected server error $e";
39 var trace = getAttachedStackTrace(e);
40 if (trace != null) msg += "\nStackTrace: $trace";
41 Expect.fail(msg);
39 }); 42 });
40 43
41 int count = 0; 44 int count = 0;
42 HttpClient client = new HttpClient(); 45 HttpClient client = new HttpClient();
43 for (int i = 0; i < totalConnections; i++) { 46 for (int i = 0; i < totalConnections; i++) {
44 client.get("127.0.0.1", server.port, "/") 47 client.get("127.0.0.1", server.port, "/")
45 .then((request) { 48 .then((request) {
46 if (explicitContentLength) { 49 if (explicitContentLength) {
47 request.contentLength = 0; 50 request.contentLength = 0;
48 } 51 }
49 return request.close(); 52 return request.close();
50 }) 53 })
51 .then((response) { 54 .then((response) {
52 Expect.equals("0", response.headers.value('content-length')); 55 Expect.equals("0", response.headers.value('content-length'));
53 Expect.equals(0, response.contentLength); 56 Expect.equals(0, response.contentLength);
54 response.listen( 57 response.listen(
55 (d) {}, 58 (d) {},
56 onDone: () { 59 onDone: () {
57 if (++count == totalConnections) { 60 if (++count == totalConnections) {
58 client.close(); 61 client.close();
59 server.close(); 62 server.close();
60 } 63 }
61 }); 64 });
62 }) 65 })
63 .catchError((e) { 66 .catchError((e) {
64 Expect.fail("Unexpected error $e"); 67 String msg = "Unexpected error $e";
65 }); 68 var trace = getAttachedStackTrace(e);
69 if (trace != null) msg += "\nStackTrace: $trace";
70 Expect.fail(msg);
71 });
66 } 72 }
67 }); 73 });
68 } 74 }
69 75
70 void testBody(int totalConnections, bool useHeader) { 76 void testBody(int totalConnections, bool useHeader) {
71 HttpServer.bind("127.0.0.1", 0, totalConnections).then((server) { 77 HttpServer.bind("127.0.0.1", 0, totalConnections).then((server) {
72 int serverCount = 0; 78 int serverCount = 0;
73 server.listen( 79 server.listen(
74 (HttpRequest request) { 80 (HttpRequest request) {
75 Expect.equals("2", request.headers.value('content-length')); 81 Expect.equals("2", request.headers.value('content-length'));
76 Expect.equals(2, request.contentLength); 82 Expect.equals(2, request.contentLength);
77 var response = request.response; 83 var response = request.response;
78 if (useHeader) { 84 if (useHeader) {
79 response.contentLength = 2; 85 response.contentLength = 2;
80 } else { 86 } else {
81 response.headers.set("content-length", 2); 87 response.headers.set("content-length", 2);
82 } 88 }
83 request.listen( 89 request.listen(
84 (d) {}, 90 (d) {},
85 onDone: () { 91 onDone: () {
86 response.write("x"); 92 response.write("x");
87 Expect.throws(() => response.contentLength = 3, 93 Expect.throws(() => response.contentLength = 3,
88 (e) => e is HttpException); 94 (e) => e is HttpException);
89 response.write("x"); 95 response.write("x");
90 response.write("x"); 96 response.write("x");
91 response.done 97 response.done
92 .then((_) { 98 .then((_) {
93 Expect.fail("Unexpected successful response completion"); 99 Expect.fail("Unexpected successful response completion");
94 }) 100 })
95 .catchError((e) { 101 .catchError((error) {
96 Expect.isTrue(e.error is HttpException, "[$e]"); 102 Expect.isTrue(error is HttpException, "[$error]");
97 if (++serverCount == totalConnections) { 103 if (++serverCount == totalConnections) {
98 server.close(); 104 server.close();
99 } 105 }
100 }); 106 });
101 response.close(); 107 response.close();
102 Expect.throws(() => response.write("x"), 108 Expect.throws(() => response.write("x"),
103 (e) => e is StateError); 109 (e) => e is StateError);
104 }); 110 });
105 }, 111 },
106 onError: (e) => Expect.fail("Unexpected error $e")); 112 onError: (e) {
113 String msg = "Unexpected error $e";
114 var trace = getAttachedStackTrace(e);
115 if (trace != null) msg += "\nStackTrace: $trace";
116 Expect.fail(msg);
117 });
107 118
108 int clientCount = 0; 119 int clientCount = 0;
109 HttpClient client = new HttpClient(); 120 HttpClient client = new HttpClient();
110 for (int i = 0; i < totalConnections; i++) { 121 for (int i = 0; i < totalConnections; i++) {
111 client.get("127.0.0.1", server.port, "/") 122 client.get("127.0.0.1", server.port, "/")
112 .then((request) { 123 .then((request) {
113 if (useHeader) { 124 if (useHeader) {
114 request.contentLength = 2; 125 request.contentLength = 2;
115 } else { 126 } else {
116 request.headers.add(HttpHeaders.CONTENT_LENGTH, "7"); 127 request.headers.add(HttpHeaders.CONTENT_LENGTH, "7");
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 Expect.throws( 172 Expect.throws(
162 () => response.headers.chunkedTransferEncoding = false, 173 () => response.headers.chunkedTransferEncoding = false,
163 (e) => e is HttpException); 174 (e) => e is HttpException);
164 response.write("x"); 175 response.write("x");
165 response.write("x"); 176 response.write("x");
166 response.close(); 177 response.close();
167 Expect.throws(() => response.write("x"), 178 Expect.throws(() => response.write("x"),
168 (e) => e is StateError); 179 (e) => e is StateError);
169 }); 180 });
170 }, 181 },
171 onError: (e) => Expect.fail("Unexpected error $e")); 182 onError: (e) {
183 String msg = "Unexpected error $e";
184 var trace = getAttachedStackTrace(e);
185 if (trace != null) msg += "\nStackTrace: $trace";
186 Expect.fail(msg);
187 });
172 188
173 int count = 0; 189 int count = 0;
174 HttpClient client = new HttpClient(); 190 HttpClient client = new HttpClient();
175 for (int i = 0; i < totalConnections; i++) { 191 for (int i = 0; i < totalConnections; i++) {
176 client.get("127.0.0.1", server.port, "/") 192 client.get("127.0.0.1", server.port, "/")
177 .then((request) { 193 .then((request) {
178 if (useHeader) { 194 if (useHeader) {
179 request.contentLength = 2; 195 request.contentLength = 2;
180 request.headers.chunkedTransferEncoding = true; 196 request.headers.chunkedTransferEncoding = true;
181 } else { 197 } else {
(...skipping 12 matching lines...) Expand all
194 Expect.equals(-1, response.contentLength); 210 Expect.equals(-1, response.contentLength);
195 response.listen( 211 response.listen(
196 (d) {}, 212 (d) {},
197 onDone: () { 213 onDone: () {
198 if (++count == totalConnections) { 214 if (++count == totalConnections) {
199 client.close(); 215 client.close();
200 server.close(); 216 server.close();
201 } 217 }
202 }); 218 });
203 }) 219 })
204 .catchError((e) => Expect.fail("Unexpected error $e")); 220 .catchError((e) {
221 String msg = "Unexpected error $e";
222 var trace = getAttachedStackTrace(e);
223 if (trace != null) msg += "\nStackTrace: $trace";
224 Expect.fail(msg);
225 });
205 } 226 }
206 }); 227 });
207 } 228 }
208 229
209 void testSetContentLength() { 230 void testSetContentLength() {
210 HttpServer.bind().then((server) { 231 HttpServer.bind().then((server) {
211 server.listen( 232 server.listen(
212 (HttpRequest request) { 233 (HttpRequest request) {
213 var response = request.response; 234 var response = request.response;
214 Expect.isNull(response.headers.value('content-length')); 235 Expect.isNull(response.headers.value('content-length'));
(...skipping 21 matching lines...) Expand all
236 257
237 void main() { 258 void main() {
238 testNoBody(5, false); 259 testNoBody(5, false);
239 testNoBody(5, true); 260 testNoBody(5, true);
240 testBody(5, false); 261 testBody(5, false);
241 testBody(5, true); 262 testBody(5, true);
242 testBodyChunked(5, false); 263 testBodyChunked(5, false);
243 testBodyChunked(5, true); 264 testBodyChunked(5, true);
244 testSetContentLength(); 265 testSetContentLength();
245 } 266 }
OLDNEW
« no previous file with comments | « tests/standalone/io/http_10_test.dart ('k') | tests/standalone/io/http_redirect_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698