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

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

Issue 12314007: Support connecting to HTTPS URL's through a proxy (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed review comments 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 | « sdk/lib/io/http_impl.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/io/http_proxy_test.dart
diff --git a/tests/standalone/io/http_proxy_test.dart b/tests/standalone/io/http_proxy_test.dart
index 9d3190c6a0ce6684a7661d2c71fb76c2e5c73086..2727f280872688f6a200555dc53ea5b570e9d0d6 100644
--- a/tests/standalone/io/http_proxy_test.dart
+++ b/tests/standalone/io/http_proxy_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,14 +7,17 @@ import "dart:uri";
class Server {
HttpServer server;
+ bool secure;
int proxyHops;
List<String> directRequestPaths;
int requestCount = 0;
- Server(this.proxyHops, this.directRequestPaths) : server = new HttpServer();
+ Server(this.proxyHops, this.directRequestPaths, this.secure) {
+ server = secure ? new HttpsServer() : new HttpServer();
+ }
void start() {
- server.listen("127.0.0.1", 0);
+ server.listen("127.0.0.1", 0, certificate_name: 'CN=localhost');
server.defaultRequestHandler =
(HttpRequest request, HttpResponse response) {
requestCount++;
@@ -52,8 +55,9 @@ class Server {
}
Server setupServer(int proxyHops,
- [List<String> directRequestPaths = const <String>[]]) {
- Server server = new Server(proxyHops, directRequestPaths);
+ {List<String> directRequestPaths: const <String>[],
+ secure: false}) {
+ Server server = new Server(proxyHops, directRequestPaths, secure);
server.start();
return server;
}
@@ -171,7 +175,8 @@ void testDirectProxy() {
int testProxyDoneCount = 0;
void testProxy() {
ProxyServer proxyServer = setupProxyServer();
- Server server = setupServer(1, ["/4"]);
+ Server server = setupServer(1, directRequestPaths: ["/4"]);
+ Server secureServer = setupServer(1, directRequestPaths: ["/4"], secure: true);
HttpClient client = new HttpClient();
List<String> proxy =
@@ -189,26 +194,34 @@ void testProxy() {
};
for (int i = 0; i < proxy.length; i++) {
- HttpClientConnection conn =
- client.postUrl(
- Uri.parse("http://127.0.0.1:${server.port}/$i"));
- conn.onRequest = (HttpClientRequest clientRequest) {
- String content = "$i$i$i";
- clientRequest.outputStream.writeString(content);
- clientRequest.outputStream.close();
- };
- conn.onResponse = (HttpClientResponse response) {
- response.inputStream.onData = () => response.inputStream.read();
- response.inputStream.onClosed = () {
- testProxyDoneCount++;
- if (testProxyDoneCount == proxy.length) {
- Expect.equals(proxy.length, server.requestCount);
- proxyServer.shutdown();
- server.shutdown();
- client.shutdown();
- }
+ test(bool secure) {
+ String url = secure
+ ? "https://localhost:${secureServer.port}/$i"
+ : "http://127.0.0.1:${server.port}/$i";
+
+ HttpClientConnection conn = client.postUrl(Uri.parse(url));
+ conn.onRequest = (HttpClientRequest clientRequest) {
+ String content = "$i$i$i";
+ clientRequest.outputStream.writeString(content);
+ clientRequest.outputStream.close();
};
- };
+ conn.onResponse = (HttpClientResponse response) {
+ response.inputStream.onData = () => response.inputStream.read();
+ response.inputStream.onClosed = () {
+ testProxyDoneCount++;
+ if (testProxyDoneCount == proxy.length * 2) {
+ Expect.equals(proxy.length, server.requestCount);
+ proxyServer.shutdown();
+ server.shutdown();
+ secureServer.shutdown();
+ client.shutdown();
+ }
+ };
+ };
+ }
+
+ test(false);
+ test(true);
}
}
@@ -219,7 +232,7 @@ void testProxyChain() {
ProxyServer proxyServer2 = setupProxyServer();
proxyServer1.client.findProxy = (_) => "PROXY 127.0.0.1:${proxyServer2.port}";
- Server server = setupServer(2, ["/4"]);
+ Server server = setupServer(2, directRequestPaths: ["/4"]);
HttpClient client = new HttpClient();
List<String> proxy =
@@ -301,7 +314,15 @@ void testRealProxy() {
}
}
+void InitializeSSL() {
+ var testPkcertDatabase =
+ new Path(new Options().script).directoryPath.append('pkcert/');
+ SecureSocket.initialize(database: testPkcertDatabase.toNativePath(),
+ password: 'dartdart');
+}
+
main() {
+ InitializeSSL();
testInvalidProxy();
testDirectProxy();
testProxy();
« no previous file with comments | « sdk/lib/io/http_impl.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698