1 package com.atlassian.sal.core.net;
2
3 import org.apache.commons.httpclient.HostConfiguration;
4 import org.apache.commons.httpclient.HttpClient;
5
6 import junit.framework.TestCase;
7
8 import static org.mockito.Mockito.mock;
9 import static org.mockito.Mockito.never;
10 import static org.mockito.Mockito.times;
11 import static org.mockito.Mockito.verify;
12 import static org.mockito.Mockito.when;
13
14 public class TestHttpClientProxyConfig extends TestCase
15 {
16 public static final String PROXY_HOST = "localhost";
17 private HttpClient httpClient;
18 private HostConfiguration hostConfiguration;
19
20 @Override
21 public void tearDown()
22 {
23 System.clearProperty("http.proxyHost");
24 System.clearProperty("http.nonProxyHosts");
25 }
26
27 @Override
28 public void setUp()
29 {
30 httpClient = mock(HttpClient.class);
31 hostConfiguration = mock(HostConfiguration.class);
32 when(httpClient.getHostConfiguration()).thenReturn(hostConfiguration);
33
34 System.setProperty("http.proxyHost", PROXY_HOST);
35 System.setProperty("http.nonProxyHosts", "localhost|*.jira.com");
36 }
37
38 public void testConfigureProxyEmptyURL()
39 {
40 HttpClientProxyConfig httpClientProxyConfig = new HttpClientProxyConfig();
41 httpClientProxyConfig.configureProxy(httpClient, "");
42
43 verify(hostConfiguration, never()).setProxy(PROXY_HOST, 80);
44 }
45
46 public void testConfigureProxyValidURL()
47 {
48 HttpClientProxyConfig httpClientProxyConfig = new HttpClientProxyConfig();
49 httpClientProxyConfig.configureProxy(httpClient, "http://test");
50
51 verify(hostConfiguration, times(1)).setProxy(PROXY_HOST, 80);
52 }
53
54 public void testConfigureProxyWithNonProxyURL()
55 {
56 HttpClient httpClient = mock(HttpClient.class);
57 HttpClientProxyConfig httpClientProxyConfig = new HttpClientProxyConfig();
58 httpClientProxyConfig.configureProxy(httpClient, "http://localhost");
59
60 verify(hostConfiguration, never()).setProxy(PROXY_HOST, 80);
61 }
62
63 }