From 817b3c0c094af6201cf2f32e95980e4e07a58ab0 Mon Sep 17 00:00:00 2001
From: Robert Scott <code@humanleg.org.uk>
Date: Sat, 11 Nov 2017 21:33:40 +0000
Subject: [PATCH 6/6] MinimapDialogTest: make use of Awaitility to replace
 calls to Thread.sleep()

this commit depends on awaitility-3.0.0.jar being present in test/lib/
---
 .../josm/gui/dialogs/MinimapDialogTest.java          | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/MinimapDialogTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/MinimapDialogTest.java
index 3635b3448..2fbb0a1fb 100644
--- a/test/unit/org/openstreetmap/josm/gui/dialogs/MinimapDialogTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/dialogs/MinimapDialogTest.java
@@ -6,6 +6,8 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
+
 import java.awt.Color;
 import java.awt.Component;
 import java.awt.Graphics2D;
@@ -14,6 +16,8 @@ import java.awt.image.BufferedImage;
 import javax.swing.JMenuItem;
 import javax.swing.JPopupMenu;
 
+import java.util.concurrent.Callable;
+
 import org.junit.Rule;
 import org.junit.Test;
 import org.openstreetmap.josm.Main;
@@ -24,6 +28,8 @@ import org.openstreetmap.josm.testutils.JOSMTestRules;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
+import org.awaitility.Awaitility;
+
 /**
  * Unit tests of {@link MinimapDialog} class.
  */
@@ -119,6 +125,10 @@ public class MinimapDialogTest {
         this.slippyMap.paintAll(g);
     }
 
+    protected Callable<Boolean> slippyMapTasksFinished() {
+        return () -> !this.slippyMap.getTileController().getTileLoader().hasOutstandingTasks();
+    }
+
     /**
      * Tests to switch imagery source.
      * @throws Exception if any error occurs
@@ -133,7 +143,7 @@ public class MinimapDialogTest {
         // an initial paint operation is required to trigger the tile fetches
         this.paintSlippyMap();
 
-        Thread.sleep(500);
+        Awaitility.await().atMost(1000, MILLISECONDS).until(this.slippyMapTasksFinished());
 
         this.paintSlippyMap();
 
@@ -146,7 +156,7 @@ public class MinimapDialogTest {
         // call paint to trigger new tile fetch
         this.paintSlippyMap();
 
-        Thread.sleep(500);
+        Awaitility.await().atMost(1000, MILLISECONDS).until(this.slippyMapTasksFinished());
 
         this.paintSlippyMap();
 
@@ -157,7 +167,7 @@ public class MinimapDialogTest {
         // call paint to trigger new tile fetch
         this.paintSlippyMap();
 
-        Thread.sleep(500);
+        Awaitility.await().atMost(1000, MILLISECONDS).until(this.slippyMapTasksFinished());
 
         this.paintSlippyMap();
 
@@ -181,7 +191,7 @@ public class MinimapDialogTest {
         // an initial paint operation is required to trigger the tile fetches
         this.paintSlippyMap();
 
-        Thread.sleep(500);
+        Awaitility.await().atMost(1000, MILLISECONDS).until(this.slippyMapTasksFinished());
 
         this.paintSlippyMap();
 
@@ -208,7 +218,7 @@ public class MinimapDialogTest {
         // an initial paint operation is required to trigger the tile fetches
         this.paintSlippyMap();
 
-        Thread.sleep(500);
+        Awaitility.await().atMost(1000, MILLISECONDS).until(this.slippyMapTasksFinished());
 
         this.paintSlippyMap();
 
-- 
2.11.0

