From 79bbd6538e91c5ce63215a2e04e767999ba645a1 Mon Sep 17 00:00:00 2001 From: Sergey Karashevich Date: Tue, 20 Feb 2018 22:41:35 +0300 Subject: [PATCH] [gui-test] add KeyMapSettingsTestFocusTest.kt to FocusIssuesSuite.kt --- .../tests/community/focus/FocusIssuesSuite.kt | 6 +- .../focus/KeyMapSettingsTestFocusTest.kt | 58 +++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 community-guitests/testSrc/com/intellij/testGuiFramework/tests/community/focus/KeyMapSettingsTestFocusTest.kt diff --git a/community-guitests/testSrc/com/intellij/testGuiFramework/tests/community/focus/FocusIssuesSuite.kt b/community-guitests/testSrc/com/intellij/testGuiFramework/tests/community/focus/FocusIssuesSuite.kt index ec1a070c40d9..a713dcba0a0f 100644 --- a/community-guitests/testSrc/com/intellij/testGuiFramework/tests/community/focus/FocusIssuesSuite.kt +++ b/community-guitests/testSrc/com/intellij/testGuiFramework/tests/community/focus/FocusIssuesSuite.kt @@ -12,5 +12,9 @@ import org.junit.runners.Suite @RunWith(GuiTestSuite::class) @RunWithIde(CommunityIde::class) @FirstStartWith(CommunityIdeFirstStart::class) -@Suite.SuiteClasses(TypeAheadTest::class, GoToClassFocusTest::class, GoToClassTwiceFocusTest::class, InlineVariableFocusTest::class) +@Suite.SuiteClasses(TypeAheadTest::class, + GoToClassFocusTest::class, + GoToClassTwiceFocusTest::class, + InlineVariableFocusTest::class, + KeyMapSettingsTestFocusTest::class) class FocusIssuesSuite \ No newline at end of file diff --git a/community-guitests/testSrc/com/intellij/testGuiFramework/tests/community/focus/KeyMapSettingsTestFocusTest.kt b/community-guitests/testSrc/com/intellij/testGuiFramework/tests/community/focus/KeyMapSettingsTestFocusTest.kt new file mode 100644 index 000000000000..b694b165d5fa --- /dev/null +++ b/community-guitests/testSrc/com/intellij/testGuiFramework/tests/community/focus/KeyMapSettingsTestFocusTest.kt @@ -0,0 +1,58 @@ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +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.impl.GuiTestCase +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.fixture.JTextComponentFixture +import org.fest.swing.timing.Pause +import org.junit.Assert +import org.junit.Test +import java.awt.Container + + +class KeyMapSettingsTestFocusTest : GuiTestCase() { + + @Test + fun testInlineVariableFocus() { + CommunityProjectCreator.createCommandLineProject() + Pause.pause(1000) + ideFrame { + waitForBackgroundTasksToFinish() + openSettingsKeymap() + } + + } + + private fun IdeFrameFixture.openSettingsKeymap() { + shortcut(CONTROL + ALT + S, META + COMMA) + val settingsTitle = if (SystemInfo.isMac()) "Preferences" else "Settings" + dialog(settingsTitle){ + jTree("Keymap").clickPath("Keymap") + actionButton("Find Actions by Shortcut").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 + Pause.pause(500) + button("Cancel").click() + } + } + + private fun IdeFrameFixture.shortcutTextField(parentContainer: Container): JTextComponentFixture { + val robot = robot() + val textField = robot.finder().find(parentContainer) { it is ShortcutTextField && it.isShowing && it.isVisible && it.isEnabled } as ShortcutTextField + return JTextComponentFixture(robot, textField) + } + +} \ No newline at end of file