OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 "package:expect/expect.dart"; | 5 import "package:expect/expect.dart"; |
6 import "dart:io"; | 6 import "dart:io"; |
7 | 7 |
8 expect(expected, String uri, environment) { | 8 expect(expected, String uri, environment) { |
9 Expect.equals(expected, | 9 Expect.equals(expected, |
10 HttpClient.findProxyFromEnvironment(Uri.parse(uri), | 10 HttpClient.findProxyFromEnvironment(Uri.parse(uri), |
11 environment: environment)); | 11 environment: environment)); |
12 } | 12 } |
13 | 13 |
14 expectDirect(String uri, environment) { | 14 expectDirect(String uri, environment) { |
15 Expect.equals("DIRECT", | 15 Expect.equals("DIRECT", |
16 HttpClient.findProxyFromEnvironment(Uri.parse(uri), | 16 HttpClient.findProxyFromEnvironment(Uri.parse(uri), |
17 environment: environment)); | 17 environment: environment)); |
18 } | 18 } |
19 | 19 |
20 main() { | 20 main() { |
21 expectDirect("http://www.google.com", {}); | 21 expectDirect("http://www.google.com", {}); |
| 22 expectDirect("http://www.google.com", {"http_proxy": ""}); |
| 23 expectDirect("http://www.google.com", {"http_proxy": " "}); |
22 | 24 |
23 expect("PROXY www.proxy.com:1080", | 25 expect("PROXY www.proxy.com:1080", |
24 "http://www.google.com", | 26 "http://www.google.com", |
25 {"http_proxy": "www.proxy.com"}); | 27 {"http_proxy": "www.proxy.com"}); |
26 expect("PROXY www.proxys.com:1080", | 28 expect("PROXY www.proxys.com:1080", |
27 "https://www.google.com", | 29 "https://www.google.com", |
28 {"https_proxy": "www.proxys.com"}); | 30 {"https_proxy": "www.proxys.com"}); |
29 expect("PROXY www.proxy.com:8080", | 31 expect("PROXY www.proxy.com:8080", |
30 "http://www.google.com", | 32 "http://www.google.com", |
31 {"http_proxy": "www.proxy.com:8080"}); | 33 {"http_proxy": "www.proxy.com:8080"}); |
32 expect("PROXY www.proxys.com:8080", | 34 expect("PROXY www.proxys.com:8080", |
33 "https://www.google.com", | 35 "https://www.google.com", |
34 {"https_proxy": "www.proxys.com:8080"}); | 36 {"https_proxy": "www.proxys.com:8080"}); |
35 expect("PROXY www.proxy.com:8080", | 37 expect("PROXY www.proxy.com:8080", |
36 "http://www.google.com", | 38 "http://www.google.com", |
37 {"http_proxy": "www.proxy.com:8080", | 39 {"http_proxy": "www.proxy.com:8080", |
38 "https_proxy": "www.proxy.com:8080"}); | 40 "https_proxy": "www.proxys.com:8080"}); |
39 expect("PROXY www.proxys.com:8080", | 41 expect("PROXY www.proxys.com:8080", |
40 "https://www.google.com", | 42 "https://www.google.com", |
41 {"http_proxy": "www.proxy.com:8080", | 43 {"http_proxy": "www.proxy.com:8080", |
42 "https_proxy": "www.proxys.com:8080"}); | 44 "https_proxy": "www.proxys.com:8080"}); |
43 | 45 |
| 46 expect("PROXY [::FFFF:1]:1080", |
| 47 "http://www.google.com", |
| 48 {"http_proxy": "[::FFFF:1]"}); |
| 49 expect("PROXY [::FFFF:2]:1080", |
| 50 "https://www.google.com", |
| 51 {"https_proxy": "[::FFFF:2]"}); |
| 52 expect("PROXY [::FFFF:1]:8080", |
| 53 "http://www.google.com", |
| 54 {"http_proxy": "[::FFFF:1]:8080"}); |
| 55 expect("PROXY [::FFFF:2]:8080", |
| 56 "https://www.google.com", |
| 57 {"https_proxy": "[::FFFF:2]:8080"}); |
| 58 expect("PROXY [::FFFF:1]:8080", |
| 59 "http://www.google.com", |
| 60 {"http_proxy": "[::FFFF:1]:8080", |
| 61 "https_proxy": "[::FFFF:2]:8080"}); |
| 62 expect("PROXY [::FFFF:2]:8080", |
| 63 "https://www.google.com", |
| 64 {"http_proxy": "[::FFFF:1]:8080", |
| 65 "https_proxy": "[::FFFF:2]:8080"}); |
| 66 |
44 expect("PROXY www.proxy.com:1080", | 67 expect("PROXY www.proxy.com:1080", |
45 "http://www.google.com", | 68 "http://www.google.com", |
46 {"http_proxy": "http://www.proxy.com"}); | 69 {"http_proxy": "http://www.proxy.com"}); |
47 expect("PROXY www.proxy.com:1080", | 70 expect("PROXY www.proxy.com:1080", |
48 "http://www.google.com", | 71 "http://www.google.com", |
49 {"http_proxy": "http://www.proxy.com/"}); | 72 {"http_proxy": "http://www.proxy.com/"}); |
50 expect("PROXY www.proxy.com:8080", | 73 expect("PROXY www.proxy.com:8080", |
51 "http://www.google.com", | 74 "http://www.google.com", |
52 {"http_proxy": "http://www.proxy.com:8080/"}); | 75 {"http_proxy": "http://www.proxy.com:8080/"}); |
53 expect("PROXY www.proxy.com:8080", | 76 expect("PROXY www.proxy.com:8080", |
54 "http://www.google.com", | 77 "http://www.google.com", |
55 {"http_proxy": "http://www.proxy.com:8080/index.html"}); | 78 {"http_proxy": "http://www.proxy.com:8080/index.html"}); |
56 expect("PROXY www.proxy.com:8080", | 79 expect("PROXY www.proxy.com:8080", |
57 "http://www.google.com", | 80 "http://www.google.com", |
58 {"http_proxy": "http://www.proxy.com:8080/", | 81 {"http_proxy": "http://www.proxy.com:8080/", |
59 "https_proxy": "http://www.proxy.com:8080/"}); | 82 "https_proxy": "http://www.proxys.com:8080/"}); |
60 expect("PROXY www.proxys.com:8080", | 83 expect("PROXY www.proxys.com:8080", |
61 "https://www.google.com", | 84 "https://www.google.com", |
62 {"http_proxy": "http://www.proxy.com:8080/", | 85 {"http_proxy": "http://www.proxy.com:8080/", |
63 "https_proxy": "http://www.proxys.com:8080/"}); | 86 "https_proxy": "http://www.proxys.com:8080/"}); |
64 expect("PROXY www.proxy.com:8080", | 87 expect("PROXY www.proxy.com:8080", |
65 "http://www.google.com", | 88 "http://www.google.com", |
66 {"http_proxy": "http://www.proxy.com:8080/", | 89 {"http_proxy": "http://www.proxy.com:8080/", |
67 "https_proxy": "http://www.proxy.com:8080/index.html"}); | 90 "https_proxy": "http://www.proxys.com:8080/index.html"}); |
68 expect("PROXY www.proxys.com:8080", | 91 expect("PROXY www.proxys.com:8080", |
69 "https://www.google.com", | 92 "https://www.google.com", |
70 {"http_proxy": "http://www.proxy.com:8080/", | 93 {"http_proxy": "http://www.proxy.com:8080/", |
71 "https_proxy": "http://www.proxys.com:8080/index.html"}); | 94 "https_proxy": "http://www.proxys.com:8080/index.html"}); |
72 | 95 |
| 96 expect("PROXY [::FFFF:1]:1080", |
| 97 "http://www.google.com", |
| 98 {"http_proxy": "http://[::FFFF:1]"}); |
| 99 expect("PROXY [::FFFF:1]:1080", |
| 100 "http://www.google.com", |
| 101 {"http_proxy": "http://[::FFFF:1]/"}); |
| 102 expect("PROXY [::FFFF:1]:8080", |
| 103 "http://www.google.com", |
| 104 {"http_proxy": "http://[::FFFF:1]:8080/"}); |
| 105 expect("PROXY [::FFFF:1]:8080", |
| 106 "http://www.google.com", |
| 107 {"http_proxy": "http://[::FFFF:1]:8080/index.html"}); |
| 108 expect("PROXY [::FFFF:1]:8080", |
| 109 "http://www.google.com", |
| 110 {"http_proxy": "http://[::FFFF:1]:8080/", |
| 111 "https_proxy": "http://[::FFFF:1]:8080/"}); |
| 112 expect("PROXY [::FFFF:2]:8080", |
| 113 "https://www.google.com", |
| 114 {"http_proxy": "http://[::FFFF:1]:8080/", |
| 115 "https_proxy": "http://[::FFFF:2]:8080/"}); |
| 116 expect("PROXY [::FFFF:1]:8080", |
| 117 "http://www.google.com", |
| 118 {"http_proxy": "http://[::FFFF:1]:8080/", |
| 119 "https_proxy": "http://[::FFFF:1]:8080/index.html"}); |
| 120 expect("PROXY [::FFFF:2]:8080", |
| 121 "https://www.google.com", |
| 122 {"http_proxy": "http://[::FFFF:1]:8080/", |
| 123 "https_proxy": "http://[::FFFF:2]:8080/index.html"}); |
| 124 |
73 expectDirect("http://www.google.com", | 125 expectDirect("http://www.google.com", |
74 {"http_proxy": "www.proxy.com:8080", | 126 {"http_proxy": "www.proxy.com:8080", |
75 "no_proxy": "www.google.com"}); | 127 "no_proxy": "www.google.com"}); |
76 expectDirect("http://www.google.com", | 128 expectDirect("http://www.google.com", |
77 {"http_proxy": "www.proxy.com:8080", | 129 {"http_proxy": "www.proxy.com:8080", |
78 "no_proxy": "google.com"}); | 130 "no_proxy": "google.com"}); |
79 expectDirect("http://www.google.com", | 131 expectDirect("http://www.google.com", |
80 {"http_proxy": "www.proxy.com:8080", | 132 {"http_proxy": "www.proxy.com:8080", |
81 "no_proxy": ".com"}); | 133 "no_proxy": ".com"}); |
82 expectDirect("http://www.google.com", | 134 expectDirect("http://www.google.com", |
83 {"http_proxy": "www.proxy.com:8080", | 135 {"http_proxy": "www.proxy.com:8080", |
84 "no_proxy": ",, , www.google.edu,,.com "}); | 136 "no_proxy": ",, , www.google.edu,,.com "}); |
85 expectDirect("http://www.google.edu", | 137 expectDirect("http://www.google.edu", |
86 {"http_proxy": "www.proxy.com:8080", | 138 {"http_proxy": "www.proxy.com:8080", |
87 "no_proxy": ",, , www.google.edu,,.com "}); | 139 "no_proxy": ",, , www.google.edu,,.com "}); |
88 expectDirect("http://www.google.com", | 140 expectDirect("http://www.google.com", |
89 {"https_proxy": "www.proxy.com:8080"}); | 141 {"https_proxy": "www.proxy.com:8080"}); |
| 142 |
| 143 expect("PROXY www.proxy.com:8080", |
| 144 "http://[::FFFF:1]", |
| 145 {"http_proxy": "www.proxy.com:8080", |
| 146 "no_proxy": "["}); |
| 147 expect("PROXY www.proxy.com:8080", |
| 148 "http://[::FFFF:1]", |
| 149 {"http_proxy": "www.proxy.com:8080", |
| 150 "no_proxy": "[]"}); |
| 151 |
| 152 expectDirect("http://[::FFFF:1]", |
| 153 {"http_proxy": "www.proxy.com:8080", |
| 154 "no_proxy": "[::FFFF:1]"}); |
| 155 expectDirect("http://[::FFFF:1]", |
| 156 {"http_proxy": "www.proxy.com:8080", |
| 157 "no_proxy": ",, , www.google.edu,,[::FFFF:1] "}); |
90 } | 158 } |
OLD | NEW |