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

Unified Diff: tests/standalone/src/io/HttpTest.dart

Issue 10252020: test rename overhaul: step 12 - standalone (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/standalone/src/io/HttpShutdownTest.dart ('k') | tests/standalone/src/io/ListInputStreamTest.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/src/io/HttpTest.dart
diff --git a/tests/standalone/src/io/HttpTest.dart b/tests/standalone/src/io/HttpTest.dart
deleted file mode 100644
index df198bda53f8ebc1c894bb4840ec403ee8e09904..0000000000000000000000000000000000000000
--- a/tests/standalone/src/io/HttpTest.dart
+++ /dev/null
@@ -1,530 +0,0 @@
-// Copyright (c) 2012, 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.
-//
-// VMOptions=
-// VMOptions=--short_socket_read
-// VMOptions=--short_socket_write
-// VMOptions=--short_socket_read --short_socket_write
-
-#import("dart:isolate");
-#import("dart:io");
-
-class TestServerMain {
- TestServerMain()
- : _statusPort = new ReceivePort(),
- _serverPort = null {
- new TestServer().spawn().then((SendPort port) {
- _serverPort = port;
- });
- }
-
- void setServerStartedHandler(void startedCallback(int port)) {
- _startedCallback = startedCallback;
- }
-
- void start() {
- // Handle status messages from the server.
- _statusPort.receive((var status, SendPort replyTo) {
- if (status.isStarted) {
- _startedCallback(status.port);
- }
- });
-
- // Send server start message to the server.
- var command = new TestServerCommand.start();
- _serverPort.send(command, _statusPort.toSendPort());
- }
-
- void shutdown() {
- // Send server stop message to the server.
- _serverPort.send(new TestServerCommand.stop(), _statusPort.toSendPort());
- _statusPort.close();
- }
-
- void chunkedEncoding() {
- // Send chunked encoding message to the server.
- _serverPort.send(
- new TestServerCommand.chunkedEncoding(), _statusPort.toSendPort());
- }
-
- ReceivePort _statusPort; // Port for receiving messages from the server.
- SendPort _serverPort; // Port for sending messages to the server.
- var _startedCallback;
-}
-
-
-class TestServerCommand {
- static final START = 0;
- static final STOP = 1;
- static final CHUNKED_ENCODING = 2;
-
- TestServerCommand.start() : _command = START;
- TestServerCommand.stop() : _command = STOP;
- TestServerCommand.chunkedEncoding() : _command = CHUNKED_ENCODING;
-
- bool get isStart() => _command == START;
- bool get isStop() => _command == STOP;
- bool get isChunkedEncoding() => _command == CHUNKED_ENCODING;
-
- int _command;
-}
-
-
-class TestServerStatus {
- static final STARTED = 0;
- static final STOPPED = 1;
- static final ERROR = 2;
-
- TestServerStatus.started(this._port) : _state = STARTED;
- TestServerStatus.stopped() : _state = STOPPED;
- TestServerStatus.error() : _state = ERROR;
-
- bool get isStarted() => _state == STARTED;
- bool get isStopped() => _state == STOPPED;
- bool get isError() => _state == ERROR;
-
- int get port() => _port;
-
- int _state;
- int _port;
-}
-
-
-class TestServer extends Isolate {
- // Echo the request content back to the response.
- void _echoHandler(HttpRequest request, HttpResponse response) {
- Expect.equals("POST", request.method);
- response.contentLength = request.contentLength;
- request.inputStream.pipe(response.outputStream);
- }
-
- // Echo the request content back to the response.
- void _zeroToTenHandler(HttpRequest request, HttpResponse response) {
- Expect.equals("GET", request.method);
- request.inputStream.onData = () {};
- request.inputStream.onClosed = () {
- response.outputStream.writeString("01234567890");
- response.outputStream.close();
- };
- }
-
- // Return a 404.
- void _notFoundHandler(HttpRequest request, HttpResponse response) {
- response.statusCode = HttpStatus.NOT_FOUND;
- response.headers.set("Content-Type", "text/html; charset=UTF-8");
- response.outputStream.writeString("Page not found");
- response.outputStream.close();
- }
-
- // Return a 301 with a custom reason phrase.
- void _reasonForMovingHandler(HttpRequest request, HttpResponse response) {
- response.statusCode = HttpStatus.MOVED_PERMANENTLY;
- response.reasonPhrase = "Don't come looking here any more";
- response.outputStream.close();
- }
-
- // Check the "Host" header.
- void _hostHandler(HttpRequest request, HttpResponse response) {
- Expect.equals(1, request.headers["Host"].length);
- Expect.equals("www.dartlang.org:1234", request.headers["Host"][0]);
- Expect.equals("www.dartlang.org", request.headers.host);
- Expect.equals(1234, request.headers.port);
- response.statusCode = HttpStatus.OK;
- response.outputStream.close();
- }
-
- // Set the "Expires" header using the expires property.
- void _expires1Handler(HttpRequest request, HttpResponse response) {
- Date date =
- new Date.withTimeZone(
- 1999, Date.JUN, 11, 18, 46, 53, 0, new TimeZone.utc());
- response.headers.expires = date;
- Expect.equals(date, response.headers.expires);
- response.outputStream.close();
- }
-
- // Set the "Expires" header.
- void _expires2Handler(HttpRequest request, HttpResponse response) {
- response.headers.set("Expires", "Fri, 11 Jun 1999 18:46:53 GMT");
- Date date =
- new Date.withTimeZone(
- 1999, Date.JUN, 11, 18, 46, 53, 0, new TimeZone.utc());
- Expect.equals(date, response.headers.expires);
- response.outputStream.close();
- }
-
- void main() {
- // Setup request handlers.
- _requestHandlers = new Map();
- _requestHandlers["/echo"] = (HttpRequest request, HttpResponse response) {
- _echoHandler(request, response);
- };
- _requestHandlers["/0123456789"] =
- (HttpRequest request, HttpResponse response) {
- _zeroToTenHandler(request, response);
- };
- _requestHandlers["/reasonformoving"] =
- (HttpRequest request, HttpResponse response) {
- _reasonForMovingHandler(request, response);
- };
- _requestHandlers["/host"] =
- (HttpRequest request, HttpResponse response) {
- _hostHandler(request, response);
- };
- _requestHandlers["/expires1"] =
- (HttpRequest request, HttpResponse response) {
- _expires1Handler(request, response);
- };
- _requestHandlers["/expires2"] =
- (HttpRequest request, HttpResponse response) {
- _expires2Handler(request, response);
- };
-
- this.port.receive((var message, SendPort replyTo) {
- if (message.isStart) {
- _server = new HttpServer();
- try {
- _server.listen("127.0.0.1", 0);
- _server.defaultRequestHandler = (HttpRequest req, HttpResponse rsp) {
- _requestReceivedHandler(req, rsp);
- };
- replyTo.send(new TestServerStatus.started(_server.port), null);
- } catch (var e) {
- replyTo.send(new TestServerStatus.error(), null);
- }
- } else if (message.isStop) {
- _server.close();
- this.port.close();
- replyTo.send(new TestServerStatus.stopped(), null);
- } else if (message.isChunkedEncoding) {
- _chunkedEncoding = true;
- }
- });
- }
-
- void _requestReceivedHandler(HttpRequest request, HttpResponse response) {
- var requestHandler =_requestHandlers[request.path];
- if (requestHandler != null) {
- requestHandler(request, response);
- } else {
- _notFoundHandler(request, response);
- }
- }
-
- HttpServer _server; // HTTP server instance.
- Map _requestHandlers;
- bool _chunkedEncoding = false;
-}
-
-
-void testStartStop() {
- TestServerMain testServerMain = new TestServerMain();
- testServerMain.setServerStartedHandler((int port) {
- testServerMain.shutdown();
- });
- testServerMain.start();
-}
-
-
-void testGET() {
- TestServerMain testServerMain = new TestServerMain();
- testServerMain.setServerStartedHandler((int port) {
- HttpClient httpClient = new HttpClient();
- HttpClientConnection conn =
- httpClient.get("127.0.0.1", port, "/0123456789");
- conn.onResponse = (HttpClientResponse response) {
- Expect.equals(HttpStatus.OK, response.statusCode);
- StringInputStream stream = new StringInputStream(response.inputStream);
- StringBuffer body = new StringBuffer();
- stream.onData = () => body.add(stream.read());
- stream.onClosed = () {
- Expect.equals("01234567890", body.toString());
- httpClient.shutdown();
- testServerMain.shutdown();
- };
- };
- });
- testServerMain.start();
-}
-
-
-void testPOST(bool chunkedEncoding) {
- String data = "ABCDEFGHIJKLMONPQRSTUVWXYZ";
- final int kMessageCount = 10;
-
- TestServerMain testServerMain = new TestServerMain();
-
- void runTest(int port) {
- int count = 0;
- HttpClient httpClient = new HttpClient();
- void sendRequest() {
- HttpClientConnection conn =
- httpClient.post("127.0.0.1", port, "/echo");
- conn.onRequest = (HttpClientRequest request) {
- if (chunkedEncoding) {
- request.outputStream.writeString(data.substring(0, 10));
- request.outputStream.writeString(data.substring(10, data.length));
- } else {
- request.contentLength = data.length;
- request.outputStream.write(data.charCodes());
- }
- request.outputStream.close();
- };
- conn.onResponse = (HttpClientResponse response) {
- Expect.equals(HttpStatus.OK, response.statusCode);
- StringInputStream stream = new StringInputStream(response.inputStream);
- StringBuffer body = new StringBuffer();
- stream.onData = () => body.add(stream.read());
- stream.onClosed = () {
- Expect.equals(data, body.toString());
- count++;
- if (count < kMessageCount) {
- sendRequest();
- } else {
- httpClient.shutdown();
- testServerMain.shutdown();
- }
- };
- };
- }
-
- sendRequest();
- }
-
- testServerMain.setServerStartedHandler(runTest);
- if (chunkedEncoding) {
- testServerMain.chunkedEncoding();
- }
- testServerMain.start();
-}
-
-
-void testReadInto(bool chunkedEncoding) {
- String data = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- final int kMessageCount = 10;
-
- TestServerMain testServerMain = new TestServerMain();
-
- void runTest(int port) {
- int count = 0;
- HttpClient httpClient = new HttpClient();
- void sendRequest() {
- HttpClientConnection conn =
- httpClient.post("127.0.0.1", port, "/echo");
- conn.onRequest = (HttpClientRequest request) {
- if (chunkedEncoding) {
- request.outputStream.writeString(data.substring(0, 10));
- request.outputStream.writeString(data.substring(10, data.length));
- } else {
- request.contentLength = data.length;
- request.outputStream.write(data.charCodes());
- }
- request.outputStream.close();
- };
- conn.onResponse = (HttpClientResponse response) {
- Expect.equals(HttpStatus.OK, response.statusCode);
- InputStream stream = response.inputStream;
- List<int> body = new List<int>();
- stream.onData = () {
- List tmp = new List(3);
- int bytes = stream.readInto(tmp);
- body.addAll(tmp.getRange(0, bytes));
- };
- stream.onClosed = () {
- Expect.equals(data, new String.fromCharCodes(body));
- count++;
- if (count < kMessageCount) {
- sendRequest();
- } else {
- httpClient.shutdown();
- testServerMain.shutdown();
- }
- };
- };
- }
-
- sendRequest();
- }
-
- testServerMain.setServerStartedHandler(runTest);
- if (chunkedEncoding) {
- testServerMain.chunkedEncoding();
- }
- testServerMain.start();
-}
-
-
-void testReadShort(bool chunkedEncoding) {
- String data = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- final int kMessageCount = 10;
-
- TestServerMain testServerMain = new TestServerMain();
-
- void runTest(int port) {
- int count = 0;
- HttpClient httpClient = new HttpClient();
- void sendRequest() {
- HttpClientConnection conn =
- httpClient.post("127.0.0.1", port, "/echo");
- conn.onRequest = (HttpClientRequest request) {
- if (chunkedEncoding) {
- request.outputStream.writeString(data.substring(0, 10));
- request.outputStream.writeString(data.substring(10, data.length));
- } else {
- request.contentLength = data.length;
- request.outputStream.write(data.charCodes());
- }
- request.outputStream.close();
- };
- conn.onResponse = (HttpClientResponse response) {
- Expect.equals(HttpStatus.OK, response.statusCode);
- InputStream stream = response.inputStream;
- List<int> body = new List<int>();
- stream.onData = () {
- List tmp = stream.read(2);
- body.addAll(tmp);
- };
- stream.onClosed = () {
- Expect.equals(data, new String.fromCharCodes(body));
- count++;
- if (count < kMessageCount) {
- sendRequest();
- } else {
- httpClient.shutdown();
- testServerMain.shutdown();
- }
- };
- };
- }
-
- sendRequest();
- }
-
- testServerMain.setServerStartedHandler(runTest);
- if (chunkedEncoding) {
- testServerMain.chunkedEncoding();
- }
- testServerMain.start();
-}
-
-
-void test404() {
- TestServerMain testServerMain = new TestServerMain();
- testServerMain.setServerStartedHandler((int port) {
- HttpClient httpClient = new HttpClient();
- HttpClientConnection conn =
- httpClient.get("127.0.0.1", port, "/thisisnotfound");
- conn.onResponse = (HttpClientResponse response) {
- Expect.equals(HttpStatus.NOT_FOUND, response.statusCode);
- httpClient.shutdown();
- testServerMain.shutdown();
- };
- });
- testServerMain.start();
-}
-
-
-void testReasonPhrase() {
- TestServerMain testServerMain = new TestServerMain();
- testServerMain.setServerStartedHandler((int port) {
- HttpClient httpClient = new HttpClient();
- HttpClientConnection conn =
- httpClient.get("127.0.0.1", port, "/reasonformoving");
- conn.onResponse = (HttpClientResponse response) {
- Expect.equals(HttpStatus.MOVED_PERMANENTLY, response.statusCode);
- Expect.equals("Don't come looking here any more", response.reasonPhrase);
- httpClient.shutdown();
- testServerMain.shutdown();
- };
- });
- testServerMain.start();
-}
-
-
-void testHost() {
- TestServerMain testServerMain = new TestServerMain();
- testServerMain.setServerStartedHandler((int port) {
- HttpClient httpClient = new HttpClient();
- HttpClientConnection conn =
- httpClient.get("127.0.0.1", port, "/host");
- conn.onRequest = (HttpClientRequest request) {
- Expect.equals("127.0.0.1:$port", request.headers["host"][0]);
- request.headers.host = "www.dartlang.com";
- Expect.equals("www.dartlang.com:$port", request.headers["host"][0]);
- Expect.equals("www.dartlang.com", request.headers.host);
- Expect.equals(port, request.headers.port);
- request.headers.port = 1234;
- Expect.equals("www.dartlang.com:1234", request.headers["host"][0]);
- Expect.equals(1234, request.headers.port);
- request.headers.port = HttpClient.DEFAULT_HTTP_PORT;
- Expect.equals(HttpClient.DEFAULT_HTTP_PORT, request.headers.port);
- Expect.equals("www.dartlang.com", request.headers["host"][0]);
- request.headers.set("Host", "www.dartlang.org");
- Expect.equals("www.dartlang.org", request.headers.host);
- Expect.equals(HttpClient.DEFAULT_HTTP_PORT, request.headers.port);
- request.headers.set("Host", "www.dartlang.org:");
- Expect.equals("www.dartlang.org", request.headers.host);
- Expect.equals(HttpClient.DEFAULT_HTTP_PORT, request.headers.port);
- request.headers.set("Host", "www.dartlang.org:1234");
- Expect.equals("www.dartlang.org", request.headers.host);
- Expect.equals(1234, request.headers.port);
- request.outputStream.close();
- };
- conn.onResponse = (HttpClientResponse response) {
- Expect.equals(HttpStatus.OK, response.statusCode);
- httpClient.shutdown();
- testServerMain.shutdown();
- };
- });
- testServerMain.start();
-}
-
-void testExpires() {
- TestServerMain testServerMain = new TestServerMain();
- testServerMain.setServerStartedHandler((int port) {
- int responses = 0;
- HttpClient httpClient = new HttpClient();
-
- void processResponse(HttpClientResponse response) {
- Expect.equals(HttpStatus.OK, response.statusCode);
- Expect.equals("Fri, 11 Jun 1999 18:46:53 GMT",
- response.headers["expires"][0]);
- Expect.equals(
- new Date.withTimeZone(
- 1999, Date.JUN, 11, 18, 46, 53, 0, new TimeZone.utc()),
- response.headers.expires);
- responses++;
- if (responses == 2) {
- httpClient.shutdown();
- testServerMain.shutdown();
- }
- }
-
- HttpClientConnection conn1 = httpClient.get("127.0.0.1", port, "/expires1");
- conn1.onResponse = (HttpClientResponse response) {
- processResponse(response);
- };
- HttpClientConnection conn2 = httpClient.get("127.0.0.1", port, "/expires2");
- conn2.onResponse = (HttpClientResponse response) {
- processResponse(response);
- };
- });
- testServerMain.start();
-}
-
-
-void main() {
- testStartStop();
- testGET();
- testPOST(true);
- testPOST(false);
- testReadInto(true);
- testReadInto(false);
- testReadShort(true);
- testReadShort(false);
- test404();
- testReasonPhrase();
- testHost();
- testExpires();
-}
« no previous file with comments | « tests/standalone/src/io/HttpShutdownTest.dart ('k') | tests/standalone/src/io/ListInputStreamTest.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698