aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDominic Rogetzer <e1627756@student.tuwien.ac.at>2018-05-02 17:34:31 +0200
committerDominic Rogetzer <e01627756@student.tuwien.ac.at>2018-05-03 22:48:31 +0200
commit047d7c9ec72db55f059f24e71df18bbc340b85a0 (patch)
treebf42a1755cc8490679c74aa0d08f3e229ccff58c /src
parentf6bff6fb96fbdf1bd7809221576bd6ab11426e5e (diff)
downloadsepm-groupproject-047d7c9ec72db55f059f24e71df18bbc340b85a0.tar.gz
sepm-groupproject-047d7c9ec72db55f059f24e71df18bbc340b85a0.tar.xz
sepm-groupproject-047d7c9ec72db55f059f24e71df18bbc340b85a0.zip
Add support for high-DPI aware GUI-tests (HighDpiAwareApplicationTest)
Diffstat (limited to 'src')
-rw-r--r--src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/CreateNewEmployeeControllerTest.java4
-rw-r--r--src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/HighDpiAwareApplicationTest.java23
-rw-r--r--src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/ScaledBounds.java33
3 files changed, 58 insertions, 2 deletions
diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/CreateNewEmployeeControllerTest.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/CreateNewEmployeeControllerTest.java
index 58f1394..53dc215 100644
--- a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/CreateNewEmployeeControllerTest.java
+++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/CreateNewEmployeeControllerTest.java
@@ -3,6 +3,7 @@ package at.ac.tuwien.sepm.assignment.groupphase.employee;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
+import at.ac.tuwien.sepm.assignment.groupphase.util.HighDpiAwareApplicationTest;
import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.EmployeeService;
import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidEmployeeException;
import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException;
@@ -19,10 +20,9 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.testfx.api.FxToolkit;
-import org.testfx.framework.junit.ApplicationTest;
import org.testfx.robot.Motion;
-public class CreateNewEmployeeControllerTest extends ApplicationTest {
+public class CreateNewEmployeeControllerTest extends HighDpiAwareApplicationTest {
@Before
public void setup() throws Exception {
diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/HighDpiAwareApplicationTest.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/HighDpiAwareApplicationTest.java
new file mode 100644
index 0000000..1a765d3
--- /dev/null
+++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/HighDpiAwareApplicationTest.java
@@ -0,0 +1,23 @@
+package at.ac.tuwien.sepm.assignment.groupphase.util;
+
+import javafx.geometry.Bounds;
+import javafx.scene.Node;
+import org.testfx.api.FxRobotContext;
+import org.testfx.framework.junit.ApplicationTest;
+import org.testfx.service.locator.impl.BoundsLocatorImpl;
+import org.testfx.service.locator.impl.PointLocatorImpl;
+
+public class HighDpiAwareApplicationTest extends ApplicationTest {
+
+ public HighDpiAwareApplicationTest() {
+ FxRobotContext context = robotContext();
+ context.setBoundsLocator(new BoundsLocatorImpl(){
+ @Override
+ public Bounds boundsOnScreenFor(Node node) {
+ Bounds bounds = super.boundsOnScreenFor(node);
+ return ScaledBounds.wrap(bounds);
+ }
+ });
+ robotContext().setPointLocator(new PointLocatorImpl(context.getBoundsLocator()));
+ }
+}
diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/ScaledBounds.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/ScaledBounds.java
new file mode 100644
index 0000000..78578d1
--- /dev/null
+++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/ScaledBounds.java
@@ -0,0 +1,33 @@
+package at.ac.tuwien.sepm.assignment.groupphase.util;
+
+import java.awt.GraphicsEnvironment;
+import javafx.geometry.BoundingBox;
+import javafx.geometry.Bounds;
+
+public class ScaledBounds extends BoundingBox {
+
+ private static final double scale;
+
+ static {
+ scale =
+ 1 / GraphicsEnvironment.getLocalGraphicsEnvironment()
+ .getDefaultScreenDevice()
+ .getDefaultConfiguration()
+ .getDefaultTransform()
+ .getScaleX();
+ }
+
+ public static ScaledBounds wrap(Bounds bounds) {
+ return new ScaledBounds(bounds);
+ }
+
+ private ScaledBounds(Bounds wrapped) {
+ super(
+ wrapped.getMinX() * scale,
+ wrapped.getMinY() * scale,
+ wrapped.getMinZ() * scale,
+ wrapped.getWidth() * scale,
+ wrapped.getHeight() * scale,
+ wrapped.getDepth());
+ }
+}