aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java
diff options
context:
space:
mode:
authorOmair Majid <omajid@redhat.com>2013-10-01 23:43:31 -0400
committerOmair Majid <omajid@redhat.com>2013-10-01 23:43:31 -0400
commitcfae43ca6f649bfc6427b0132a9068ef6ded4e74 (patch)
tree1fb9065aa38371308e66cc8d73b1c36e923e6d6d /netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java
parent4ab697ce4173547f73e52c0526ac21e3b23053c7 (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.java55
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);
}
}