From 047d7c9ec72db55f059f24e71df18bbc340b85a0 Mon Sep 17 00:00:00 2001 From: Dominic Rogetzer Date: Wed, 2 May 2018 17:34:31 +0200 Subject: Add support for high-DPI aware GUI-tests (HighDpiAwareApplicationTest) --- .../util/HighDpiAwareApplicationTest.java | 23 +++++++++++++++ .../assignment/groupphase/util/ScaledBounds.java | 33 ++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/HighDpiAwareApplicationTest.java create mode 100644 src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util/ScaledBounds.java (limited to 'src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util') 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()); + } +} -- cgit v1.2.3-70-g09d2 From 8f741b60910ff19daa21ecce800a4f628c7057ab Mon Sep 17 00:00:00 2001 From: Dominic Rogetzer Date: Wed, 2 May 2018 21:59:48 +0200 Subject: Run maven fmt:format to reformat code --- .../controller/CreateNewEmployeeController.java | 5 ++--- .../groupphase/util/HighDpiAwareApplicationTest.java | 15 ++++++++------- .../sepm/assignment/groupphase/util/ScaledBounds.java | 11 ++++++----- 3 files changed, 16 insertions(+), 15 deletions(-) (limited to 'src/test/java/at/ac/tuwien/sepm/assignment/groupphase/util') diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java index d7f1a73..5906692 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/controller/CreateNewEmployeeController.java @@ -60,7 +60,7 @@ public class CreateNewEmployeeController { @FXML public void onCancelClicked() { - ((Stage)inputQualification.getScene().getWindow()).close(); + ((Stage) inputQualification.getScene().getWindow()).close(); } @FXML @@ -112,7 +112,6 @@ public class CreateNewEmployeeController { if (inputQualification.getSelectionModel().getSelectedItem() == null) { return EducationLevel.RS; } - return EducationLevel.valueOf( - inputQualification.getSelectionModel().getSelectedItem()); + return EducationLevel.valueOf(inputQualification.getSelectionModel().getSelectedItem()); } } 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 index 1a765d3..c9816a1 100644 --- 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 @@ -11,13 +11,14 @@ 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); - } - }); + 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 index 78578d1..02c15c4 100644 --- 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 @@ -10,11 +10,12 @@ public class ScaledBounds extends BoundingBox { static { scale = - 1 / GraphicsEnvironment.getLocalGraphicsEnvironment() - .getDefaultScreenDevice() - .getDefaultConfiguration() - .getDefaultTransform() - .getScaleX(); + 1 + / GraphicsEnvironment.getLocalGraphicsEnvironment() + .getDefaultScreenDevice() + .getDefaultConfiguration() + .getDefaultTransform() + .getScaleX(); } public static ScaledBounds wrap(Bounds bounds) { -- cgit v1.2.3-70-g09d2