--- old/tests/system/src/test/java/test/javafx/scene/NewSceneSizeTest.java 2018-03-01 15:29:31.770722333 +0530 +++ new/tests/system/src/test/java/test/javafx/scene/NewSceneSizeTest.java 2018-03-01 15:29:31.390532333 +0530 @@ -41,11 +41,12 @@ import org.junit.Test; import static org.junit.Assert.fail; -import static org.junit.Assume.assumeTrue; public class NewSceneSizeTest { static CountDownLatch startupLatch; - static volatile Stage stage; + static volatile Stage primaryStage; + + private static double scaleX, scaleY; public static void main(String[] args) throws Exception { initFX(); @@ -62,12 +63,16 @@ public static class TestApp extends Application { @Override - public void start(Stage primaryStage) throws Exception { - primaryStage.setScene(new Scene(new VBox())); - stage = primaryStage; - stage.addEventHandler(WindowEvent.WINDOW_SHOWN, e -> - Platform.runLater(startupLatch::countDown)); - stage.show(); + public void start(Stage stage) throws Exception { + stage.setScene(new Scene(new VBox())); + primaryStage = stage; + primaryStage.addEventHandler(WindowEvent.WINDOW_SHOWN, e -> { + scaleX = primaryStage.getOutputScaleX​(); + scaleY = primaryStage.getOutputScaleY(); + + Platform.runLater(startupLatch::countDown); + }); + primaryStage.show(); } } @@ -86,7 +91,6 @@ @Test public void testNewSceneSize() throws Exception { - assumeTrue(Boolean.getBoolean("unstable.test")); // JDK-8193185 Thread.sleep(200); final int nTries = 100; Stage childStage[] = new Stage[nTries]; @@ -106,8 +110,10 @@ stage.setResizable(fI % 2 == 0); Scene scene = new Scene(new VBox(), 300 - fI, 200 - fI); stage.setScene(scene); - w[fI] = stage.getScene().getWidth(); - h[fI] = stage.getScene().getHeight(); + w[fI] = (Math.ceil((300 - fI) * scaleX)) + / scaleX; + h[fI] = (Math.ceil((200 - fI) * scaleY)) + / scaleY; Assert.assertTrue(w[fI] > 1); Assert.assertTrue(h[fI] > 1); stage.widthProperty().addListener(listenerW = (v, o, n) -> { @@ -130,15 +136,15 @@ Thread.sleep(200); for (int i = 0; i < nTries; i++) { Assert.assertEquals("Wrong scene " + i + " width", w[i], - childStage[i].getScene().getWidth()); + childStage[i].getScene().getWidth(), 0.1); Assert.assertEquals("Wrong scene " + i + " height", h[i], - childStage[i].getScene().getHeight()); + childStage[i].getScene().getHeight(), 0.1); } } @AfterClass public static void teardown() { - Platform.runLater(stage::hide); + Platform.runLater(primaryStage::hide); Platform.exit(); } } --- old/tests/system/src/test/java/test/javafx/scene/RestoreSceneSizeTest.java 2018-03-01 15:29:32.623148333 +0530 +++ new/tests/system/src/test/java/test/javafx/scene/RestoreSceneSizeTest.java 2018-03-01 15:29:32.138906332 +0530 @@ -46,8 +46,11 @@ public class RestoreSceneSizeTest { static CountDownLatch startupLatch; static Stage stage; - static double w; - static double h; + static double w, h; + + private static final int WIDTH = 234; + private static final int HEIGHT = 255; + private static double scaleX, scaleY; public static void main(String[] args) throws Exception { initFX(); @@ -65,13 +68,15 @@ @Override public void start(Stage primaryStage) throws Exception { - primaryStage.setScene(new Scene(new VBox(), 234, 255)); + primaryStage.setScene(new Scene(new VBox(), WIDTH, HEIGHT)); stage = primaryStage; - w = stage.getScene().getWidth(); - h = stage.getScene().getHeight(); stage.setFullScreen(true); - stage.addEventHandler(WindowEvent.WINDOW_SHOWN, e -> - Platform.runLater(startupLatch::countDown)); + stage.addEventHandler(WindowEvent.WINDOW_SHOWN, e -> { + scaleX = stage.getOutputScaleX​(); + scaleY = stage.getOutputScaleY(); + + Platform.runLater(startupLatch::countDown); + }); stage.show(); } } @@ -91,11 +96,12 @@ @Test public void testUnfullscreenSize() throws Exception { - assumeTrue(Boolean.getBoolean("unstable.test")); // JDK-8193185 // Disable on Mac until JDK-8176813 is fixed assumeTrue(!PlatformUtil.isMac()); Thread.sleep(200); + w = (Math.ceil(WIDTH * scaleX)) / scaleX; + h = (Math.ceil(HEIGHT * scaleY)) / scaleY; Assert.assertTrue(stage.isShowing()); Assert.assertTrue(stage.isFullScreen());