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

Unified Diff: tests/standalone/io/http_headers_state_test.dart

Issue 12316036: Merge IO v2 branch to bleeding edge (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebased to r18818 Created 7 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/standalone/io/http_head_test.dart ('k') | tests/standalone/io/http_headers_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/io/http_headers_state_test.dart
diff --git a/tests/standalone/io/http_headers_state_test.dart b/tests/standalone/io/http_headers_state_test.dart
index 72e1ddd649e9bbdba7a6a29fe79480a1df8e020a..73754c75039661d8660575edab88089d30dae3a0 100644
--- a/tests/standalone/io/http_headers_state_test.dart
+++ b/tests/standalone/io/http_headers_state_test.dart
@@ -1,4 +1,4 @@
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
//
@@ -7,71 +7,71 @@ import "dart:isolate";
import "dart:io";
void test(int totalConnections, [String body]) {
- HttpServer server = new HttpServer();
- server.onError = (e) => Expect.fail("Unexpected error $e");
- server.listen("127.0.0.1", 0, backlog: totalConnections);
- server.defaultRequestHandler = (HttpRequest request, HttpResponse response) {
- // Cannot mutate request headers.
- Expect.throws(() => request.headers.add("X-Request-Header", "value"),
- (e) => e is HttpException);
- Expect.equals("value", request.headers.value("X-Request-Header"));
- request.inputStream.onData = request.inputStream.read;
- request.inputStream.onClosed = () {
- OutputStream stream = response.outputStream;
- // Can still mutate response headers as long as no data has been sent.
- response.headers.add("X-Response-Header", "value");
- if (body != null) {
- stream.writeString(body);
- // Cannot mutate response headers when data has been sent.
- Expect.throws(() => request.headers.add("X-Request-Header", "value2"),
- (e) => e is HttpException);
- }
- stream.close();
- // Cannot mutate response headers when data has been sent.
- Expect.throws(() => request.headers.add("X-Request-Header", "value3"),
- (e) => e is HttpException);
- };
- };
+ HttpServer.bind().then((server) {
- int count = 0;
- HttpClient client = new HttpClient();
- for (int i = 0; i < totalConnections; i++) {
- HttpClientConnection conn = client.get("127.0.0.1", server.port, "/");
- conn.onError = (e) => Expect.fail("Unexpected error $e");
- conn.onRequest = (HttpClientRequest request) {
- if (body != null) {
- request.contentLength = -1;
- }
- OutputStream stream = request.outputStream;
- // Can still mutate request headers as long as no data has been sent.
- request.headers.add("X-Request-Header", "value");
- if (body != null) {
- stream.writeString(body);
- // Cannot mutate request headers when data has been sent.
- Expect.throws(() => request.headers.add("X-Request-Header", "value2"),
- (e) => e is HttpException);
- }
- stream.close();
- // Cannot mutate request headers when data has been sent.
- Expect.throws(() => request.headers.add("X-Request-Header", "value3"),
+ server.listen((HttpRequest request) {
+ HttpResponse response = request.response;
+ // Cannot mutate request headers.
+ Expect.throws(() => request.headers.add("X-Request-Header", "value"),
(e) => e is HttpException);
- };
- conn.onResponse = (HttpClientResponse response) {
- // Cannot mutate response headers.
- Expect.throws(() => response.headers.add("X-Response-Header", "value"),
- (e) => e is HttpException);
- Expect.equals("value", response.headers.value("X-Response-Header"));
- response.inputStream.onData = response.inputStream.read;
- response.inputStream.onClosed = () {
- // Do not close the connections before we have read the full response
- // bodies for all connections.
- if (++count == totalConnections) {
- client.shutdown();
- server.close();
+ Expect.equals("value", request.headers.value("X-Request-Header"));
+ request.listen((_) {}, onDone: () {
+ // Can still mutate response headers as long as no data has been sent.
+ response.headers.add("X-Response-Header", "value");
+ if (body != null) {
+ response.addString(body);
+ // Cannot mutate response headers when data has been sent.
+ Expect.throws(() => request.headers.add("X-Request-Header", "value2"),
+ (e) => e is HttpException);
}
- };
- };
- }
+ response..close();
+ // Cannot mutate response headers when data has been sent.
+ Expect.throws(() => request.headers.add("X-Request-Header", "value3"),
+ (e) => e is HttpException);
+ });
+ });
+
+ int count = 0;
+ HttpClient client = new HttpClient();
+ for (int i = 0; i < totalConnections; i++) {
+ client.get("127.0.0.1", server.port, "/")
+ .then((HttpClientRequest request) {
+ if (body != null) {
+ request.contentLength = -1;
+ }
+ // Can still mutate request headers as long as no data has been sent.
+ request.headers.add("X-Request-Header", "value");
+ if (body != null) {
+ request.addString(body);
+ // Cannot mutate request headers when data has been sent.
+ Expect.throws(
+ () => request.headers.add("X-Request-Header", "value2"),
+ (e) => e is HttpException);
+ }
+ request.close();
+ // Cannot mutate request headers when data has been sent.
+ Expect.throws(() => request.headers.add("X-Request-Header", "value3"),
+ (e) => e is HttpException);
+ return request.response;
+ })
+ .then((HttpClientResponse response) {
+ // Cannot mutate response headers.
+ Expect.throws(
+ () => response.headers.add("X-Response-Header", "value"),
+ (e) => e is HttpException);
+ Expect.equals("value", response.headers.value("X-Response-Header"));
+ response.listen((_) {}, onDone: () {
+ // Do not close the connections before we have read the
+ // full response bodies for all connections.
+ if (++count == totalConnections) {
+ client.close();
+ server.close();
+ }
+ });
+ });
+ }
+
+ });
}
void main() {
« no previous file with comments | « tests/standalone/io/http_head_test.dart ('k') | tests/standalone/io/http_headers_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698