Skip to content

Commit 0202439

Browse files
author
Mike Reiche
authored
Merge pull request #115 from telekom/bugfix/window-size
Renamed property tt.display.resolution to tt.window.size.
2 parents 105455e + 6894ae4 commit 0202439

File tree

9 files changed

+70
-74
lines changed

9 files changed

+70
-74
lines changed

core-interop/src/main/java/eu/tsystems/mms/tic/testframework/constants/TesterraProperties.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,9 @@ private TesterraProperties() {
205205
public static final String FAILURE_CORRIDOR_ALLOWED_FAILED_TESTS_MID = "tt.failure.corridor.allowed.failed.tests.mid";
206206
public static final String FAILURE_CORRIDOR_ALLOWED_FAILED_TESTS_LOW = "tt.failure.corridor.allowed.failed.tests.low";
207207

208+
@Deprecated
208209
public static final String DISPLAY_RESOLUTION = "tt.display.resolution";
210+
public static final String WINDOW_SIZE="tt.window.size";
209211

210212
public static final String PAGE_FACTORY_LOOPS = "tt.page.factory.loops";
211213
public static final String EXECUTION_OMIT_IN_DEVELOPMENT = "tt.execution.omit.indevelopment";

core/src/main/java/eu/tsystems/mms/tic/testframework/internal/Defaults.java

Lines changed: 0 additions & 49 deletions
This file was deleted.

docs/src/docs/properties/property-attributes.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
:browser_maximize: tt.browser.maximize
1717
:browser_maximize_position: tt.browser.maximize.position
1818
:display_resolution: tt.display.resolution
19+
:window_size: tt.window.size
1920
:wdm_closewindows_aftertestmethods: tt.wdm.closewindows.aftertestmethods
2021
:wdm_closewindows_onfailure: tt.wdm.closewindows.onfailure
2122
:wdm_timeouts_window_switch: tt.wdm.timeouts.seconds.window.switch.duration

docs/src/docs/properties/webdriver-props.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ This setting overrides the following two properties.
3131
| {selenium_server_port} | 4444 | The port of the remote Selenium server.
3232
| {browser_maximize} | false | Try to maximize the browser window.
3333
| {browser_maximize_position} | self | Screen position for the window to maximize. If you have several screens and want to maximize the window on another screen than your default screen, you can choose between (left, right, top or bottom)
34-
| {display_resolution} | 1920x1200 | Fall-back resolution, if maximize does not work. +
35-
For custom window browser size use `driver.manage().window().setSize(new Dimensions(x, y))`
34+
| {window_size} | 1920x1080 | Default window size for all new sessions (when {browser_maximize} is `false`).
35+
| {display_resolution} | 1920x1080 | Deprecated by {window_size}
3636
| {wdm_closewindows_aftertestmethods} | true | If true, after every test method all open browser windows are closed.
3737
| {wdm_closewindows_onfailure} | true | If true, after failed test methods all open browser windows are closed
3838
| {wdm_timeouts_window_switch} | 5 | Maximum duration to wait for on a `WebDriverUtils.findWindowAndSwitchTo()` in seconds.

driver-ui-desktop/src/main/java/eu/tsystems/mms/tic/testframework/webdrivermanager/DesktopWebDriverFactory.java

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import eu.tsystems.mms.tic.testframework.enums.Position;
3232
import eu.tsystems.mms.tic.testframework.exceptions.SetupException;
3333
import eu.tsystems.mms.tic.testframework.exceptions.SystemException;
34-
import eu.tsystems.mms.tic.testframework.internal.Defaults;
3534
import eu.tsystems.mms.tic.testframework.internal.Flags;
3635
import eu.tsystems.mms.tic.testframework.internal.StopWatch;
3736
import eu.tsystems.mms.tic.testframework.internal.utils.DriverStorage;
@@ -224,10 +223,10 @@ public void setupSession(EventFiringWebDriver eventFiringWebDriver, DesktopWebDr
224223
}
225224
} catch (Throwable t1) {
226225
log().error("Could not maximize window", t1);
227-
setWindowSizeBasedOnDisplayResolution(window, browser);
226+
setWindowSizeBasedOnDisplayResolution(window, request);
228227
}
229228
} else {
230-
setWindowSizeBasedOnDisplayResolution(window, browser);
229+
setWindowSizeBasedOnDisplayResolution(window, request);
231230
}
232231

