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

Unified Diff: tests/standalone/io/http_auth_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_advanced_test.dart ('k') | tests/standalone/io/http_basic_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/io/http_auth_test.dart
diff --git a/tests/standalone/io/http_auth_test.dart b/tests/standalone/io/http_auth_test.dart
index 7c8274fd863614c05c18874f5e0a9a10cfa63d08..cfc692bb6e6e33c87521e5f8e07ec420ce2656a7 100644
--- a/tests/standalone/io/http_auth_test.dart
+++ b/tests/standalone/io/http_auth_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.
@@ -13,50 +13,53 @@ class Server {
HttpServer server;
bool passwordChanged = false;
- Server() : server = new HttpServer();
+ Future<Server> start() {
+ var completer = new Completer();
+ HttpServer.bind().then((s) {
+ server = s;
+ server.listen((HttpRequest request) {
+ var response = request.response;
+ if (request.uri.path == "/passwdchg") {
+ passwordChanged = true;
+ response.close();
+ return;
+ };
- void start() {
- server.listen("127.0.0.1", 0);
- server.defaultRequestHandler =
- (HttpRequest request, HttpResponse response) {
- String username;
- String password;
- if (request.path == "/") {
- username = "username";
- password = "password";
- } else {
- username = request.path.substring(1, 6);
- password = request.path.substring(1, 6);
- }
- if (passwordChanged) password = "${password}1";
- if (request.headers[HttpHeaders.AUTHORIZATION] != null) {
- Expect.equals(1, request.headers[HttpHeaders.AUTHORIZATION].length);
- String authorization =
- request.headers[HttpHeaders.AUTHORIZATION][0];
- List<String> tokens = authorization.split(" ");
- Expect.equals("Basic", tokens[0]);
- String auth =
- CryptoUtils.bytesToBase64(encodeUtf8("$username:$password"));
- if (passwordChanged && auth != tokens[1]) {
- response.statusCode = HttpStatus.UNAUTHORIZED;
- response.headers.set(HttpHeaders.WWW_AUTHENTICATE,
- "Basic, realm=realm");
- } else {
- Expect.equals(auth, tokens[1]);
- }
- } else {
+ String username;
+ String password;
+ if (request.uri.path == "/") {
+ username = "username";
+ password = "password";
+ } else {
+ username = request.uri.path.substring(1, 6);
+ password = request.uri.path.substring(1, 6);
+ }
+ if (passwordChanged) password = "${password}1";
+ if (request.headers[HttpHeaders.AUTHORIZATION] != null) {
+ Expect.equals(1, request.headers[HttpHeaders.AUTHORIZATION].length);
+ String authorization =
+ request.headers[HttpHeaders.AUTHORIZATION][0];
+ List<String> tokens = authorization.split(" ");
+ Expect.equals("Basic", tokens[0]);
+ String auth =
+ CryptoUtils.bytesToBase64(encodeUtf8("$username:$password"));
+ if (passwordChanged && auth != tokens[1]) {
response.statusCode = HttpStatus.UNAUTHORIZED;
response.headers.set(HttpHeaders.WWW_AUTHENTICATE,
"Basic, realm=realm");
+ } else {
+ Expect.equals(auth, tokens[1]);
}
- response.outputStream.close();
- };
- server.addRequestHandler(
- (HttpRequest request) => request.path == "/passwdchg",
- (HttpRequest request, HttpResponse response) {
- passwordChanged = true;
- response.outputStream.close();
- });
+ } else {
+ response.statusCode = HttpStatus.UNAUTHORIZED;
+ response.headers.set(HttpHeaders.WWW_AUTHENTICATE,
+ "Basic, realm=realm");
+ }
+ response.close();
+ });
+ completer.complete(this);
+ });
+ return completer.future;
}
void shutdown() {
@@ -66,128 +69,76 @@ class Server {
int get port => server.port;
}
-Server setupServer() {
- Server server = new Server();
- server.start();
- return server;
+Future<Server> setupServer() {
+ return new Server().start();
}
void testUrlUserInfo() {
- Server server = setupServer();
- HttpClient client = new HttpClient();
+ setupServer().then((server) {
+ HttpClient client = new HttpClient();
- HttpClientConnection conn =
- client.getUrl(
- Uri.parse(
- "http://username:password@127.0.0.1:${server.port}/"));
- conn.onResponse = (HttpClientResponse response) {
- response.inputStream.onData = response.inputStream.read;
- response.inputStream.onClosed = () {
- server.shutdown();
- client.shutdown();
- };
- };
+ client.getUrl(Uri.parse(
+ "http://username:password@127.0.0.1:${server.port}/"))
+ .then((request) => request.close())
+ .then((HttpClientResponse response) {
+ response.listen((_) {}, onDone: () {
+ server.shutdown();
+ client.close();
+ });
+ });
+ });
}
void testBasicNoCredentials() {
- Server server = setupServer();
- HttpClient client = new HttpClient();
+ setupServer().then((server) {
+ HttpClient client = new HttpClient();
- Future makeRequest(Uri url) {
- Completer completer = new Completer();
- HttpClientConnection conn = client.getUrl(url);
- conn.onResponse = (HttpClientResponse response) {
- Expect.equals(HttpStatus.UNAUTHORIZED, response.statusCode);
- response.inputStream.onData = response.inputStream.read;
- response.inputStream.onClosed = () => completer.complete(null);
- };
- return completer.future;
- }
+ Future makeRequest(Uri url) {
+ return client.getUrl(url)
+ .then((HttpClientRequest request) => request.close())
+ .then((HttpClientResponse response) {
+ Expect.equals(HttpStatus.UNAUTHORIZED, response.statusCode);
+ return response.reduce(null, (x, y) {});
+ });
+ }
- var futures = [];
- for (int i = 0; i < 5; i++) {
- futures.add(
- makeRequest(
- Uri.parse("http://127.0.0.1:${server.port}/test$i")));
- futures.add(
- makeRequest(
- Uri.parse("http://127.0.0.1:${server.port}/test$i/xxx")));
- }
- Future.wait(futures).then((_) {
- server.shutdown();
- client.shutdown();
+ var futures = [];
+ for (int i = 0; i < 5; i++) {
+ futures.add(
+ makeRequest(
+ Uri.parse("http://127.0.0.1:${server.port}/test$i")));
+ futures.add(
+ makeRequest(
+ Uri.parse(
+ "http://127.0.0.1:${server.port}/test$i/xxx")));
+ }
+ Future.wait(futures).then((_) {
+ server.shutdown();
+ client.close();
+ });
});
}
void testBasicCredentials() {
- Server server = setupServer();
- HttpClient client = new HttpClient();
+ setupServer().then((server) {
+ HttpClient client = new HttpClient();
- Future makeRequest(Uri url) {
- Completer completer = new Completer();
- HttpClientConnection conn = client.getUrl(url);
- conn.onResponse = (HttpClientResponse response) {
- Expect.equals(HttpStatus.OK, response.statusCode);
- response.inputStream.onData = response.inputStream.read;
- response.inputStream.onClosed = () => completer.complete(null);
- };
- return completer.future;
- }
-
- for (int i = 0; i < 5; i++) {
- client.addCredentials(
- Uri.parse("http://127.0.0.1:${server.port}/test$i"),
- "realm",
- new HttpClientBasicCredentials("test$i", "test$i"));
- }
-
- var futures = [];
- for (int i = 0; i < 5; i++) {
- futures.add(
- makeRequest(
- Uri.parse("http://127.0.0.1:${server.port}/test$i")));
- futures.add(
- makeRequest(
- Uri.parse("http://127.0.0.1:${server.port}/test$i/xxx")));
- }
- Future.wait(futures).then((_) {
- server.shutdown();
- client.shutdown();
- });
-}
-
-void testBasicAuthenticateCallback() {
- Server server = setupServer();
- HttpClient client = new HttpClient();
- bool passwordChanged = false;
+ Future makeRequest(Uri url) {
+ return client.getUrl(url)
+ .then((HttpClientRequest request) => request.close())
+ .then((HttpClientResponse response) {
+ Expect.equals(HttpStatus.OK, response.statusCode);
+ return response.reduce(null, (x, y) {});
+ });
+ }
- client.authenticate = (Uri url, String scheme, String realm) {
- Expect.equals("Basic", scheme);
- Expect.equals("realm", realm);
- String username = url.path.substring(1, 6);
- String password = url.path.substring(1, 6);
- if (passwordChanged) password = "${password}1";
- Completer completer = new Completer();
- new Timer(const Duration(milliseconds: 10), () {
+ for (int i = 0; i < 5; i++) {
client.addCredentials(
- url, realm, new HttpClientBasicCredentials(username, password));
- completer.complete(true);
- });
- return completer.future;
- };
-
- Future makeRequest(Uri url) {
- Completer completer = new Completer();
- HttpClientConnection conn = client.getUrl(url);
- conn.onResponse = (HttpClientResponse response) {
- Expect.equals(HttpStatus.OK, response.statusCode);
- response.inputStream.onData = response.inputStream.read;
- response.inputStream.onClosed = () => completer.complete(null);
- };
- return completer.future;
- }
+ Uri.parse("http://127.0.0.1:${server.port}/test$i"),
+ "realm",
+ new HttpClientBasicCredentials("test$i", "test$i"));
+ }
- List<Future> makeRequests() {
var futures = [];
for (int i = 0; i < 5; i++) {
futures.add(
@@ -198,17 +149,63 @@ void testBasicAuthenticateCallback() {
Uri.parse(
"http://127.0.0.1:${server.port}/test$i/xxx")));
}
- return futures;
- }
+ Future.wait(futures).then((_) {
+ server.shutdown();
+ client.close();
+ });
+ });
+}
- Future.wait(makeRequests()).then((_) {
- makeRequest(
- Uri.parse(
- "http://127.0.0.1:${server.port}/passwdchg")).then((_) {
- passwordChanged = true;
- Future.wait(makeRequests()).then((_) {
- server.shutdown();
- client.shutdown();
+void testBasicAuthenticateCallback() {
+ setupServer().then((server) {
+ HttpClient client = new HttpClient();
+ bool passwordChanged = false;
+
+ client.authenticate = (Uri url, String scheme, String realm) {
+ Expect.equals("Basic", scheme);
+ Expect.equals("realm", realm);
+ String username = url.path.substring(1, 6);
+ String password = url.path.substring(1, 6);
+ if (passwordChanged) password = "${password}1";
+ Completer completer = new Completer();
+ new Timer(10, (_) {
+ client.addCredentials(
+ url, realm, new HttpClientBasicCredentials(username, password));
+ completer.complete(true);
+ });
+ return completer.future;
+ };
+
+ Future makeRequest(Uri url) {
+ return client.getUrl(url)
+ .then((HttpClientRequest request) => request.close())
+ .then((HttpClientResponse response) {
+ Expect.equals(HttpStatus.OK, response.statusCode);
+ return response.reduce(null, (x, y) {});
+ });
+ }
+
+ List<Future> makeRequests() {
+ var futures = [];
+ for (int i = 0; i < 5; i++) {
+ futures.add(
+ makeRequest(
+ Uri.parse("http://127.0.0.1:${server.port}/test$i")));
+ futures.add(
+ makeRequest(
+ Uri.parse("http://127.0.0.1:${server.port}/test$i/xxx")));
+ }
+ return futures;
+ }
+
+ Future.wait(makeRequests()).then((_) {
+ makeRequest(
+ Uri.parse("http://127.0.0.1:${server.port}/passwdchg")).then((_) {
+ passwordChanged = true;
+ Future.wait(makeRequests()).then((_) {
+ server.shutdown();
+ client.close();
+ });
});
});
});
« no previous file with comments | « tests/standalone/io/http_advanced_test.dart ('k') | tests/standalone/io/http_basic_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698