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

Side by Side Diff: tests/standalone/src/io/HttpTest.dart

Issue 10082003: Start refactoring of the HTTP header handling (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed second round of comments Created 8 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 | « samples/chat/chat_server_lib.dart ('k') | no next file » | 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 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 request.inputStream.onData = () {}; 105 request.inputStream.onData = () {};
106 request.inputStream.onClosed = () { 106 request.inputStream.onClosed = () {
107 response.outputStream.writeString("01234567890"); 107 response.outputStream.writeString("01234567890");
108 response.outputStream.close(); 108 response.outputStream.close();
109 }; 109 };
110 } 110 }
111 111
112 // Return a 404. 112 // Return a 404.
113 void _notFoundHandler(HttpRequest request, HttpResponse response) { 113 void _notFoundHandler(HttpRequest request, HttpResponse response) {
114 response.statusCode = HttpStatus.NOT_FOUND; 114 response.statusCode = HttpStatus.NOT_FOUND;
115 response.setHeader("Content-Type", "text/html; charset=UTF-8"); 115 response.headers.set("Content-Type", "text/html; charset=UTF-8");
116 response.outputStream.writeString("Page not found"); 116 response.outputStream.writeString("Page not found");
117 response.outputStream.close(); 117 response.outputStream.close();
118 } 118 }
119 119
120 // Return a 301 with a custom reason phrase. 120 // Return a 301 with a custom reason phrase.
121 void _reasonForMovingHandler(HttpRequest request, HttpResponse response) { 121 void _reasonForMovingHandler(HttpRequest request, HttpResponse response) {
122 response.statusCode = HttpStatus.MOVED_PERMANENTLY; 122 response.statusCode = HttpStatus.MOVED_PERMANENTLY;
123 response.reasonPhrase = "Don't come looking here any more"; 123 response.reasonPhrase = "Don't come looking here any more";
124 response.outputStream.close(); 124 response.outputStream.close();
125 } 125 }
126 126
127 // Check the "Host" header. 127 // Check the "Host" header.
128 void _hostHandler(HttpRequest request, HttpResponse response) { 128 void _hostHandler(HttpRequest request, HttpResponse response) {
129 Expect.equals("www.dartlang.org:1234", request.headers["host"]); 129 Expect.equals(1, request.headers["Host"].length);
130 Expect.equals("www.dartlang.org:1234", request.headers["Host"][0]);
131 Expect.equals("www.dartlang.org", request.headers.host);
132 Expect.equals(1234, request.headers.port);
130 response.statusCode = HttpStatus.OK; 133 response.statusCode = HttpStatus.OK;
131 response.outputStream.close(); 134 response.outputStream.close();
132 } 135 }
133 136
134 // Set the "Expires" header using the expires property. 137 // Set the "Expires" header using the expires property.
135 void _expires1Handler(HttpRequest request, HttpResponse response) { 138 void _expires1Handler(HttpRequest request, HttpResponse response) {
136 Date date = 139 Date date =
137 new Date.withTimeZone( 140 new Date.withTimeZone(
138 1999, Date.JUN, 11, 18, 46, 53, 0, new TimeZone.utc()); 141 1999, Date.JUN, 11, 18, 46, 53, 0, new TimeZone.utc());
139 response.expires = date; 142 response.headers.expires = date;
140 Expect.equals(date, response.expires); 143 Expect.equals(date, response.headers.expires);
141 response.outputStream.close(); 144 response.outputStream.close();
142 } 145 }
143 146
144 // Set the "Expires" header. 147 // Set the "Expires" header.
145 void _expires2Handler(HttpRequest request, HttpResponse response) { 148 void _expires2Handler(HttpRequest request, HttpResponse response) {
146 response.setHeader("Expires", "Fri, 11 Jun 1999 18:46:53 GMT"); 149 response.headers.set("Expires", "Fri, 11 Jun 1999 18:46:53 GMT");
147 Date date = 150 Date date =
148 new Date.withTimeZone( 151 new Date.withTimeZone(
149 1999, Date.JUN, 11, 18, 46, 53, 0, new TimeZone.utc()); 152 1999, Date.JUN, 11, 18, 46, 53, 0, new TimeZone.utc());
150 Expect.equals(date, response.expires); 153 Expect.equals(date, response.headers.expires);
151 response.outputStream.close(); 154 response.outputStream.close();
152 } 155 }
153 156
154 void main() { 157 void main() {
155 // Setup request handlers. 158 // Setup request handlers.
156 _requestHandlers = new Map(); 159 _requestHandlers = new Map();
157 _requestHandlers["/echo"] = (HttpRequest request, HttpResponse response) { 160 _requestHandlers["/echo"] = (HttpRequest request, HttpResponse response) {
158 _echoHandler(request, response); 161 _echoHandler(request, response);
159 }; 162 };
160 _requestHandlers["/0123456789"] = 163 _requestHandlers["/0123456789"] =
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 } 442 }
440 443
441 444
442 void testHost() { 445 void testHost() {
443 TestServerMain testServerMain = new TestServerMain(); 446 TestServerMain testServerMain = new TestServerMain();
444 testServerMain.setServerStartedHandler((int port) { 447 testServerMain.setServerStartedHandler((int port) {
445 HttpClient httpClient = new HttpClient(); 448 HttpClient httpClient = new HttpClient();
446 HttpClientConnection conn = 449 HttpClientConnection conn =
447 httpClient.get("127.0.0.1", port, "/host"); 450 httpClient.get("127.0.0.1", port, "/host");
448 conn.onRequest = (HttpClientRequest request) { 451 conn.onRequest = (HttpClientRequest request) {
449 Expect.equals("127.0.0.1:$port", request.headers["host"]); 452 Expect.equals("127.0.0.1:$port", request.headers["host"][0]);
450 request.host = "www.dartlang.com"; 453 request.headers.host = "www.dartlang.com";
451 Expect.equals("www.dartlang.com:$port", request.headers["host"]); 454 Expect.equals("www.dartlang.com:$port", request.headers["host"][0]);
452 request.port = 1234; 455 Expect.equals("www.dartlang.com", request.headers.host);
453 Expect.equals("www.dartlang.com:1234", request.headers["host"]); 456 Expect.equals(port, request.headers.port);
454 request.port = HttpClient.DEFAULT_HTTP_PORT; 457 request.headers.port = 1234;
455 Expect.equals("www.dartlang.com", request.headers["host"]); 458 Expect.equals("www.dartlang.com:1234", request.headers["host"][0]);
456 request.setHeader("Host", "www.dartlang.org"); 459 Expect.equals(1234, request.headers.port);
457 Expect.equals("www.dartlang.org", request.host); 460 request.headers.port = HttpClient.DEFAULT_HTTP_PORT;
458 Expect.equals(HttpClient.DEFAULT_HTTP_PORT, request.port); 461 Expect.equals(HttpClient.DEFAULT_HTTP_PORT, request.headers.port);
459 request.setHeader("Host", "www.dartlang.org:"); 462 Expect.equals("www.dartlang.com", request.headers["host"][0]);
460 Expect.equals("www.dartlang.org", request.host); 463 request.headers.set("Host", "www.dartlang.org");
461 Expect.equals(HttpClient.DEFAULT_HTTP_PORT, request.port); 464 Expect.equals("www.dartlang.org", request.headers.host);
462 request.setHeader("Host", "www.dartlang.org:1234"); 465 Expect.equals(HttpClient.DEFAULT_HTTP_PORT, request.headers.port);
463 Expect.equals("www.dartlang.org", request.host); 466 request.headers.set("Host", "www.dartlang.org:");
464 Expect.equals(1234, request.port); 467 Expect.equals("www.dartlang.org", request.headers.host);
468 Expect.equals(HttpClient.DEFAULT_HTTP_PORT, request.headers.port);
469 request.headers.set("Host", "www.dartlang.org:1234");
470 Expect.equals("www.dartlang.org", request.headers.host);
471 Expect.equals(1234, request.headers.port);
465 request.outputStream.close(); 472 request.outputStream.close();
466 }; 473 };
467 conn.onResponse = (HttpClientResponse response) { 474 conn.onResponse = (HttpClientResponse response) {
468 Expect.equals(HttpStatus.OK, response.statusCode); 475 Expect.equals(HttpStatus.OK, response.statusCode);
469 httpClient.shutdown(); 476 httpClient.shutdown();
470 testServerMain.shutdown(); 477 testServerMain.shutdown();
471 }; 478 };
472 }); 479 });
473 testServerMain.start(); 480 testServerMain.start();
474 } 481 }
475 482
476 void testExpires() { 483 void testExpires() {
477 TestServerMain testServerMain = new TestServerMain(); 484 TestServerMain testServerMain = new TestServerMain();
478 testServerMain.setServerStartedHandler((int port) { 485 testServerMain.setServerStartedHandler((int port) {
479 int responses = 0; 486 int responses = 0;
480 HttpClient httpClient = new HttpClient(); 487 HttpClient httpClient = new HttpClient();
481 488
482 void processResponse(HttpClientResponse response) { 489 void processResponse(HttpClientResponse response) {
483 Expect.equals(HttpStatus.OK, response.statusCode); 490 Expect.equals(HttpStatus.OK, response.statusCode);
484 Expect.equals("Fri, 11 Jun 1999 18:46:53 GMT", 491 Expect.equals("Fri, 11 Jun 1999 18:46:53 GMT",
485 response.headers["expires"]); 492 response.headers["expires"][0]);
486 Expect.equals( 493 Expect.equals(
487 new Date.withTimeZone( 494 new Date.withTimeZone(
488 1999, Date.JUN, 11, 18, 46, 53, 0, new TimeZone.utc()), 495 1999, Date.JUN, 11, 18, 46, 53, 0, new TimeZone.utc()),
489 response.expires); 496 response.headers.expires);
490 responses++; 497 responses++;
491 if (responses == 2) { 498 if (responses == 2) {
492 httpClient.shutdown(); 499 httpClient.shutdown();
493 testServerMain.shutdown(); 500 testServerMain.shutdown();
494 } 501 }
495 } 502 }
496 503
497 HttpClientConnection conn1 = httpClient.get("127.0.0.1", port, "/expires1"); 504 HttpClientConnection conn1 = httpClient.get("127.0.0.1", port, "/expires1");
498 conn1.onResponse = (HttpClientResponse response) { 505 conn1.onResponse = (HttpClientResponse response) {
499 processResponse(response); 506 processResponse(response);
500 }; 507 };
501 HttpClientConnection conn2 = httpClient.get("127.0.0.1", port, "/expires2"); 508 HttpClientConnection conn2 = httpClient.get("127.0.0.1", port, "/expires2");
502 conn2.onResponse = (HttpClientResponse response) { 509 conn2.onResponse = (HttpClientResponse response) {
503 processResponse(response); 510 processResponse(response);
504 }; 511 };
505 }); 512 });
506 testServerMain.start(); 513 testServerMain.start();
507 } 514 }
508 515
509 516
510 void main() { 517 void main() {
511 testStartStop(); 518 //testStartStop();
512 testGET(); 519 testGET();
513 testPOST(true); 520 testPOST(true);
514 testPOST(false); 521 testPOST(false);
515 testReadInto(true); 522 testReadInto(true);
516 testReadInto(false); 523 testReadInto(false);
517 testReadShort(true); 524 testReadShort(true);
518 testReadShort(false); 525 testReadShort(false);
519 test404(); 526 test404();
520 testReasonPhrase(); 527 testReasonPhrase();
521 testHost(); 528 testHost();
522 testExpires(); 529 testExpires();
523 } 530 }
OLDNEW
« no previous file with comments | « samples/chat/chat_server_lib.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698