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

Side by Side Diff: tests/standalone/io/http_proxy_test.dart

Issue 11098018: Addressed drive by comments (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 2 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 | « runtime/bin/http_impl.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 #import("dart:io"); 5 #import("dart:io");
6 #import("dart:uri"); 6 #import("dart:uri");
7 7
8 class Server { 8 class Server {
9 HttpServer server; 9 HttpServer server;
10 int proxyHops; 10 int proxyHops;
11 int requestCount = 0; 11 int requestCount = 0;
12 12
13 Server(this.proxyHops) : server = new HttpServer(); 13 Server(this.proxyHops) : server = new HttpServer();
14 14
15 void start() { 15 void start() {
16 server.listen("127.0.0.1", 0, 5); 16 server.listen("127.0.0.1", 0);
17 server.defaultRequestHandler = 17 server.defaultRequestHandler =
18 (HttpRequest request, HttpResponse response) { 18 (HttpRequest request, HttpResponse response) {
19 requestCount++; 19 requestCount++;
20 if (proxyHops > 0) { 20 if (proxyHops > 0) {
21 Expect.isNotNull(request.headers[HttpHeaders.VIA]); 21 Expect.isNotNull(request.headers[HttpHeaders.VIA]);
22 Expect.equals(1, request.headers[HttpHeaders.VIA].length); 22 Expect.equals(1, request.headers[HttpHeaders.VIA].length);
23 Expect.equals( 23 Expect.equals(
24 proxyHops, 24 proxyHops,
25 request.headers[HttpHeaders.VIA][0].split(",").length); 25 request.headers[HttpHeaders.VIA][0].split(",").length);
26 } else { 26 } else {
27 Expect.isNull(request.headers[HttpHeaders.VIA]); 27 Expect.isNull(request.headers[HttpHeaders.VIA]);
28 } 28 }
29 StringInputStream stream = new StringInputStream(request.inputStream); 29 StringInputStream stream = new StringInputStream(request.inputStream);
30 StringBuffer body = new StringBuffer(); 30 StringBuffer body = new StringBuffer();
31 stream.onData = () => body.add(stream.read()); 31 stream.onData = () => body.add(stream.read());
32 stream.onClosed = () { 32 stream.onClosed = () {
33 String path = request.path.substring(1); 33 String path = request.path.substring(1);
34 String content = "$path$path$path"; 34 String content = "$path$path$path";
35 Expect.equals(content, body.toString()); 35 Expect.equals(content, body.toString());
36 response.outputStream.writeString(request.path); 36 response.outputStream.writeString(request.path);
37 response.outputStream.close(); 37 response.outputStream.close();
38 }; 38 };
39 }; 39 };
40 } 40 }
41 41
42 void shutdown() { 42 void shutdown() {
43 server.close(); 43 server.close();
44 } 44 }
45 45
46 int get port => server.port; 46 int get port => server.port;
47 } 47 }
48 48
49 Server setupServer(int proxyHops) { 49 Server setupServer(int proxyHops) {
50 Server server = new Server(proxyHops); 50 Server server = new Server(proxyHops);
51 server.start(); 51 server.start();
52 return server; 52 return server;
53 } 53 }
54 54
55 class ProxyServer { 55 class ProxyServer {
56 HttpServer server; 56 HttpServer server;
57 HttpClient client; 57 HttpClient client;
58 int requestCount = 0; 58 int requestCount = 0;
59 59
60 ProxyServer() : server = new HttpServer(), client = new HttpClient(); 60 ProxyServer() : server = new HttpServer(), client = new HttpClient();
61 61
62 void start() { 62 void start() {
63 server.listen("127.0.0.1", 0, 5); 63 server.listen("127.0.0.1", 0);
64 server.defaultRequestHandler = 64 server.defaultRequestHandler =
65 (HttpRequest request, HttpResponse response) { 65 (HttpRequest request, HttpResponse response) {
66 requestCount++; 66 requestCount++;
67 // Open the connection from the proxy. 67 // Open the connection from the proxy.
68 HttpClientConnection conn = 68 HttpClientConnection conn =
69 client.openUrl(request.method, new Uri.fromString(request.path)); 69 client.openUrl(request.method, new Uri.fromString(request.path));
70 conn.onRequest = (HttpClientRequest clientRequest) { 70 conn.onRequest = (HttpClientRequest clientRequest) {
71 // Forward all headers. 71 // Forward all headers.
72 request.headers.forEach((String name, List<String> values) { 72 request.headers.forEach((String name, List<String> values) {
73 values.forEach((String value) { 73 values.forEach((String value) {
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 290
291 main() { 291 main() {
292 testInvalidProxy(); 292 testInvalidProxy();
293 testDirectProxy(); 293 testDirectProxy();
294 testProxy(); 294 testProxy();
295 testProxyChain(); 295 testProxyChain();
296 // This test is not normally run. It can be used for locally testing 296 // This test is not normally run. It can be used for locally testing
297 // with a real proxy server (e.g. Apache). 297 // with a real proxy server (e.g. Apache).
298 // testRealProxy(); 298 // testRealProxy();
299 } 299 }
OLDNEW
« no previous file with comments | « runtime/bin/http_impl.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698