From 44d451bbb2aa98fe95e6dfeb89c26c56be11dee4 Mon Sep 17 00:00:00 2001 From: Artem Gainanov Date: Sat, 7 Oct 2017 13:04:32 +0700 Subject: [PATCH] [gui-test] Check WEbStorm plugins id IDEA ultimate tests --- .../remote/server/JUnitServerImpl.kt | 2 +- .../testCases/PluginTestCase.kt | 40 ++++++++++++++++--- .../tests/community/PluginInstallTest.kt | 2 +- 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/platform/testGuiFramework/src/com/intellij/testGuiFramework/remote/server/JUnitServerImpl.kt b/platform/testGuiFramework/src/com/intellij/testGuiFramework/remote/server/JUnitServerImpl.kt index 461d8e454627..64c7e9f7049f 100644 --- a/platform/testGuiFramework/src/com/intellij/testGuiFramework/remote/server/JUnitServerImpl.kt +++ b/platform/testGuiFramework/src/com/intellij/testGuiFramework/remote/server/JUnitServerImpl.kt @@ -193,7 +193,7 @@ class JUnitServerImpl : JUnitServer { LOG.info("Server Receive Thread started") while (connection.isConnected) { val obj = objectInputStream.readObject() - LOG.info("Receiving message: $obj") + LOG.debug("Receiving message: $obj") assert(obj is TransportMessage) val message = obj as TransportMessage receivingMessages.put(message) diff --git a/platform/testGuiFramework/src/com/intellij/testGuiFramework/testCases/PluginTestCase.kt b/platform/testGuiFramework/src/com/intellij/testGuiFramework/testCases/PluginTestCase.kt index 52604f19a8b4..107f17ee59c9 100644 --- a/platform/testGuiFramework/src/com/intellij/testGuiFramework/testCases/PluginTestCase.kt +++ b/platform/testGuiFramework/src/com/intellij/testGuiFramework/testCases/PluginTestCase.kt @@ -21,6 +21,7 @@ import com.intellij.testGuiFramework.impl.GuiTestThread import com.intellij.testGuiFramework.impl.GuiTestUtilKt import com.intellij.testGuiFramework.impl.GuiTestUtilKt.waitProgressDialogUntilGone import com.intellij.testGuiFramework.launcher.GuiTestOptions +import com.intellij.testGuiFramework.launcher.system.SystemInfo import com.intellij.testGuiFramework.remote.transport.MessageType import com.intellij.testGuiFramework.remote.transport.TransportMessage import org.fest.swing.exception.WaitTimedOutError @@ -28,6 +29,11 @@ import javax.swing.JDialog open class PluginTestCase : GuiTestCase() { + + private val MAC_PLUGIN_HOME = "/Users/jetbrains/Documents/plugins/" + private val WIN_PLUGIN_HOME = "/Users/jetbrains/Documents/plugins/" + private val LINUX_PLUGIN_HOME = "/Users/jetbrains/Documents/plugins/" + fun installPluginAndRestart(installPluginsFunction: () -> Unit) { val PLUGINS_INSTALLED = "PLUGINS_INSTALLED" if (guiTestRule.getTestName() == GuiTestOptions.getResumeTestName() && @@ -63,15 +69,37 @@ open class PluginTestCase : GuiTestCase() { } } - fun installPluginFromDisk(pluginPath: String) { + fun installPluginFromDisk(pluginDir: String, pluginName: String) { + var pluginPath: String = when { + SystemInfo.isMac() -> MAC_PLUGIN_HOME + SystemInfo.isWin() -> WIN_PLUGIN_HOME + else -> { + LINUX_PLUGIN_HOME + } + } + pluginDir welcomeFrame { actionLink("Configure").click() popupClick("Plugins") dialog("Plugins") { - button("Install plugin from disk...").click() - chooseFileInFileChooser(pluginPath) - button("OK").click() - ensureButtonOkHasPressed(this@PluginTestCase) + //Check if plugin has already been installed + try { + table(pluginName, timeout = 1L).cell(pluginName).click() + button("OK").click() + ensureButtonOkHasPressed(this@PluginTestCase) + } + catch (e: Exception) { + button("Install plugin from disk...").click() + chooseFileInFileChooser(pluginPath) + button("OK").click() + ensureButtonOkHasPressed(this@PluginTestCase) + } + } + try { + message("IDE and Plugin Updates", timeout = 5L) { + button("Shutdown").click() + } + } + catch (e: Exception) { } } } @@ -82,7 +110,7 @@ open class PluginTestCase : GuiTestCase() { GuiTestUtilKt.waitUntilGone(robot = guiTestCase.robot(), timeoutInSeconds = 2, matcher = GuiTestUtilKt.typeMatcher( - JDialog::class.java) { it.isShowing && it.title == dialogTitle }) + JDialog::class.java) { it.isShowing && it.title == dialogTitle }) } catch (timeoutError: WaitTimedOutError) { with(guiTestCase) { diff --git a/platform/testGuiFramework/testSrc/com/intellij/testGuiFramework/tests/community/PluginInstallTest.kt b/platform/testGuiFramework/testSrc/com/intellij/testGuiFramework/tests/community/PluginInstallTest.kt index 7eaeb94980e0..e5a0c6bfcd62 100644 --- a/platform/testGuiFramework/testSrc/com/intellij/testGuiFramework/tests/community/PluginInstallTest.kt +++ b/platform/testGuiFramework/testSrc/com/intellij/testGuiFramework/tests/community/PluginInstallTest.kt @@ -28,7 +28,7 @@ class PluginInstallTest : PluginTestCase() { @Test fun testPluginByPath() { - installPluginAndRestart { installPluginFromDisk("/Users/jetbrains/Downloads/Dart-172.4155.35.zip") } + installPluginAndRestart { installPluginFromDisk("/Users/jetbrains/Downloads/Dart-172.4155.35.zip", "Dart") } checkPluginsFunctionality("Dart") }