*/
package jalview.io.cache;
+import java.lang.reflect.InvocationTargetException;
import java.util.LinkedHashSet;
+import javax.swing.SwingUtilities;
+
import org.junit.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
appCache = AppCache.getInstance();
}
- @Test(groups = { "Functional" })
+ @Test(groups = { "Functional", "testTask2" })
public void getUserInputTest()
{
String userInput = cacheBox.getUserInput();
cacheBox.addItem(testInput);
cacheBox.setSelectedItem(testInput);
- /*
try
{
+ // fix for JAL-4153
+ // This delay is essential to prevent the assertion below from executing
+ // before swing thread finishes updating the combo-box
SwingUtilities.invokeAndWait(() -> {
- */
- try
- {
- // This delay is essential to prevent the
- // assertion below from executing before
- // swing thread finishes updating the combo-box
- Thread.sleep(10);
- } catch (InterruptedException e)
+ try
+ {
+ Thread.sleep(1);
+ } catch (InterruptedException e)
+ {
+ e.printStackTrace();
+ }
+ });
+ } catch (InvocationTargetException | InterruptedException e)
{
e.printStackTrace();
}
- ; /*
- });
- } catch (InvocationTargetException | InterruptedException e)
- {
- e.printStackTrace();
- }
- */
userInput = cacheBox.getUserInput();
Assert.assertEquals(testInput, userInput);
}
cacheBox.addItem(testInput);
cacheBox.setSelectedItem(testInput);
cacheBox.updateCache();
-
- /*
- try
- {
- SwingUtilities.invokeAndWait(() -> {
- */
- try
+ boolean done[]=new boolean[] { false };
+ // this event gets processed after updateCache's update event on the swing
+ // thread
+ SwingUtilities.invokeLater(() -> {
+ done[0]=true;
+ });
+ long t=0;
+ while (!done[0] && t<200)
{
- // This delay is to let
- // cacheBox.updateCache() finish updating the cache
- Thread.sleep(1);
- } catch (InterruptedException e)
+ try {
+ Thread.sleep(7);
+ t++;
+ } catch (InterruptedException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ if (!done[0])
{
- e.printStackTrace();
+ Assert.fail("Giving up after 1.4s waiting for cache to be updated.");
}
- ; /*
- });
- } catch (InvocationTargetException | InterruptedException e)
- {
- e.printStackTrace();
- }
- */
+
LinkedHashSet<String> foundCache = appCache
.getAllCachedItemsFor(TEST_CACHE_KEY);
Assert.assertTrue(foundCache.contains(testInput));