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

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

Issue 11364122: Do *not* report connection reset by peer as an error on an http server (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 1 month 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 | « sdk/lib/io/http_impl.dart ('k') | tests/standalone/standalone.status » ('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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 // VMOptions= 5 // VMOptions=
6 // VMOptions=--short_socket_read 6 // VMOptions=--short_socket_read
7 // VMOptions=--short_socket_write 7 // VMOptions=--short_socket_write
8 // VMOptions=--short_socket_read --short_socket_write 8 // VMOptions=--short_socket_read --short_socket_write
9 9
10 #import("dart:isolate"); 10 #import("dart:isolate");
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 } else { 248 } else {
249 _notFoundHandler(request, response); 249 _notFoundHandler(request, response);
250 } 250 }
251 } 251 }
252 252
253 HttpServer _server; // HTTP server instance. 253 HttpServer _server; // HTTP server instance.
254 Map _requestHandlers; 254 Map _requestHandlers;
255 bool _chunkedEncoding = false; 255 bool _chunkedEncoding = false;
256 } 256 }
257 257
258 void testHost() { 258 Future testHost() {
259 Completer completer = new Completer();
259 TestServerMain testServerMain = new TestServerMain(); 260 TestServerMain testServerMain = new TestServerMain();
260 testServerMain.setServerStartedHandler((int port) { 261 testServerMain.setServerStartedHandler((int port) {
261 HttpClient httpClient = new HttpClient(); 262 HttpClient httpClient = new HttpClient();
262 HttpClientConnection conn = 263 HttpClientConnection conn =
263 httpClient.get("127.0.0.1", port, "/host"); 264 httpClient.get("127.0.0.1", port, "/host");
264 conn.onRequest = (HttpClientRequest request) { 265 conn.onRequest = (HttpClientRequest request) {
265 Expect.equals("127.0.0.1:$port", request.headers["host"][0]); 266 Expect.equals("127.0.0.1:$port", request.headers["host"][0]);
266 request.headers.host = "www.dartlang.com"; 267 request.headers.host = "www.dartlang.com";
267 Expect.equals("www.dartlang.com:$port", request.headers["host"][0]); 268 Expect.equals("www.dartlang.com:$port", request.headers["host"][0]);
268 Expect.equals("www.dartlang.com", request.headers.host); 269 Expect.equals("www.dartlang.com", request.headers.host);
(...skipping 12 matching lines...) Expand all
281 Expect.equals(HttpClient.DEFAULT_HTTP_PORT, request.headers.port); 282 Expect.equals(HttpClient.DEFAULT_HTTP_PORT, request.headers.port);
282 request.headers.set("Host", "www.dartlang.org:1234"); 283 request.headers.set("Host", "www.dartlang.org:1234");
283 Expect.equals("www.dartlang.org", request.headers.host); 284 Expect.equals("www.dartlang.org", request.headers.host);
284 Expect.equals(1234, request.headers.port); 285 Expect.equals(1234, request.headers.port);
285 request.outputStream.close(); 286 request.outputStream.close();
286 }; 287 };
287 conn.onResponse = (HttpClientResponse response) { 288 conn.onResponse = (HttpClientResponse response) {
288 Expect.equals(HttpStatus.OK, response.statusCode); 289 Expect.equals(HttpStatus.OK, response.statusCode);
289 httpClient.shutdown(); 290 httpClient.shutdown();
290 testServerMain.shutdown(); 291 testServerMain.shutdown();
292 completer.complete(true);
291 }; 293 };
292 }); 294 });
293 testServerMain.start(); 295 testServerMain.start();
296 return completer.future;
294 } 297 }
295 298
296 void testExpires() { 299 Future testExpires() {
300 Completer completer = new Completer();
297 TestServerMain testServerMain = new TestServerMain(); 301 TestServerMain testServerMain = new TestServerMain();
298 testServerMain.setServerStartedHandler((int port) { 302 testServerMain.setServerStartedHandler((int port) {
299 int responses = 0; 303 int responses = 0;
300 HttpClient httpClient = new HttpClient(); 304 HttpClient httpClient = new HttpClient();
301 305
302 void processResponse(HttpClientResponse response) { 306 void processResponse(HttpClientResponse response) {
303 Expect.equals(HttpStatus.OK, response.statusCode); 307 Expect.equals(HttpStatus.OK, response.statusCode);
304 Expect.equals("Fri, 11 Jun 1999 18:46:53 GMT", 308 Expect.equals("Fri, 11 Jun 1999 18:46:53 GMT",
305 response.headers["expires"][0]); 309 response.headers["expires"][0]);
306 Expect.equals(new Date.utc(1999, Date.JUN, 11, 18, 46, 53, 0), 310 Expect.equals(new Date.utc(1999, Date.JUN, 11, 18, 46, 53, 0),
307 response.headers.expires); 311 response.headers.expires);
308 responses++; 312 responses++;
309 if (responses == 2) { 313 if (responses == 2) {
310 httpClient.shutdown(); 314 httpClient.shutdown();
311 testServerMain.shutdown(); 315 testServerMain.shutdown();
316 completer.complete(true);
312 } 317 }
313 } 318 }
314 319
315 HttpClientConnection conn1 = httpClient.get("127.0.0.1", port, "/expires1"); 320 HttpClientConnection conn1 = httpClient.get("127.0.0.1", port, "/expires1");
316 conn1.onResponse = (HttpClientResponse response) { 321 conn1.onResponse = (HttpClientResponse response) {
317 processResponse(response); 322 processResponse(response);
318 }; 323 };
319 HttpClientConnection conn2 = httpClient.get("127.0.0.1", port, "/expires2"); 324 HttpClientConnection conn2 = httpClient.get("127.0.0.1", port, "/expires2");
320 conn2.onResponse = (HttpClientResponse response) { 325 conn2.onResponse = (HttpClientResponse response) {
321 processResponse(response); 326 processResponse(response);
322 }; 327 };
323 }); 328 });
324 testServerMain.start(); 329 testServerMain.start();
330 return completer.future;
325 } 331 }
326 332
327 void testContentType() { 333 Future testContentType() {
334 Completer completer = new Completer();
328 TestServerMain testServerMain = new TestServerMain(); 335 TestServerMain testServerMain = new TestServerMain();
329 testServerMain.setServerStartedHandler((int port) { 336 testServerMain.setServerStartedHandler((int port) {
330 int responses = 0; 337 int responses = 0;
331 HttpClient httpClient = new HttpClient(); 338 HttpClient httpClient = new HttpClient();
332 339
333 void processResponse(HttpClientResponse response) { 340 void processResponse(HttpClientResponse response) {
334 Expect.equals(HttpStatus.OK, response.statusCode); 341 Expect.equals(HttpStatus.OK, response.statusCode);
335 Expect.equals("text/html; charset=utf-8", 342 Expect.equals("text/html; charset=utf-8",
336 response.headers.contentType.toString()); 343 response.headers.contentType.toString());
337 Expect.equals("text/html", response.headers.contentType.value); 344 Expect.equals("text/html", response.headers.contentType.value);
338 Expect.equals("text", response.headers.contentType.primaryType); 345 Expect.equals("text", response.headers.contentType.primaryType);
339 Expect.equals("html", response.headers.contentType.subType); 346 Expect.equals("html", response.headers.contentType.subType);
340 Expect.equals("utf-8", 347 Expect.equals("utf-8",
341 response.headers.contentType.parameters["charset"]); 348 response.headers.contentType.parameters["charset"]);
342 responses++; 349 responses++;
343 if (responses == 2) { 350 if (responses == 2) {
344 httpClient.shutdown(); 351 httpClient.shutdown();
345 testServerMain.shutdown(); 352 testServerMain.shutdown();
353 completer.complete(true);
346 } 354 }
347 } 355 }
348 356
349 HttpClientConnection conn1 = 357 HttpClientConnection conn1 =
350 httpClient.get("127.0.0.1", port, "/contenttype1"); 358 httpClient.get("127.0.0.1", port, "/contenttype1");
351 conn1.onRequest = (HttpClientRequest request) { 359 conn1.onRequest = (HttpClientRequest request) {
352 ContentType contentType = new ContentType(); 360 ContentType contentType = new ContentType();
353 contentType.value = "text/html"; 361 contentType.value = "text/html";
354 contentType.parameters["charset"] = "utf-8"; 362 contentType.parameters["charset"] = "utf-8";
355 request.headers.contentType = contentType; 363 request.headers.contentType = contentType;
356 request.outputStream.close(); 364 request.outputStream.close();
357 }; 365 };
358 conn1.onResponse = (HttpClientResponse response) { 366 conn1.onResponse = (HttpClientResponse response) {
359 processResponse(response); 367 processResponse(response);
360 }; 368 };
361 HttpClientConnection conn2 = 369 HttpClientConnection conn2 =
362 httpClient.get("127.0.0.1", port, "/contenttype2"); 370 httpClient.get("127.0.0.1", port, "/contenttype2");
363 conn2.onRequest = (HttpClientRequest request) { 371 conn2.onRequest = (HttpClientRequest request) {
364 request.headers.set(HttpHeaders.CONTENT_TYPE, 372 request.headers.set(HttpHeaders.CONTENT_TYPE,
365 "text/html; charset = utf-8"); 373 "text/html; charset = utf-8");
366 request.outputStream.close(); 374 request.outputStream.close();
367 }; 375 };
368 conn2.onResponse = (HttpClientResponse response) { 376 conn2.onResponse = (HttpClientResponse response) {
369 processResponse(response); 377 processResponse(response);
370 }; 378 };
371 }); 379 });
372 testServerMain.start(); 380 testServerMain.start();
381 return completer.future;
373 } 382 }
374 383
375 void testCookies() { 384 Future testCookies() {
385 Completer completer = new Completer();
376 TestServerMain testServerMain = new TestServerMain(); 386 TestServerMain testServerMain = new TestServerMain();
377 testServerMain.setServerStartedHandler((int port) { 387 testServerMain.setServerStartedHandler((int port) {
378 int responses = 0; 388 int responses = 0;
379 HttpClient httpClient = new HttpClient(); 389 HttpClient httpClient = new HttpClient();
380 390
381 HttpClientConnection conn1 = 391 HttpClientConnection conn1 =
382 httpClient.get("127.0.0.1", port, "/cookie1"); 392 httpClient.get("127.0.0.1", port, "/cookie1");
383 conn1.onResponse = (HttpClientResponse response) { 393 conn1.onResponse = (HttpClientResponse response) {
384 Expect.equals(2, response.cookies.length); 394 Expect.equals(2, response.cookies.length);
385 response.cookies.forEach((cookie) { 395 response.cookies.forEach((cookie) {
(...skipping 15 matching lines...) Expand all
401 HttpClientConnection conn2 = 411 HttpClientConnection conn2 =
402 httpClient.get("127.0.0.1", port, "/cookie2"); 412 httpClient.get("127.0.0.1", port, "/cookie2");
403 conn2.onRequest = (HttpClientRequest request) { 413 conn2.onRequest = (HttpClientRequest request) {
404 request.cookies.add(response.cookies[0]); 414 request.cookies.add(response.cookies[0]);
405 request.cookies.add(response.cookies[1]); 415 request.cookies.add(response.cookies[1]);
406 request.outputStream.close(); 416 request.outputStream.close();
407 }; 417 };
408 conn2.onResponse = (HttpClientResponse ignored) { 418 conn2.onResponse = (HttpClientResponse ignored) {
409 httpClient.shutdown(); 419 httpClient.shutdown();
410 testServerMain.shutdown(); 420 testServerMain.shutdown();
421 completer.complete(true);
411 }; 422 };
412 }; 423 };
413 }); 424 });
414 testServerMain.start(); 425 testServerMain.start();
426 return completer.future;
415 } 427 }
416 428
417 void testFlush() { 429 Future testFlush() {
430 Completer completer = new Completer();
418 TestServerMain testServerMain = new TestServerMain(); 431 TestServerMain testServerMain = new TestServerMain();
419 testServerMain.setServerStartedHandler((int port) { 432 testServerMain.setServerStartedHandler((int port) {
420 HttpClient httpClient = new HttpClient(); 433 HttpClient httpClient = new HttpClient();
421 434
422 HttpClientConnection conn = httpClient.get("127.0.0.1", port, "/flush"); 435 HttpClientConnection conn = httpClient.get("127.0.0.1", port, "/flush");
423 conn.onRequest = (HttpClientRequest request) { 436 conn.onRequest = (HttpClientRequest request) {
424 request.outputStream.flush(); 437 request.outputStream.flush();
425 request.outputStream.close(); 438 request.outputStream.close();
426 }; 439 };
427 conn.onResponse = (HttpClientResponse response) { 440 conn.onResponse = (HttpClientResponse response) {
428 Expect.equals(HttpStatus.OK, response.statusCode); 441 Expect.equals(HttpStatus.OK, response.statusCode);
429 httpClient.shutdown(); 442 httpClient.shutdown();
430 testServerMain.shutdown(); 443 testServerMain.shutdown();
444 completer.complete(true);
431 }; 445 };
432 }); 446 });
433 testServerMain.start(); 447 testServerMain.start();
448 return completer.future;
434 } 449 }
435 450
436 void main() { 451 void main() {
437 testHost(); 452 print('testHost()');
438 testExpires(); 453 testHost().chain((_) {
439 testContentType(); 454 print('testExpires()');
440 testCookies(); 455 return testExpires().chain((_) {
441 testFlush(); 456 print('testContentType()');
457 return testContentType().chain((_) {
458 print('testCookies()');
459 return testCookies().chain((_) {
460 print('testFlush()');
461 return testFlush();
462 });
463 });
464 });
465 }).then((_) {
466 print('done');
467 });
442 } 468 }
OLDNEW
« no previous file with comments | « sdk/lib/io/http_impl.dart ('k') | tests/standalone/standalone.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698