diff options
author | Omair Majid <omajid@redhat.com> | 2013-10-01 23:43:31 -0400 |
---|---|---|
committer | Omair Majid <omajid@redhat.com> | 2013-10-01 23:43:31 -0400 |
commit | cfae43ca6f649bfc6427b0132a9068ef6ded4e74 (patch) | |
tree | 1fb9065aa38371308e66cc8d73b1c36e923e6d6d /netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java | |
parent | 4ab697ce4173547f73e52c0526ac21e3b23053c7 (diff) |
Unit tests for BrowserAwareProxySelector
Also move duplicate code for selecting a host and port depending on the
protocol into JNLPProxySelector.getFromArguments. The semantics of
'sameProxy' are different between BrowserAwareProxySelector and
JNLPProxySelector; the socks proxy is included in firefox.
Diffstat (limited to 'netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java')
-rw-r--r-- | netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java | 55 |
1 files changed, 17 insertions, 38 deletions
diff --git a/netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java b/netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java index 926a591..1f51ea6 100644 --- a/netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java +++ b/netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java @@ -40,13 +40,10 @@ import static net.sourceforge.jnlp.runtime.Translator.R; import java.io.File; import java.io.IOException; -import java.net.InetSocketAddress; import java.net.MalformedURLException; import java.net.Proxy; -import java.net.SocketAddress; import java.net.URI; import java.net.URL; -import java.net.Proxy.Type; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -79,6 +76,7 @@ public class BrowserAwareProxySelector extends JNLPProxySelector { private int browserProxyType = BROWSER_PROXY_TYPE_NONE; private URL browserAutoConfigUrl; + /** Whether the http proxy should be used for http, https, ftp and socket protocols */ private Boolean browserUseSameProxy; private String browserHttpProxyHost; private int browserHttpProxyPort; @@ -96,6 +94,9 @@ public class BrowserAwareProxySelector extends JNLPProxySelector { */ public BrowserAwareProxySelector(DeploymentConfiguration config) { super(config); + } + + public void initialize() { try { initFromBrowserConfig(); } catch (IOException e) { @@ -110,11 +111,7 @@ public class BrowserAwareProxySelector extends JNLPProxySelector { */ private void initFromBrowserConfig() throws IOException { - File preferencesFile = FirefoxPreferencesFinder.find(); - - FirefoxPreferencesParser parser = new FirefoxPreferencesParser(preferencesFile); - parser.parse(); - Map<String, String> prefs = parser.getPreferences(); + Map<String, String> prefs = parseBrowserPreferences(); String type = prefs.get("network.proxy.type"); if (type != null) { @@ -150,6 +147,13 @@ public class BrowserAwareProxySelector extends JNLPProxySelector { browserSocks4ProxyPort = stringToPort(prefs.get("network.proxy.socks_port")); } + Map<String, String> parseBrowserPreferences() throws IOException { + File preferencesFile = FirefoxPreferencesFinder.find(); + FirefoxPreferencesParser parser = new FirefoxPreferencesParser(preferencesFile); + parser.parse(); + return parser.getPreferences(); + } + /** * Returns port inside a string. Unlike {@link Integer#valueOf(String)}, * it will not throw exceptions. @@ -244,36 +248,11 @@ public class BrowserAwareProxySelector extends JNLPProxySelector { * the browser's preferences file. */ private List<Proxy> getFromBrowserConfiguration(URI uri) { - List<Proxy> proxies = new ArrayList<Proxy>(); - - String scheme = uri.getScheme(); - - if (browserUseSameProxy) { - SocketAddress sa = new InetSocketAddress(browserHttpProxyHost, browserHttpProxyPort); - Proxy proxy; - if (scheme.equals("socket")) { - proxy = new Proxy(Type.SOCKS, sa); - } else { - proxy = new Proxy(Type.HTTP, sa); - } - proxies.add(proxy); - } else if (scheme.equals("http")) { - SocketAddress sa = new InetSocketAddress(browserHttpProxyHost, browserHttpProxyPort); - proxies.add(new Proxy(Type.HTTP, sa)); - } else if (scheme.equals("https")) { - SocketAddress sa = new InetSocketAddress(browserHttpsProxyHost, browserHttpsProxyPort); - proxies.add(new Proxy(Type.HTTP, sa)); - } else if (scheme.equals("ftp")) { - SocketAddress sa = new InetSocketAddress(browserFtpProxyHost, browserFtpProxyPort); - proxies.add(new Proxy(Type.HTTP, sa)); - } else if (scheme.equals("socket")) { - SocketAddress sa = new InetSocketAddress(browserSocks4ProxyHost, browserSocks4ProxyPort); - proxies.add(new Proxy(Type.SOCKS, sa)); - } else { - proxies.add(Proxy.NO_PROXY); - } - - return proxies; + return getFromArguments(uri, browserUseSameProxy, true, + browserHttpsProxyHost, browserHttpsProxyPort, + browserHttpProxyHost, browserHttpProxyPort, + browserFtpProxyHost, browserFtpProxyPort, + browserSocks4ProxyHost, browserSocks4ProxyPort); } } |