[gui-test] find action button again if ActionToolBar was reinitialised

This commit is contained in:
Sergey Karashevich
2018-08-09 12:26:34 +03:00
parent 4874fa34fa
commit 2ea3b55489
3 changed files with 21 additions and 14 deletions
@@ -3,12 +3,14 @@ package com.intellij.testGuiFramework.tests.community.focus
import com.intellij.openapi.keymap.impl.ui.ShortcutTextField
import com.intellij.testGuiFramework.fixtures.IdeFrameFixture
import com.intellij.testGuiFramework.framework.Timeouts
import com.intellij.testGuiFramework.impl.*
import com.intellij.testGuiFramework.launcher.system.SystemInfo
import com.intellij.testGuiFramework.tests.community.CommunityProjectCreator
import com.intellij.testGuiFramework.util.Key.*
import com.intellij.testGuiFramework.util.Modifier.*
import com.intellij.testGuiFramework.util.plus
import org.fest.swing.exception.WaitTimedOutError
import org.fest.swing.fixture.JTextComponentFixture
import org.fest.swing.timing.Pause
import org.junit.Assert
@@ -34,16 +36,21 @@ class KeyMapSettingsTestFocusTest : GuiTestCase() {
val settingsTitle = if (SystemInfo.isMac()) "Preferences" else "Settings"
dialog(settingsTitle){
jTree("Keymap").clickPath("Keymap")
actionButton("Find Actions by Shortcut").waitEnabledAndShowing().click()
val keyboardShortcutPanel = checkbox("Second stroke").target().parent
val keyMapTextField = shortcutTextField(keyboardShortcutPanel)
keyMapTextField.click()
shortcut(CONTROL + N)
Pause.pause(500)
shortcut(B)
Assert.assertEquals("B", keyMapTextField.target().text)
shortcut(ESCAPE)
shortcut(ESCAPE) //close keymap popup
val actionButton = actionButton("Find Actions by Shortcut")
try {
actionButton.waitEnabledAndShowing(Timeouts.seconds10).click()
} catch (e: WaitTimedOutError) {
actionButton("Find Actions by Shortcut").click() // in case of ActionToolBar was reinitialised
}
val keyboardShortcutPanel = checkbox("Second stroke").target().parent
val keyMapTextField = shortcutTextField(keyboardShortcutPanel)
keyMapTextField.click()
shortcut(CONTROL + N)
Pause.pause(500)
shortcut(B)
Assert.assertEquals("B", keyMapTextField.target().text)
shortcut(ESCAPE)
shortcut(ESCAPE) //close keymap popup
Pause.pause(500)
button("Cancel").click()
}
@@ -105,7 +105,7 @@ public class ActionButtonFixture extends JComponentFixture<ActionButtonFixture,
return findByActionId(actionId, robot, container, Timeouts.INSTANCE.getMinutes02());
}
public ActionButtonFixture waitEnabledAndShowing() {
public ActionButtonFixture waitEnabledAndShowing(Timeout timeout) {
Pause.pause(new Condition("wait for action to be enabled and showing") {
@Override
public boolean test() {
@@ -117,7 +117,7 @@ public class ActionButtonFixture extends JComponentFixture<ActionButtonFixture,
}
});
}
}, Timeouts.INSTANCE.getSeconds30());
}, timeout);
return this;
}
@@ -64,8 +64,8 @@ import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.io.File;
import java.util.List;
import java.util.*;
import java.util.List;
import java.util.concurrent.TimeUnit;
import static com.intellij.openapi.util.io.FileUtil.getRelativePath;
@@ -469,7 +469,7 @@ public class IdeFrameFixture extends ComponentFixture<IdeFrameFixture, IdeFrameI
}, Timeouts.INSTANCE.getMinutes02());
waitForBackgroundTasksToFinish();
findGradleSyncAction().waitEnabledAndShowing();
findGradleSyncAction().waitEnabledAndShowing(Timeouts.INSTANCE.getMinutes01());
// TODO figure out why in IDEA 15 even though an action is enabled, visible and showing, clicking it (via UI testing infrastructure)
// does not work consistently