Skip to content

Commit 277fe15

Browse files
committed
Switch to HTML Unit for testing, headless and faster
1 parent 16af8de commit 277fe15

File tree

5 files changed

+38
-3
lines changed

5 files changed

+38
-3
lines changed

Diff for: bdd-security/config.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
<defaultDriver>firefox</defaultDriver>
1010
<defaultDriver path="drivers/chromedriver-mac">Chrome</defaultDriver>-->
1111

12-
<defaultDriver path="drivers/chromedriver-linux64">Chrome</defaultDriver>
13-
<!--<defaultDriver>firefox</defaultDriver>-->
12+
<!--<defaultDriver path="drivers/chromedriver-linux64">Chrome</defaultDriver>-->
13+
<defaultDriver>htmlunit</defaultDriver>
1414

1515
<!-- Base URL of the application to test -->
1616
<baseUrl>http://localhost/</baseUrl>

Diff for: bdd-security/src/main/java/net/continuumsecurity/web/drivers/DriverFactory.java

+12
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.openqa.selenium.WebDriver;
2525
import org.openqa.selenium.chrome.ChromeDriver;
2626
import org.openqa.selenium.chrome.ChromeOptions;
27+
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
2728
import org.openqa.selenium.firefox.FirefoxDriver;
2829
import org.openqa.selenium.firefox.FirefoxProfile;
2930
import org.openqa.selenium.firefox.internal.ProfilesIni;
@@ -35,6 +36,7 @@
3536
public class DriverFactory {
3637
private final static String CHROME = "chrome";
3738
private final static String FIREFOX = "firefox";
39+
private final static String HTMLUNIT = "htmlunit";
3840
private static DriverFactory dm;
3941
private static WebDriver driver;
4042
private static WebDriver proxyDriver;
@@ -101,12 +103,22 @@ private WebDriver findOrCreate(String type, boolean isProxyDriver) {
101103
private WebDriver createDriver(String type) {
102104
if (type.equalsIgnoreCase(CHROME)) return createChromeDriver(new DesiredCapabilities());
103105
else if (type.equalsIgnoreCase(FIREFOX)) return createFirefoxDriver(null);
106+
else if (type.equalsIgnoreCase(HTMLUNIT)) return createHtmlUnitWebDriver();
104107
throw new RuntimeException("Unsupported WebDriver browser: "+type);
105108
}
106109

110+
private WebDriver createHtmlUnitWebDriver() {
111+
HtmlUnitDriver htmlUnitDriver = new HtmlUnitDriver();
112+
htmlUnitDriver.setProxy(Config.getInstance().getProxyHost(), Config.getInstance().getProxyPort());
113+
htmlUnitDriver.setJavascriptEnabled(false);
114+
115+
return htmlUnitDriver;
116+
}
117+
107118
private WebDriver createProxyDriver(String type) {
108119
if (type.equalsIgnoreCase(CHROME)) return createChromeDriver(createProxyCapabilities());
109120
else if (type.equalsIgnoreCase(FIREFOX)) return createFirefoxDriver(createProxyCapabilities());
121+
else if (type.equalsIgnoreCase(HTMLUNIT)) return createHtmlUnitWebDriver();
110122
throw new RuntimeException("Unsupported WebDriver browser: "+type);
111123
}
112124

Diff for: misuse-tests/config.xml

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
<defaultDriver>firefox</defaultDriver>
77
<defaultDriver path="drivers/chromedriver-mac">Chrome</defaultDriver>-->
88

9-
<defaultDriver path="drivers/chromedriver-linux64">Chrome</defaultDriver>
9+
<!--<defaultDriver path="drivers/chromedriver-linux64">Chrome</defaultDriver>-->
1010
<!--<defaultDriver>firefox</defaultDriver>-->
11+
<defaultDriver>htmlunit</defaultDriver>
1112

1213
<!-- Base URL of the application to test -->
1314
<baseUrl>http://localhost/</baseUrl>

Diff for: misuse-tests/src/main/java/net/continuumsecurity/web/drivers/DriverFactory.java

+20
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
******************************************************************************/
1919
package net.continuumsecurity.web.drivers;
2020

21+
import com.gargoylesoftware.htmlunit.DefaultCredentialsProvider;
22+
import com.gargoylesoftware.htmlunit.ProxyConfig;
23+
import com.gargoylesoftware.htmlunit.WebClient;
2124
import net.continuumsecurity.Config;
2225
import org.apache.log4j.Logger;
2326
import org.openqa.selenium.Proxy;
@@ -27,14 +30,18 @@
2730
import org.openqa.selenium.firefox.FirefoxDriver;
2831
import org.openqa.selenium.firefox.FirefoxProfile;
2932
import org.openqa.selenium.firefox.internal.ProfilesIni;
33+
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
3034
import org.openqa.selenium.remote.CapabilityType;
3135
import org.openqa.selenium.remote.DesiredCapabilities;
3236

3337
import java.io.File;
38+
import java.io.IOException;
3439

3540
public class DriverFactory {
3641
private final static String CHROME = "chrome";
3742
private final static String FIREFOX = "firefox";
43+
private final static String HTMLUNIT = "htmlunit";
44+
private final static String PHANTOMJS = "phantomjs";
3845
private static DriverFactory dm;
3946
private static WebDriver driver;
4047
private static WebDriver proxyDriver;
@@ -101,9 +108,22 @@ private WebDriver findOrCreate(String type, boolean isProxyDriver) {
101108
private WebDriver createDriver(String type) {
102109
if (type.equalsIgnoreCase(CHROME)) return createChromeDriver(new DesiredCapabilities());
103110
else if (type.equalsIgnoreCase(FIREFOX)) return createFirefoxDriver(null);
111+
else if (type.equalsIgnoreCase(HTMLUNIT)) return createHtmlUnitWebDriver();
112+
// else if (type.equalsIgnoreCase(PHANTOMJS)) try {
113+
// return new PhantomJSDriver(Config.getInstance().getDefaultDriverPath(), Config.getInstance().getProxyHost(), Config.getInstance().getProxyPort());
114+
// } catch (IOException e) {
115+
// throw new RuntimeException("Unsupported WebDriver browser: "+type);
116+
// }
104117
throw new RuntimeException("Unsupported WebDriver browser: "+type);
105118
}
106119

120+
private WebDriver createHtmlUnitWebDriver() {
121+
HtmlUnitDriver htmlUnitDriver = new HtmlUnitDriver();
122+
htmlUnitDriver.setProxy(Config.getInstance().getProxyHost(), Config.getInstance().getProxyPort());
123+
htmlUnitDriver.setJavascriptEnabled(false);
124+
125+
return htmlUnitDriver;
126+
}
107127
private WebDriver createProxyDriver(String type) {
108128
if (type.equalsIgnoreCase(CHROME)) return createChromeDriver(createProxyCapabilities());
109129
else if (type.equalsIgnoreCase(FIREFOX)) return createFirefoxDriver(createProxyCapabilities());

Diff for: misuse-tests/src/main/java/net/continuumsecurity/web/drivers/PhantomJSDriver.java

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package net.continuumsecurity.web.drivers;
22

3+
import org.openqa.selenium.WebDriver;
4+
35
import java.io.IOException;
46

57
public class PhantomJSDriver {

0 commit comments

Comments
 (0)