Skip to content

Commit f5e4b79

Browse files
committed
bring handling of UnknownHostException in sync with the WebDriver for real browsers
1 parent f11c4af commit f5e4b79

File tree

2 files changed

+71
-4
lines changed

2 files changed

+71
-4
lines changed

src/main/java/org/openqa/selenium/htmlunit/HtmlUnitDriver.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -641,10 +641,7 @@ protected void get(final URL fullUrl) {
641641
setCurrentWindow(getCurrentWindow().getWebWindow().getTopWindow());
642642
}
643643
catch (final UnknownHostException e) {
644-
final WebWindow currentTopWebWindow = getCurrentWindow().getWebWindow().getTopWindow();
645-
final UnexpectedPage unexpectedPage = new UnexpectedPage(new StringWebResponse("Unknown host", fullUrl),
646-
currentTopWebWindow);
647-
currentTopWebWindow.setEnclosedPage(unexpectedPage);
644+
throw new WebDriverException(e);
648645
}
649646
catch (final ConnectException e) {
650647
// This might be expected

src/test/java/org/openqa/selenium/htmlunit/HtmlUnitDriver2Test.java

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@
1717

1818
package org.openqa.selenium.htmlunit;
1919

20+
import static org.junit.Assert.fail;
21+
2022
import java.math.BigInteger;
23+
import java.net.InetAddress;
2124
import java.util.HashMap;
2225
import java.util.Map;
2326

@@ -26,6 +29,7 @@
2629
import org.openqa.selenium.By;
2730
import org.openqa.selenium.JavascriptExecutor;
2831
import org.openqa.selenium.WebDriver;
32+
import org.openqa.selenium.WebDriverException;
2933
import org.openqa.selenium.WebElement;
3034
import org.openqa.selenium.htmlunit.junit.BrowserRunner;
3135
import org.openqa.selenium.htmlunit.junit.BrowserRunner.Alerts;
@@ -188,4 +192,70 @@ public void executeScriptParamWebElement() throws Exception {
188192
final String text = (String) ((JavascriptExecutor) webDriver).executeScript(js, webElement);
189193
assertEquals("<div id=\"myDivId\">diff</div>", text);
190194
}
195+
196+
@Test
197+
public void getNotExistingUrl() throws Exception {
198+
final WebDriver webDriver = getWebDriver();
199+
200+
try {
201+
webDriver.get("https://getnotexistingurl_" + System.currentTimeMillis() + ".ace");
202+
fail("WebDriverException expected");
203+
}
204+
catch (final WebDriverException e) {
205+
// expected
206+
if (webDriver instanceof HtmlUnitDriver) {
207+
assertTrue(e.getMessage(), e.getMessage().startsWith("java.net.UnknownHostException: No such host is known (getnotexistingurl_"));
208+
}
209+
}
210+
}
211+
212+
@Test
213+
@Alerts(DEFAULT = "Privacy error",
214+
FF = "self-signed.badssl.com",
215+
FF_ESR = "self-signed.badssl.com")
216+
@HtmlUnitNYI(CHROME = "self-signed.badssl.com",
217+
EDGE = "self-signed.badssl.com")
218+
public void getSslSelfSigned() throws Exception {
219+
final WebDriver webDriver = getWebDriver();
220+
221+
webDriver.get("https://self-signed.badssl.com");
222+
assertEquals(getExpectedAlerts()[0], webDriver.getTitle());
223+
assertEquals("https://self-signed.badssl.com/", webDriver.getCurrentUrl());
224+
}
225+
226+
@Test
227+
@Alerts(DEFAULT = "Privacy error",
228+
FF = "wrong.host.badssl.com",
229+
FF_ESR = "wrong.host.badssl.com")
230+
@HtmlUnitNYI(CHROME = "wrong.host.badssl.com",
231+
EDGE = "wrong.host.badssl.com")
232+
public void getSslWrongHost() throws Exception {
233+
final WebDriver webDriver = getWebDriver();
234+
235+
webDriver.get("https://wrong.host.badssl.com/");
236+
assertEquals(getExpectedAlerts()[0], webDriver.getTitle());
237+
assertEquals("https://wrong.host.badssl.com/", webDriver.getCurrentUrl());
238+
}
239+
240+
@Test
241+
@Alerts(DEFAULT = "revoked.badssl.com",
242+
FF = "WebDriverException",
243+
FF_ESR = "WebDriverException")
244+
@HtmlUnitNYI(FF = "revoked.badssl.com",
245+
FF_ESR = "revoked.badssl.com")
246+
public void getSslRevoked() throws Exception {
247+
final WebDriver webDriver = getWebDriver();
248+
249+
try {
250+
webDriver.get("https://revoked.badssl.com");
251+
if ("WebDriverException".equals(getExpectedAlerts()[0])) {
252+
fail("WebDriverException expected");
253+
}
254+
assertEquals(getExpectedAlerts()[0], webDriver.getTitle());
255+
assertEquals("https://revoked.badssl.com/", webDriver.getCurrentUrl());
256+
}
257+
catch (final WebDriverException e) {
258+
// expected
259+
}
260+
}
191261
}

0 commit comments

Comments
 (0)