233232
if (!Browsers.safari.equalsIgnoreCase(browser)) {
@@ -248,33 +247,28 @@ public void setupSession(EventFiringWebDriver eventFiringWebDriver, DesktopWebDr
248247
}
249248
}
250249

251-
private void setWindowSizeBasedOnDisplayResolution(WebDriver.Window window, String browser) {
252-
log().debug("Trying to set window size to: " + Defaults.DISPLAY_RESOLUTION);
253-
String[] split = Defaults.DISPLAY_RESOLUTION.split("x");
254-
int width = Integer.parseInt(split[0]);
255-
int height = Integer.parseInt(split[1]);
250+
private void setWindowSize(WebDriver.Window window, Dimension dimension) {
251+
window.setPosition(new Point(0, 0));
252+
window.setSize(dimension);
253+
}
254+
255+
private void setWindowSizeBasedOnDisplayResolution(WebDriver.Window window, DesktopWebDriverRequest request) {
256+
Dimension dimension = request.getWindowSize();
257+
256258
try {
257-
window.setSize(new Dimension(width, height));
258-
} catch (Throwable t2) {
259-
log().error("Could not set window size", t2);
259+
setWindowSize(window, dimension);
260+
} catch (Throwable t) {
261+
log().error("Could not set window size", t);
260262

261-
if (Browsers.edge.equals(browser)) {
262-
log().debug("Edge Browser was requested, trying a second workaround");
263+
if (Browsers.edge.equals(request.getBrowser())) {
264+
log().debug("Edge Browser was requested, trying workaround");
263265

264266
Timer timer = new Timer(500, 5000);
265267
ThrowablePackedResponse<Object> response = timer.executeSequence(new Timer.Sequence<Object>() {
266268
@Override
267269
public void run() throws Throwable {
268270
setSkipThrowingException(true);
269-
log().debug("Trying setPosition() and setSize()");
270-
try {
271-
window.setPosition(new Point(0, 0));
272-
window.setSize(new Dimension(width, height));
273-
log().debug("Yup, success!");
274-
} catch (Exception e) {
275-
log().warn("Nope. Got error: " + e.getMessage());
276-
throw e;
277-
}
271+
setWindowSize(window, dimension);
278272
}
279273
});
280274

driver-ui-desktop/src/main/java/eu/tsystems/mms/tic/testframework/webdrivermanager/DesktopWebDriverRequest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@
3030
import java.net.MalformedURLException;
3131
import java.net.URL;
3232
import java.util.Optional;
33+
import java.util.regex.Matcher;
34+
import java.util.regex.Pattern;
35+
import org.openqa.selenium.Dimension;
3336

3437
public class DesktopWebDriverRequest extends AbstractWebDriverRequest implements Loggable, Serializable {
3538

@@ -73,4 +76,25 @@ public DesktopWebDriverRequest setWebDriverMode(WebDriverMode webDriverMode) {
7376
public Optional<URL> getServerUrl() {
7477
return Optional.ofNullable(this.getSeleniumServerUrl());
7578
}
79+
80+
public Dimension getWindowSize() {
81+
int width = 1920;
82+
int height = 1080;
83+
84+
String windowSizeProperty = PropertyManager.getProperty(TesterraProperties.WINDOW_SIZE, PropertyManager.getProperty(TesterraProperties.DISPLAY_RESOLUTION));
85+
86+
if (windowSizeProperty != null) {
87+
Pattern pattern = Pattern.compile("(\\d+)x(\\d+)");
88+
Matcher matcher = pattern.matcher(windowSizeProperty);
89+
90+
if (matcher.find()) {
91+
width = Integer.parseInt(matcher.group(1));
92+
height = Integer.parseInt(matcher.group(2));
93+
} else {
94+
log().error(String.format("Unable to parse property %s=%s, falling back to default", TesterraProperties.WINDOW_SIZE, windowSizeProperty));
95+
}
96+
}
97+
98+
return new Dimension(width, height);
99+
}
76100
}

integration-tests/src/test/java/eu/tsystems/mms/tic/testframework/test/layoutcheck/LayoutCheckTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,16 @@
2222
package eu.tsystems.mms.tic.testframework.test.layoutcheck;
2323

2424
import eu.tsystems.mms.tic.testframework.AbstractTestSitesTest;
25+
import eu.tsystems.mms.tic.testframework.common.PropertyManager;
26+
import eu.tsystems.mms.tic.testframework.constants.TesterraProperties;
2527
import eu.tsystems.mms.tic.testframework.core.testpage.TestPage;
2628
import eu.tsystems.mms.tic.testframework.exceptions.TimeoutException;
2729
import eu.tsystems.mms.tic.testframework.layout.LayoutCheck;
2830
import eu.tsystems.mms.tic.testframework.pageobjects.GuiElement;
2931
import eu.tsystems.mms.tic.testframework.pageobjects.Locate;
3032
import eu.tsystems.mms.tic.testframework.webdrivermanager.WebDriverManager;
33+
import org.openqa.selenium.Dimension;
34+
import org.openqa.selenium.WebDriver;
3135
import org.testng.Assert;
3236
import org.testng.annotations.Test;
3337

integration-tests/src/test/java/eu/tsystems/mms/tic/testframework/test/webdrivermanager/WebDriverManagerTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import eu.tsystems.mms.tic.testframework.webdrivermanager.DesktopWebDriverRequest;
3131
import eu.tsystems.mms.tic.testframework.webdrivermanager.WebDriverManager;
3232
import eu.tsystems.mms.tic.testframework.webdrivermanager.WebDriverSessionsManager;
33+
import org.openqa.selenium.Dimension;
3334
import org.openqa.selenium.WebDriver;
3435
import org.openqa.selenium.chrome.ChromeDriver;
3536
import org.openqa.selenium.chrome.ChromeOptions;
@@ -167,4 +168,23 @@ public void testT06_clonedWebDriverRequest() {
167168
clonedCaps.setCapability(capKey, "newValue");
168169
Assert.assertNotEquals(clonedCaps.getCapability(capKey), baseCaps.getCapability(capKey));
169170
}
171+
172+
@Test
173+
public void test_WindowSize() {
174+
assertNewWebDriverWindowSize(new Dimension(800, 600));
175+
PropertyManager.getThreadLocalProperties().setProperty(TesterraProperties.WINDOW_SIZE, "katze");
176+
assertNewWebDriverWindowSize(new Dimension(1920, 1080));
177+
PropertyManager.getThreadLocalProperties().setProperty(TesterraProperties.WINDOW_SIZE, "1024x768");
178+
assertNewWebDriverWindowSize(new Dimension(1024, 768));
179+
180+
PropertyManager.clearThreadlocalProperties();
181+
}
182+
183+
private void assertNewWebDriverWindowSize(Dimension expected) {
184+
WebDriver webDriver = WebDriverManager.getWebDriver();
185+
Dimension size = webDriver.manage().window().getSize();
186+
Assert.assertEquals(size.getWidth(), expected.getWidth());
187+
Assert.assertEquals(size.getHeight(), expected.getHeight());
188+
WebDriverManager.shutdown();
189+
}
170190
}

integration-tests/src/test/resources/test.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ tt.browser=chromeHeadless
33
#tt.browser=chrome
44
#tt.browser=firefox
55
tt.browser.maximize=false
6-
tt.display.resolution=800x600
6+
tt.window.size=800x600
77

88
tt.element.timeout.seconds=5
99
tt.screencaster.active=false

0 commit comments

Comments
 (0)