summaryrefslogtreecommitdiffstats
path: root/src/test/java/com/btr/proxy/search
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/btr/proxy/search')
-rw-r--r--src/test/java/com/btr/proxy/search/browser/FirefoxTest.java144
-rw-r--r--src/test/java/com/btr/proxy/search/browser/IeTest.java59
-rw-r--r--src/test/java/com/btr/proxy/search/desktop/DesktopProxySearchTest.java45
-rw-r--r--src/test/java/com/btr/proxy/search/desktop/win/DLLManagerTest.java78
-rw-r--r--src/test/java/com/btr/proxy/search/gnome/GnomeProxySearchTest.java117
-rw-r--r--src/test/java/com/btr/proxy/search/java/JavaProxySearchTest.java137
-rw-r--r--src/test/java/com/btr/proxy/search/kde/KdeProxySearchTest.java177
7 files changed, 757 insertions, 0 deletions
diff --git a/src/test/java/com/btr/proxy/search/browser/FirefoxTest.java b/src/test/java/com/btr/proxy/search/browser/FirefoxTest.java
new file mode 100644
index 0000000..2a45140
--- /dev/null
+++ b/src/test/java/com/btr/proxy/search/browser/FirefoxTest.java
@@ -0,0 +1,144 @@
+package com.btr.proxy.search.browser;
+
+import static org.junit.Assert.*;
+
+import java.net.Proxy;
+import java.net.ProxySelector;
+import java.net.URISyntaxException;
+import java.util.List;
+
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import com.btr.proxy.TestUtil;
+import com.btr.proxy.search.browser.firefox.FirefoxProxySearchStrategy;
+import com.btr.proxy.util.ProxyException;
+
+/*****************************************************************************
+ * Unit tests for the firefox search.
+ *
+ * @author Bernd Rosstauscher (proxyvole@rosstauscher.de) Copyright 2009
+ ****************************************************************************/
+
+@Ignore
+public class FirefoxTest {
+
+ /*************************************************************************
+ * Setup environment for tests.
+ ************************************************************************/
+ @BeforeClass
+ public static void setup() {
+ // Fake the OS for this tests.
+ System.setProperty("os.name", "Linux");
+ }
+
+ /*************************************************************************
+ * Test method.
+ * @throws ProxyException on error.
+ ************************************************************************/
+ @Test
+ public void testNone() throws ProxyException {
+ TestUtil.setTestDataFolder("ff3_none");
+
+ FirefoxProxySearchStrategy ff = new FirefoxProxySearchStrategy();
+ ProxySelector ps = ff.getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.HTTPS_TEST_URI);
+ assertEquals(Proxy.NO_PROXY , result.get(0));
+
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testManualHttp() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("ff3_manual");
+
+ ProxySelector ps = new FirefoxProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.HTTP_TEST_URI);
+ assertEquals(TestUtil.HTTP_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testManualHttps() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("ff3_manual");
+
+ ProxySelector ps = new FirefoxProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.HTTPS_TEST_URI);
+ assertEquals(TestUtil.HTTPS_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testManualFtp() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("ff3_manual");
+
+ ProxySelector ps = new FirefoxProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.FTP_TEST_URI);
+ assertEquals(TestUtil.FTP_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testManualSocks() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("ff3_manual");
+
+ ProxySelector ps = new FirefoxProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.SOCKS_TEST_URI);
+ assertEquals(TestUtil.SOCKS_TEST_PROXY, result.get(0));
+ }
+
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testPac() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("ff3_pac_script");
+
+ ProxySelector ps = new FirefoxProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.HTTP_TEST_URI);
+ assertEquals(TestUtil.HTTP_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testWhiteList() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("ff3_white_list");
+
+ ProxySelector ps = new FirefoxProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.NO_PROXY_TEST_URI);
+ assertEquals(Proxy.NO_PROXY, result.get(0));
+ }
+
+}
+
diff --git a/src/test/java/com/btr/proxy/search/browser/IeTest.java b/src/test/java/com/btr/proxy/search/browser/IeTest.java
new file mode 100644
index 0000000..3c7e72c
--- /dev/null
+++ b/src/test/java/com/btr/proxy/search/browser/IeTest.java
@@ -0,0 +1,59 @@
+package com.btr.proxy.search.browser;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
+
+import java.net.MalformedURLException;
+import java.net.URISyntaxException;
+import java.net.URL;
+
+import org.junit.Test;
+
+import com.btr.proxy.TestUtil;
+import com.btr.proxy.search.browser.ie.IELocalByPassFilter;
+import com.btr.proxy.search.browser.ie.IEProxySearchStrategy;
+import com.btr.proxy.util.PlatformUtil;
+import com.btr.proxy.util.ProxyException;
+import com.btr.proxy.util.PlatformUtil.Platform;
+import com.btr.proxy.util.UriFilter;
+
+/*****************************************************************************
+ * Unit tests for the InternetExplorer search.
+ * Only limited testing as this only runs on windwos and needs a
+ * installed IE and IE proxy settings written to the registry.
+ *
+ * @author Bernd Rosstauscher (proxyvole@rosstauscher.de) Copyright 2009
+ ****************************************************************************/
+
+public class IeTest {
+
+ /*************************************************************************
+ * Test method.
+ * @throws ProxyException on proxy detection error.
+ ************************************************************************/
+ @Test
+ public void testInvoke() throws ProxyException {
+ if (Platform.WIN.equals(PlatformUtil.getCurrentPlattform())) {
+ IEProxySearchStrategy st = new IEProxySearchStrategy();
+
+ // Try at least to invoke it and test if the dll does not crash
+ st.getProxySelector();
+ }
+ }
+
+ /*************************************************************************
+ * Test method.
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException if url syntax is wrong.
+ * @throws MalformedURLException on wrong url format.
+ ************************************************************************/
+ @Test
+ public void testLocalByPassFilter() throws ProxyException, MalformedURLException, URISyntaxException {
+ UriFilter filter = new IELocalByPassFilter();
+ assertTrue(filter.accept(TestUtil.LOCAL_TEST_URI));
+ assertFalse(filter.accept(TestUtil.HTTP_TEST_URI));
+ assertFalse(filter.accept(new URL("http://123.45.55.6").toURI()));
+ }
+
+}
+
diff --git a/src/test/java/com/btr/proxy/search/desktop/DesktopProxySearchTest.java b/src/test/java/com/btr/proxy/search/desktop/DesktopProxySearchTest.java
new file mode 100644
index 0000000..0f8e6be
--- /dev/null
+++ b/src/test/java/com/btr/proxy/search/desktop/DesktopProxySearchTest.java
@@ -0,0 +1,45 @@
+package com.btr.proxy.search.desktop;
+
+import java.net.ProxySelector;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.junit.Test;
+
+import com.btr.proxy.search.ProxySearch;
+import com.btr.proxy.util.ProxyException;
+
+/*****************************************************************************
+ * Unit tests for the desktop facade search strategy.
+ *
+ * @author Bernd Rosstauscher (proxyvole@rosstauscher.de) Copyright 2009
+ ****************************************************************************/
+
+public class DesktopProxySearchTest {
+
+ /*************************************************************************
+ * Test method.
+ * @throws ProxyException on error.
+ ************************************************************************/
+ @Test
+ public void testDesktopStrategsIsWorking() throws ProxyException {
+ new DesktopProxySearchStrategy().getProxySelector();
+ }
+
+ /*************************************************************************
+ * Test method.
+ * @throws URISyntaxException on error parsing the URI.
+ * @throws ProxyException on selector error.
+ ************************************************************************/
+ @Test
+ public void emptyURIShouldNotRaiseNPE() throws URISyntaxException, ProxyException {
+ ProxySearch proxySearch = ProxySearch.getDefaultProxySearch();
+ ProxySelector myProxySelector = proxySearch.getProxySelector();
+ if (myProxySelector != null) {
+ myProxySelector.select(new URI(""));
+ }
+ }
+
+
+}
+
diff --git a/src/test/java/com/btr/proxy/search/desktop/win/DLLManagerTest.java b/src/test/java/com/btr/proxy/search/desktop/win/DLLManagerTest.java
new file mode 100644
index 0000000..0711a8c
--- /dev/null
+++ b/src/test/java/com/btr/proxy/search/desktop/win/DLLManagerTest.java
@@ -0,0 +1,78 @@
+package com.btr.proxy.search.desktop.win;
+
+import static org.junit.Assert.*;
+
+import java.io.File;
+import java.io.IOException;
+import org.junit.AfterClass;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import com.btr.proxy.TestUtil;
+
+/*****************************************************************************
+ * Unit tests for DLL loading code.
+ * @author Bernd Rosstauscher (proxyvole@rosstauscher.de) Copyright 2009
+ ****************************************************************************/
+
+@Ignore
+public class DLLManagerTest {
+
+ /*************************************************************************
+ * Reset system property at the end.
+ ************************************************************************/
+ @AfterClass
+ public static void teardown() {
+ System.setProperty(DLLManager.LIB_DIR_OVERRIDE, "");
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws IOException on error
+ ************************************************************************/
+ @Test
+ public void testFindLibFileOverride() throws IOException {
+ String path = TestUtil.class.getResource("/").getFile() + File.separator+"data"+File.separator+"win";
+ System.setProperty(DLLManager.LIB_DIR_OVERRIDE, path);
+ File actual = DLLManager.findLibFile();
+ assertTrue(actual.getAbsolutePath().contains(path));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws IOException on error
+ ************************************************************************/
+ @Test
+ public void testFindLibFileDefault() throws IOException {
+ System.setProperty(DLLManager.LIB_DIR_OVERRIDE, "");
+ File actual = DLLManager.findLibFile();
+ assertTrue(actual.getAbsolutePath().contains("lib"+File.separator));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws IOException on error
+ ************************************************************************/
+ @Test
+ public void testCleanupTempFiles() throws IOException {
+ File f1 = File.createTempFile(DLLManager.TEMP_FILE_PREFIX+"_ABC", DLLManager.DLL_EXTENSION);
+ assertTrue(f1.exists());
+ DLLManager.cleanupTempFiles();
+ assertFalse(f1.exists());
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws IOException on error
+ ************************************************************************/
+// @Test
+// public void testFileCopy() throws IOException {
+// URL originalFile = DLLManagerTest.class.getResource("/lib/proxy_util_w32.dll");
+// File tempFile = File.createTempFile(DLLManager.TEMP_FILE_PREFIX, DLLManager.TEMP_FILE_PREFIX);
+// DLLManager.copy(originalFile.openStream(), new FileOutputStream(tempFile));
+// assertTrue(tempFile.exists() && tempFile.length() == originalFile.length());
+// tempFile.delete();
+// }
+
+}
+
diff --git a/src/test/java/com/btr/proxy/search/gnome/GnomeProxySearchTest.java b/src/test/java/com/btr/proxy/search/gnome/GnomeProxySearchTest.java
new file mode 100644
index 0000000..875e2d5
--- /dev/null
+++ b/src/test/java/com/btr/proxy/search/gnome/GnomeProxySearchTest.java
@@ -0,0 +1,117 @@
+package com.btr.proxy.search.gnome;
+
+import static org.junit.Assert.assertEquals;
+
+import java.net.Proxy;
+import java.net.ProxySelector;
+import java.net.URISyntaxException;
+import java.util.List;
+
+import org.junit.Ignore;
+import org.junit.Test;
+
+import com.btr.proxy.TestUtil;
+import com.btr.proxy.search.desktop.gnome.GnomeProxySearchStrategy;
+import com.btr.proxy.util.ProxyException;
+
+
+/*****************************************************************************
+ * Unit tests for the Gnome settings search strategy.
+ * For every test the "user.home" system property is switched to the test/data
+ * folder where we provide some Gnome config files prepared for the test cases.
+ *
+ * @author Bernd Rosstauscher (proxyvole@rosstauscher.de) Copyright 2009
+ ****************************************************************************/
+@Ignore
+public class GnomeProxySearchTest {
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ ************************************************************************/
+ @Test
+ public void testNone() throws ProxyException {
+ TestUtil.setTestDataFolder("gnome_none");
+ ProxySelector ps = new GnomeProxySearchStrategy().getProxySelector();
+ List<Proxy> result = ps.select(TestUtil.HTTP_TEST_URI);
+
+ assertEquals(Proxy.NO_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testManualHttp() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("gnome_manual");
+
+ ProxySelector ps = new GnomeProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.HTTP_TEST_URI);
+ assertEquals(TestUtil.HTTP_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testManualHttps() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("gnome_manual");
+
+ ProxySelector ps = new GnomeProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.HTTPS_TEST_URI);
+ assertEquals(TestUtil.HTTPS_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testManualFtp() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("gnome_manual");
+
+ ProxySelector ps = new GnomeProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.FTP_TEST_URI);
+ assertEquals(TestUtil.FTP_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testPac() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("gnome_pac_script");
+
+ ProxySelector ps = new GnomeProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.HTTP_TEST_URI);
+ assertEquals(TestUtil.HTTP_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testWhiteList() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("gnome_white_list");
+
+ ProxySelector ps = new GnomeProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.NO_PROXY_TEST_URI);
+ assertEquals(Proxy.NO_PROXY, result.get(0));
+ }
+
+
+}
diff --git a/src/test/java/com/btr/proxy/search/java/JavaProxySearchTest.java b/src/test/java/com/btr/proxy/search/java/JavaProxySearchTest.java
new file mode 100644
index 0000000..cfc473a
--- /dev/null
+++ b/src/test/java/com/btr/proxy/search/java/JavaProxySearchTest.java
@@ -0,0 +1,137 @@
+package com.btr.proxy.search.java;
+
+import static org.junit.Assert.*;
+
+import java.net.Proxy;
+import java.net.ProxySelector;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.List;
+
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import com.btr.proxy.TestUtil;
+
+
+/*****************************************************************************
+ * Unit tests for the Java proxy search strategy.
+ * @author Bernd Rosstauscher (proxyvole@rosstauscher.de) Copyright 2009
+ ****************************************************************************/
+
+public class JavaProxySearchTest {
+
+ private ProxySelector selector;
+
+ /*************************************************************************
+ * Setup before the tests.
+ ************************************************************************/
+ @BeforeClass
+ public static void setupClass() {
+ System.setProperty("http.proxyHost", "http_proxy.unit-test.invalid");
+ System.setProperty("http.proxyPort", "8090");
+ System.setProperty("http.nonProxyHosts", "no_proxy.unit-test.invalid");
+ System.setProperty("https.proxyHost", "https_proxy.unit-test.invalid");
+ System.setProperty("https.proxyPort", "8091");
+ System.setProperty("ftp.proxyHost", "ftp_proxy.unit-test.invalid");
+ System.setProperty("ftp.nonProxyHosts", "no_proxy.unit-test.invalid");
+ System.setProperty("ftp.proxyPort", "8092");
+ System.setProperty("socksProxyHost", "socks_proxy.unit-test.invalid");
+ System.setProperty("socksProxyPort", "8095");
+ }
+
+ /*************************************************************************
+ * Setup before the tests.
+ ************************************************************************/
+ @AfterClass
+ public static void teardownClass() {
+ System.clearProperty("http.proxyHost");
+ System.clearProperty("http.proxyPort");
+ System.clearProperty("http.nonProxyHosts");
+ System.clearProperty("https.proxyHost");
+ System.clearProperty("https.proxyPort");
+ System.clearProperty("ftp.proxyHost");
+ System.clearProperty("ftp.nonProxyHosts");
+ System.clearProperty("ftp.proxyPort");
+ System.clearProperty("socksProxyHost");
+ System.clearProperty("socksProxyPort");
+ }
+
+ /*************************************************************************
+ * Setup before every single test
+ ************************************************************************/
+ @Before
+ public void setup() {
+ this.selector = new JavaProxySearchStrategy().getProxySelector();
+ }
+
+ /*************************************************************************
+ * Test method
+ ************************************************************************/
+ @Test
+ public void testHTTP() {
+ List<Proxy> result = this.selector.select(TestUtil.HTTP_TEST_URI);
+ assertEquals(TestUtil.HTTP_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws URISyntaxException on wrong URI.
+ ************************************************************************/
+ @Test
+ public void testHTTPnoProxy() throws URISyntaxException {
+ List<Proxy> result = this.selector.select(new URI("http://no_proxy.unit-test.invalid"));
+ assertEquals(Proxy.NO_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ ************************************************************************/
+ @Test
+ public void testHTTPS() {
+ List<Proxy> result = this.selector.select(TestUtil.HTTPS_TEST_URI);
+ assertEquals(TestUtil.HTTPS_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws URISyntaxException on wrong URI.
+ ************************************************************************/
+ @Test
+ public void testHTTPSnoProxy() throws URISyntaxException {
+ List<Proxy> result = this.selector.select(new URI("https://no_proxy.unit-test.invalid"));
+ assertEquals(Proxy.NO_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ ************************************************************************/
+ @Test
+ public void testFTP() {
+ List<Proxy> result = this.selector.select(TestUtil.FTP_TEST_URI);
+ assertEquals(TestUtil.FTP_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws URISyntaxException on wrong URI.
+ ************************************************************************/
+ @Test
+ public void testFTPnoProxy() throws URISyntaxException {
+ List<Proxy> result = this.selector.select(new URI("ftp://no_proxy.unit-test.invalid"));
+ assertEquals(Proxy.NO_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ ************************************************************************/
+ @Test
+ public void testSOCKS() {
+ List<Proxy> result = this.selector.select(TestUtil.SOCKS_TEST_URI);
+ assertEquals(TestUtil.SOCKS_TEST_PROXY, result.get(0));
+ }
+
+}
+
diff --git a/src/test/java/com/btr/proxy/search/kde/KdeProxySearchTest.java b/src/test/java/com/btr/proxy/search/kde/KdeProxySearchTest.java
new file mode 100644
index 0000000..d600aa2
--- /dev/null
+++ b/src/test/java/com/btr/proxy/search/kde/KdeProxySearchTest.java
@@ -0,0 +1,177 @@
+package com.btr.proxy.search.kde;
+
+import static org.junit.Assert.assertEquals;
+
+import java.net.Proxy;
+import java.net.ProxySelector;
+import java.net.URISyntaxException;
+import java.util.List;
+
+import org.junit.Ignore;
+import org.junit.Test;
+
+import com.btr.proxy.TestUtil;
+import com.btr.proxy.search.desktop.kde.KdeProxySearchStrategy;
+import com.btr.proxy.util.ProxyException;
+
+
+/*****************************************************************************
+ * Unit tests for the KDE settings search strategy.
+ * For every test the "user.home" system property is switched to the test/data
+ * folder where we provide some KDE config files prepared for the test cases.
+ *
+ * If the env tests fail you need to set the followingenvironment variables:
+ * <p>
+ * HTTP_PROXY = http://http_proxy.unit-test.invalid:8090 <br/>
+ * HTTPS_PROXY = http://https_proxy.unit-test.invalid:8091 <br/>
+ * FTP_PROXY = http://ftp_proxy.unit-test.invalid:8092 <br/>
+ * </p>
+ *
+ * @author Bernd Rosstauscher (proxyvole@rosstauscher.de) Copyright 2009
+ ****************************************************************************/
+@Ignore
+public class KdeProxySearchTest {
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ ************************************************************************/
+ @Test
+ public void testNone() throws ProxyException {
+ TestUtil.setTestDataFolder("kde_none");
+ ProxySelector ps = new KdeProxySearchStrategy().getProxySelector();
+ List<Proxy> result = ps.select(TestUtil.HTTP_TEST_URI);
+
+ assertEquals(Proxy.NO_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testManualHttp() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("kde_manual");
+
+ ProxySelector ps = new KdeProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.HTTP_TEST_URI);
+ assertEquals(TestUtil.HTTP_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testManualHttps() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("kde_manual");
+
+ ProxySelector ps = new KdeProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.HTTPS_TEST_URI);
+ assertEquals(TestUtil.HTTPS_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testManualFtp() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("kde_manual");
+
+ ProxySelector ps = new KdeProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.FTP_TEST_URI);
+ assertEquals(TestUtil.FTP_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testPac() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("kde_pac_script");
+
+ ProxySelector ps = new KdeProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.HTTP_TEST_URI);
+ assertEquals(TestUtil.HTTP_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ @Ignore
+ public void testEnvHttp() throws ProxyException, URISyntaxException {
+ // There is no good was to initialize environment variables in the running process.
+ //System.getenv().put("HTTP_PROXY", "http://http_proxy.unit-test.invalid:8090"); // Does not work
+ TestUtil.setTestDataFolder("kde_env");
+
+ ProxySelector ps = new KdeProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.HTTP_TEST_URI);
+ assertEquals(TestUtil.HTTP_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ @Ignore
+ public void testEnvHttps() throws ProxyException, URISyntaxException {
+ // There is no good was to initialize environment variables in the running process.
+ // System.getenv().put("HTTPS_PROXY", "http://http_proxy.unit-test.invalid:8090"); // Does not work
+ TestUtil.setTestDataFolder("kde_env");
+
+ ProxySelector ps = new KdeProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.HTTPS_TEST_URI);
+ assertEquals(TestUtil.HTTPS_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ @Ignore
+ public void testEnvFtp() throws ProxyException, URISyntaxException {
+ // there is no good was to initialize environment variables in the running process.
+ //System.getenv().put("FTP_PROXY", "http://http_proxy.unit-test.invalid:8090"); // Does not work
+ TestUtil.setTestDataFolder("kde_env");
+
+ ProxySelector ps = new KdeProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.FTP_TEST_URI);
+ assertEquals(TestUtil.FTP_TEST_PROXY, result.get(0));
+ }
+
+ /*************************************************************************
+ * Test method
+ * @throws ProxyException on proxy detection error.
+ * @throws URISyntaxException on invalid URL syntax.
+ ************************************************************************/
+ @Test
+ public void testWhiteList() throws ProxyException, URISyntaxException {
+ TestUtil.setTestDataFolder("kde_white_list");
+
+ ProxySelector ps = new KdeProxySearchStrategy().getProxySelector();
+
+ List<Proxy> result = ps.select(TestUtil.NO_PROXY_TEST_URI);
+ assertEquals(Proxy.NO_PROXY, result.get(0));
+ }
+
+}