aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2018-05-11 15:49:43 +0200
committerTharre <tharre3@gmail.com>2018-05-11 15:49:43 +0200
commitf7d14a76123911f0bced08356a0c69e61147cb1b (patch)
treea75b0baa891453a14046c78503603d21986126c5 /src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util
parentacd6b64e494192f7c73032240029bfa53dccb362 (diff)
parent5298356db60cd971fed686d379130102843db819 (diff)
downloadsepm-groupproject-f7d14a76123911f0bced08356a0c69e61147cb1b.tar.gz
sepm-groupproject-f7d14a76123911f0bced08356a0c69e61147cb1b.tar.xz
sepm-groupproject-f7d14a76123911f0bced08356a0c69e61147cb1b.zip
Merge branch 'develop'
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/Helper.java28
-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
3 files changed, 86 insertions, 0 deletions
diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/Helper.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/Helper.java
new file mode 100644
index 0000000..b808206
--- /dev/null
+++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/Helper.java
@@ -0,0 +1,28 @@
+package at.ac.tuwien.sepm.assignment.groupphase.util;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import javafx.stage.Modality;
+import javafx.stage.Stage;
+import javafx.stage.Window;
+import org.testfx.api.FxRobotContext;
+
+public class Helper {
+
+ public static Stage getTopModalStage(FxRobotContext robotContext) {
+
+ List<Window> allWindows = new ArrayList<>(robotContext.getWindowFinder().listWindows());
+ Collections.reverse(allWindows);
+ return (Stage)
+ allWindows
+ .stream()
+ .filter(window -> window instanceof Stage)
+ .filter(
+ window ->
+ ((Stage) window).getModality()
+ == Modality.APPLICATION_MODAL)
+ .findFirst()
+ .orElse(null);
+ }
+}
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());
+ }
+}