aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util')
-rw-r--r--src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/HighDpiAwareApplicationTest.java24
-rw-r--r--src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/ScaledBounds.java34
2 files changed, 58 insertions, 0 deletions
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..c9816a1
--- /dev/null
+++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/HighDpiAwareApplicationTest.java
@@ -0,0 +1,24 @@
+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..02c15c4
--- /dev/null
+++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/ScaledBounds.java
@@ -0,0 +1,34 @@
+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());
+ }
+}