Skip to content

Commit 6c832f3

Browse files
author
Vasyl Vavrychuk
committed
added test for web page url retrieval upon session reuse
Fixes MHA-879
1 parent dbd0b72 commit 6c832f3

File tree

2 files changed

+56
-16
lines changed

2 files changed

+56
-16
lines changed

java/client/test/org/openqa/selenium/qtwebkit/visualizer_tests/QtWebDriverJsPage.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,10 @@ public String getWebDriverJsWindowHandle() {
148148
return webDriverJsWindowHandle;
149149
}
150150

151+
public String getWebDriverUrlPort() {
152+
return webDriverUrlPort.getAttribute("value");
153+
}
154+
151155
public void setWebDriverUrl(String url) {
152156
driver.get(url + "/WebDriverJsDemo.html");
153157
waitFor(new Callable<Object>() {
@@ -178,6 +182,29 @@ public void setWebPage(String webPage) {
178182
webPageValue = webPage;
179183
}
180184

185+
public Callable<String> webPageIs(final String expectedWebPage) {
186+
return new Callable<String>() {
187+
private String actualWebPage;
188+
189+
@Override
190+
public String call() throws Exception {
191+
actualWebPage = getWebPage();
192+
193+
if (expectedWebPage.equals(actualWebPage)) {
194+
return actualWebPage;
195+
}
196+
197+
return null;
198+
}
199+
200+
@Override
201+
public String toString() {
202+
return "expected web page to be '" + expectedWebPage +
203+
"' while actual web page is '" + actualWebPage + "'";
204+
}
205+
};
206+
}
207+
181208
public void clickGet() {
182209
getButton.click();
183210
waitFor(pageUrlToBe(targetDriver, webPageValue));

java/client/test/org/openqa/selenium/qtwebkit/visualizer_tests/QtWebDriverJsTest.java

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
import org.junit.Test;
44
import org.openqa.selenium.*;
5+
import org.openqa.selenium.qtwebkit.QtWebDriverExecutor;
6+
import org.openqa.selenium.qtwebkit.QtWebKitDriver;
7+
import org.openqa.selenium.remote.DesiredCapabilities;
8+
import org.openqa.selenium.support.PageFactory;
59

610
import java.util.HashSet;
711
import java.util.Set;
@@ -20,6 +24,30 @@ private static <X> X waitFor(Callable<X> until) {
2024
return TestWaiter.waitFor(until, TIME_OUT, SECONDS);
2125
}
2226

27+
@Test
28+
public void checkWebPageUpdateOnSessionReuse() {
29+
page.setWebPage(pages.clicksPage);
30+
page.clickGet();
31+
32+
String webDriverUrlPort = page.getWebDriverUrlPort();
33+
WebDriver originalDriver = driver;
34+
try {
35+
QtWebDriverExecutor webDriverExecutor = QtWebKitDriver.createDefaultExecutor();
36+
driver = new QtWebKitDriver(webDriverExecutor, DesiredCapabilities.qtwebkit());
37+
page = PageFactory.initElements(driver, QtWebDriverJsPage.class);
38+
page.setDriver(driver);
39+
page.setTargetDriver(targetDriver);
40+
page.setWebDriverUrl(webDriverUrlPort);
41+
42+
driver.findElement(By.id("getButton")).click();
43+
44+
// shall retrieve web page url from previous session according to MHA-879
45+
waitFor(page.webPageIs(pages.clicksPage));
46+
} finally {
47+
originalDriver.quit();
48+
}
49+
}
50+
2351
@Test
2452
public void checkSourceScreenshotButtonsDisabling() {
2553
WebElement sourceButton = driver.findElement(By.id("sourceButton"));
@@ -236,22 +264,7 @@ public void canListAndChooseWindows() {
236264
waitFor(activeWindowToBe(targetDriver, expectedActiveWindow));
237265

238266
// Upon choose window, input field 'Web page' shall be update, MHA-879
239-
waitFor(new Callable<String>() {
240-
@Override
241-
public String call() throws Exception {
242-
if (pages.xhtmlTestPage.equals(page.getWebPage())) {
243-
return page.getWebPage();
244-
}
245-
246-
return null;
247-
}
248-
249-
@Override
250-
public String toString() {
251-
return "expected web page to be '" + pages.xhtmlTestPage +
252-
"' while actual web page is '" + page.getWebPage() + "'";
253-
}
254-
});
267+
waitFor(page.webPageIs(pages.xhtmlTestPage));
255268
}
256269

257270
@Test

0 commit comments

Comments
 (0)