}
@Test
public void loadImage_background() {
ImageLoader imageLoader = new ImageLoader("ch/inftec/ju/fx/testImages");
final Image image = imageLoader.loadImage("1x1_black.png", true);
// Hopefully, loading is slow enough to not be complete before these assertions run
Assert.assertTrue(image.isBackgroundLoading());
Assert.assertEquals(0.0, image.getWidth());
Assert.assertEquals(0.0, image.getHeight());
image.progressProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
logger.info("Loading at: " + newValue);
if (newValue.doubleValue() == 1.0) {
logger.info("Loading complete");
Assert.assertEquals(1.0, image.getWidth());
Assert.assertEquals(1.0, image.getHeight());
}
}
});
// Wait for image to be loaded
do {
ThreadUtils.sleep(10);
} while (image.progressProperty().get() < 1.0);
Assert.assertEquals(1.0, image.progressProperty().get());
Assert.assertTrue(image.isBackgroundLoading()); // Stays true...
Assert.assertFalse(image.isError());
}