appCache = AppCache.getInstance();
}
- @Test(groups = { "Functional" })
+ @Test(groups = { "Functional", "testTask2" })
public void getUserInputTest()
{
String userInput = cacheBox.getUserInput();
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(1);
} catch (InterruptedException e)
{
cacheBox.addItem(testInput);
cacheBox.setSelectedItem(testInput);
cacheBox.updateCache();
-
- 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)
{
- SwingUtilities.invokeAndWait(() -> {
- try
- {
- // This delay is to let
- // cacheBox.updateCache() finish updating the cache
- Thread.sleep(1);
+ try {
+ Thread.sleep(7);
+ t++;
} catch (InterruptedException e)
{
e.printStackTrace();
}
- });
- } catch (InvocationTargetException | InterruptedException e)
+ }
+ if (!done[0])
{
- e.printStackTrace();
+ Assert.fail("Giving up after 1.4s waiting for cache to be updated.");
}
+
LinkedHashSet<String> foundCache = appCache
.getAllCachedItemsFor(TEST_CACHE_KEY);
Assert.assertTrue(foundCache.contains(testInput));