36
36
import java .net .*;
37
37
import java .util .HashMap ;
38
38
import java .util .Map ;
39
+ import java .util .Optional ;
39
40
40
41
import static org .junit .Assert .assertEquals ;
42
+ import static org .junit .Assert .assertFalse ;
43
+ import static org .junit .Assert .assertTrue ;
41
44
42
45
public class CustomProxySelectorTest {
43
46
@@ -58,6 +61,8 @@ public void testNoProxy() throws Exception {
58
61
Proxy proxy = proxySelector .getProxyFor (uri );
59
62
60
63
assertEquals (Proxy .NO_PROXY , proxy );
64
+ Optional <URI > proxyURI = proxySelector .getProxyURIFor (uri );
65
+ assertFalse (proxyURI .isPresent ());
61
66
}
62
67
63
68
@ Test
@@ -67,6 +72,8 @@ public void testSystemProxy() throws Exception {
67
72
Proxy proxy = proxySelector .getProxyFor (uri );
68
73
69
74
assertEquals (ProxySelector .getDefault ().select (uri ).get (0 ), proxy );
75
+ Optional <URI > proxyURI = proxySelector .getProxyURIFor (uri );
76
+ assertFalse (proxyURI .isPresent ());
70
77
}
71
78
72
79
@ Test
@@ -77,6 +84,9 @@ public void testProxyPACHTTP() throws Exception {
77
84
Proxy proxy = proxySelector .getProxyFor (uri );
78
85
79
86
assertEquals (new Proxy (Proxy .Type .HTTP , new InetSocketAddress ("proxy.example.com" , 8080 )), proxy );
87
+ Optional <URI > proxyURI = proxySelector .getProxyURIFor (uri );
88
+ assertTrue (proxyURI .isPresent ());
89
+ assertEquals ("http://proxy.example.com:8080/" , proxyURI .get ().toString ());
80
90
}
81
91
82
92
@ Test
@@ -93,6 +103,10 @@ public void testProxyPACHTTPWithLogin() throws Exception {
93
103
PasswordAuthentication authentication = Authenticator .requestPasswordAuthentication (null , 8080 , uri .toURL ().getProtocol (), "ciao" , "" );
94
104
assertEquals (authentication .getUserName (), "auto" );
95
105
assertEquals (String .valueOf (authentication .getPassword ()), "autopassword" );
106
+
107
+ Optional <URI > proxyURI = proxySelector .getProxyURIFor (uri );
108
+ assertTrue (proxyURI .isPresent ());
109
+ assertEquals (
"http://auto:[email protected] :8080/" ,
proxyURI .
get ().
toString ());
96
110
}
97
111
98
112
@ Test
@@ -103,6 +117,10 @@ public void testProxyPACSOCKS() throws Exception {
103
117
Proxy proxy = proxySelector .getProxyFor (uri );
104
118
105
119
assertEquals (new Proxy (Proxy .Type .SOCKS , new InetSocketAddress ("proxy.example.com" , 8080 )), proxy );
120
+
121
+ Optional <URI > proxyURI = proxySelector .getProxyURIFor (uri );
122
+ assertTrue (proxyURI .isPresent ());
123
+ assertEquals ("socks://proxy.example.com:8080/" , proxyURI .get ().toString ());
106
124
}
107
125
108
126
@ Test
@@ -113,6 +131,8 @@ public void testProxyPACDirect() throws Exception {
113
131
Proxy proxy = proxySelector .getProxyFor (uri );
114
132
115
133
assertEquals (Proxy .NO_PROXY , proxy );
134
+ Optional <URI > proxyURI = proxySelector .getProxyURIFor (uri );
135
+ assertFalse (proxyURI .isPresent ());
116
136
}
117
137
118
138
@ Test
@@ -123,6 +143,10 @@ public void testProxyPACComplex() throws Exception {
123
143
Proxy proxy = proxySelector .getProxyFor (uri );
124
144
125
145
assertEquals (new Proxy (Proxy .Type .HTTP , new InetSocketAddress ("4.5.6.7" , 8080 )), proxy );
146
+
147
+ Optional <URI > proxyURI = proxySelector .getProxyURIFor (uri );
148
+ assertTrue (proxyURI .isPresent ());
149
+ assertEquals ("http://4.5.6.7:8080/" , proxyURI .get ().toString ());
126
150
}
127
151
128
152
@ Test
@@ -133,6 +157,8 @@ public void testProxyPACComplex2() throws Exception {
133
157
Proxy proxy = proxySelector .getProxyFor (new URL ("http://www.intranet.domain.com/ciao" ).toURI ());
134
158
135
159
assertEquals (Proxy .NO_PROXY , proxy );
160
+ Optional <URI > proxyURI = proxySelector .getProxyURIFor (new URL ("http://www.intranet.domain.com/ciao" ).toURI ());
161
+ assertFalse (proxyURI .isPresent ());
136
162
}
137
163
138
164
@ Test
@@ -146,6 +172,10 @@ public void testManualProxy() throws Exception {
146
172
Proxy proxy = proxySelector .getProxyFor (uri );
147
173
148
174
assertEquals (new Proxy (Proxy .Type .HTTP , new InetSocketAddress ("localhost" , 8080 )), proxy );
175
+
176
+ Optional <URI > proxyURI = proxySelector .getProxyURIFor (uri );
177
+ assertTrue (proxyURI .isPresent ());
178
+ assertEquals ("http://localhost:8080/" , proxyURI .get ().toString ());
149
179
}
150
180
151
181
@ Test
@@ -165,5 +195,9 @@ public void testManualProxyWithLogin() throws Exception {
165
195
PasswordAuthentication authentication = Authenticator .requestPasswordAuthentication (null , 8080 , uri .toURL ().getProtocol (), "ciao" , "" );
166
196
assertEquals (authentication .getUserName (), "username" );
167
197
assertEquals (String .valueOf (authentication .getPassword ()), "pwd" );
198
+
199
+ Optional <URI > proxyURI = proxySelector .getProxyURIFor (uri );
200
+ assertTrue (proxyURI .isPresent ());
201
+ assertEquals ("http://username:pwd@localhost:8080/" , proxyURI .get ().toString ());
168
202
}
169
203
}
0 commit comments