diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 03482426..f4740f2e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,6 +31,7 @@ jobs: run_on_linux: runs-on: ubuntu-latest + steps: - uses: actions/checkout@v4 - name: Set up JDK 11 # Java 11 is only used for test NewProjectDialogTest/setProjectSdkIfAvailableTest @@ -45,30 +46,10 @@ jobs: java-version: 17 distribution: 'temurin' cache: 'gradle' - - name: Run mainidewindow_idestatusbar_screenshot integration tests - run: | - cd src/test-project - xvfb-run --server-args="-screen 0 1920x1080x24" ./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.utils.* --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.idestatusbar.* - - name: Run dialogs_information_settings integration tests - run: | - cd src/test-project - xvfb-run --server-args="-screen 0 1920x1080x24" ./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.information.* --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.settings.* - - name: Run dialogs_project_manipulation integration tests - run: | - cd src/test-project - xvfb-run --server-args="-screen 0 1920x1080x24" ./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.project_manipulation.* - - name: Run dialogs integration tests - run: | - cd src/test-project - xvfb-run --server-args="-screen 0 1920x1080x24" ./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.FlatWelcomeFrameTest - - name: Run mainidewindow-menubar integration tests - run: | - cd src/test-project - xvfb-run --server-args="-screen 0 1920x1080x24" ./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.menubar.* - - name: Run mainidewindow-toolwindowspane integration tests + - name: Run integration tests run: | cd src/test-project - xvfb-run --server-args="-screen 0 1920x1080x24" ./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.toolwindowspane.* + xvfb-run --server-args="-screen 0 1920x1080x24" ./gradlew integrationUITest --warning-mode none - name: Archiving tests reports uses: actions/upload-artifact@v4 with: @@ -113,30 +94,10 @@ jobs: java-version: 17 distribution: 'temurin' cache: 'gradle' - - name: Run mainidewindow_idestatusbar_screenshot integration tests - run: | - cd src/test-project - ./gradlew.bat integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.utils.* --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.idestatusbar.* - - name: Run dialogs_information_settings integration tests - run: | - cd src/test-project - ./gradlew.bat integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.information.* --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.settings.* - - name: Run dialogs_project_manipulation integration tests + - name: Run integration tests run: | cd src/test-project - ./gradlew.bat integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.project_manipulation.* - - name: Run dialogs integration tests - run: | - cd src/test-project - ./gradlew.bat integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.FlatWelcomeFrameTest - - name: Run mainidewindow-menubar integration tests - run: | - cd src/test-project - ./gradlew.bat integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.menubar.* - - name: Run mainidewindow-toolwindowspane integration tests - run: | - cd src/test-project - ./gradlew.bat integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.toolwindowspane.* + ./gradlew.bat integrationUITest --warning-mode none - name: Archiving tests reports uses: actions/upload-artifact@v4 with: @@ -173,30 +134,10 @@ jobs: java-version: 17 distribution: 'temurin' cache: 'gradle' - - name: Run mainidewindow_idestatusbar_screenshot integration tests - run: | - cd src/test-project - ./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.utils.* --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.idestatusbar.* - - name: Run dialogs_information_settings integration tests - run: | - cd src/test-project - ./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.information.* --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.settings.* - - name: Run dialogs_project_manipulation integration tests - run: | - cd src/test-project - ./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.project_manipulation.* - - name: Run dialogs integration tests - run: | - cd src/test-project - ./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.dialogs.FlatWelcomeFrameTest - - name: Run mainidewindow-menubar integration tests - run: | - cd src/test-project - ./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.menubar.* - - name: Run mainidewindow-toolwindowspane integration tests + - name: Run integration tests run: | cd src/test-project - ./gradlew integrationUITest --warning-mode none --tests com.redhat.devtools.intellij.commonuitest.fixtures.test.mainidewindow.toolwindowspane.* + ./gradlew integrationUITest --warning-mode none - name: Archiving tests reports uses: actions/upload-artifact@v4 with: diff --git a/build.gradle.kts b/build.gradle.kts index 47b57a6d..fb65e86d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,6 +2,7 @@ plugins { id("java-library") id("maven-publish") alias(libs.plugins.gradleNexusPublishPlugin) + id("jacoco") // Code coverage alias(libs.plugins.sonarqube) // SonarQube } @@ -40,6 +41,14 @@ tasks { useJUnitPlatform() } + jacocoTestReport { + executionData.setFrom(fileTree(layout.buildDirectory).include("/jacoco/*.exec")) + //classDirectories.setFrom(instrumentCode) + reports { + xml.required = true + } + } + sonar { properties { property("sonar.projectKey", "redhat-developer_intellij-common-ui-test-library") diff --git a/src/main/java/com/redhat/devtools/intellij/commonuitest/UITestRunner.java b/src/main/java/com/redhat/devtools/intellij/commonuitest/UITestRunner.java index ade49a16..77f92d6b 100644 --- a/src/main/java/com/redhat/devtools/intellij/commonuitest/UITestRunner.java +++ b/src/main/java/com/redhat/devtools/intellij/commonuitest/UITestRunner.java @@ -11,11 +11,11 @@ package com.redhat.devtools.intellij.commonuitest; import com.intellij.remoterobot.RemoteRobot; +import com.intellij.remoterobot.fixtures.CommonContainerFixture; import com.intellij.remoterobot.stepsProcessing.StepLogger; import com.intellij.remoterobot.stepsProcessing.StepWorker; -import com.intellij.remoterobot.utils.WaitForConditionTimeoutException; import com.redhat.devtools.intellij.commonuitest.exceptions.UITestException; -import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.FlatWelcomeFrame; +import com.redhat.devtools.intellij.commonuitest.utils.constants.XPathDefinitions; import com.redhat.devtools.intellij.commonuitest.utils.runner.IntelliJVersion; import java.io.File; @@ -35,6 +35,7 @@ import static com.intellij.remoterobot.stepsProcessing.StepWorkerKt.step; import static com.intellij.remoterobot.utils.RepeatUtilsKt.waitFor; +import static com.intellij.remoterobot.search.locators.Locators.byXpath; /** * Basic methods for starting and quiting the IntelliJ Idea IDE for UI tests @@ -96,7 +97,6 @@ public static RemoteRobot runIde(IntelliJVersion ideaVersion, int port) { LOGGER.log(Level.SEVERE, e.getMessage(), e); } - remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10)).clearWorkspace(); return remoteRobot; }); } @@ -154,19 +154,7 @@ public static RemoteRobot getRemoteRobot() { public static RemoteRobot getRemoteRobotConnection(int port) { return step("Create an instance of the RemoteRobot listening on port " + port, () -> { RemoteRobot remoteRobot = new RemoteRobot("http://127.0.0.1:" + port); - for (int i = 0; i < 60; i++) { - try { - remoteRobot.find(FlatWelcomeFrame.class); - } catch (WaitForConditionTimeoutException e) { - try { - Thread.sleep(1000); - } catch (InterruptedException e2) { - LOGGER.log(Level.SEVERE, e2.getMessage(), e2); - Thread.currentThread().interrupt(); - } - } - } - + waitFor(Duration.ofSeconds(30), Duration.ofMillis(500), () -> remoteRobot.find(CommonContainerFixture.class, byXpath(XPathDefinitions.FLAT_WELCOME_FRAME)).isShowing()); return remoteRobot; }); } @@ -253,15 +241,15 @@ private static void acceptAllTermsAndConditions() { } private static void waitUntilIntelliJStarts(int port) { - waitFor(Duration.ofSeconds(600), Duration.ofSeconds(3), "The IntelliJ Idea did not start in 10 minutes.", () -> isIntelliJUIVisible(port)); + waitFor(Duration.ofSeconds(600), Duration.ofSeconds(3), "IntelliJ to start for 10 minutes.", () -> isIntelliJUIVisible(port)); } private static boolean isIntelliJUIVisible(int port) { - return isHostOnIpAndPortAccessible("127.0.0.1", port); + return isHostOnIpAndPortAccessible(port); } - private static boolean isHostOnIpAndPortAccessible(String ip, int port) { - SocketAddress sockaddr = new InetSocketAddress(ip, port); + private static boolean isHostOnIpAndPortAccessible(int port) { + SocketAddress sockaddr = new InetSocketAddress("127.0.0.1", port); try (Socket socket = new Socket()) { connectToHost(socket, sockaddr); } catch (IOException e) { diff --git a/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/dialogs/FlatWelcomeFrame.java b/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/dialogs/FlatWelcomeFrame.java index d7da7efe..f7afc644 100644 --- a/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/dialogs/FlatWelcomeFrame.java +++ b/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/dialogs/FlatWelcomeFrame.java @@ -162,7 +162,7 @@ public void openSettingsDialog() { JTreeFixture jTreeFixture = remoteRobot.find(JTreeFixture.class, byXpath(XPathDefinitions.TREE)); jTreeFixture.findText("Customize").click(); if (remoteRobot.isMac()) { - resizeWelcomeWindow(900); + resizeWelcomeWindow(); } remoteRobot.find(ContainerFixture.class, byXpath(XPathDefinitions.DIALOG_PANEL)).findText("All settings" + '\u2026').click(); } @@ -170,10 +170,8 @@ public void openSettingsDialog() { /** * Resize the Welcome to IntelliJ IDEA window - * - * @param newHeight Integer of new height to use */ - private void resizeWelcomeWindow(int newHeight) { + private void resizeWelcomeWindow() { try { remoteRobot.callJs(String.format(""" importClass(java.awt.Frame); @@ -192,7 +190,7 @@ private void resizeWelcomeWindow(int newHeight) { } } resized; - """, newHeight)); + """, 900)); Thread.sleep(5000); } catch (Exception e) { LOGGER.log(Level.WARNING, "Failed to resize the Welcome window: {0}", e.getMessage()); diff --git a/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/dialogs/project/pages/NewProjectFirstPage.java b/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/dialogs/project/pages/NewProjectFirstPage.java index 3320f110..e9cb098e 100644 --- a/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/dialogs/project/pages/NewProjectFirstPage.java +++ b/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/dialogs/project/pages/NewProjectFirstPage.java @@ -14,7 +14,6 @@ import com.intellij.remoterobot.data.RemoteComponent; import com.intellij.remoterobot.fixtures.ComboBoxFixture; import com.intellij.remoterobot.fixtures.CommonContainerFixture; -import com.intellij.remoterobot.fixtures.ContainerFixture; import com.intellij.remoterobot.fixtures.DefaultXpath; import com.intellij.remoterobot.fixtures.FixtureName; import com.intellij.remoterobot.fixtures.HeavyWeightWindowFixture; @@ -167,10 +166,13 @@ public void setProjectSdkIfAvailable(String targetSdkName) { String label = foundItems.values().stream().findFirst().get(); projectSdkList.jList().clickItem(label, true); // wait for 'resolving JDK' progressmonitor to end + // TODO for now don't know what kind of dialog is the 'resolving' so just pausing thread try { Thread.sleep(5000); } catch (InterruptedException e) { - throw new RuntimeException(e); + ScreenshotUtils.takeScreenshot(remoteRobot, "interrupted while waiting for " + targetSdkName); + /* Clean up whatever needs to be handled before interrupting */ + Thread.currentThread().interrupt(); } } else { ScreenshotUtils.takeScreenshot(remoteRobot, "No SDK found starting with " + targetSdkName); diff --git a/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/idestatusbar/IdeStatusBar.java b/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/idestatusbar/IdeStatusBar.java index dc41e7cf..45dba808 100644 --- a/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/idestatusbar/IdeStatusBar.java +++ b/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/idestatusbar/IdeStatusBar.java @@ -16,15 +16,11 @@ import com.intellij.remoterobot.fixtures.ComponentFixture; import com.intellij.remoterobot.fixtures.DefaultXpath; import com.intellij.remoterobot.fixtures.FixtureName; -import com.intellij.remoterobot.fixtures.dataExtractor.RemoteText; import com.intellij.remoterobot.utils.WaitForConditionTimeoutException; import com.redhat.devtools.intellij.commonuitest.utils.constants.XPathDefinitions; import org.jetbrains.annotations.NotNull; import java.time.Duration; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; import static com.intellij.remoterobot.search.locators.Locators.byXpath; import static com.intellij.remoterobot.utils.RepeatUtilsKt.waitFor; @@ -37,7 +33,6 @@ @DefaultXpath(by = "IdeStatusBarImpl type", xpath = XPathDefinitions.IDE_STATUS_BAR) @FixtureName(name = "Ide Status Bar") public class IdeStatusBar extends CommonContainerFixture { - private static final Logger LOGGER = Logger.getLogger(IdeStatusBar.class.getName()); private final RemoteRobot remoteRobot; public IdeStatusBar(@NotNull RemoteRobot remoteRobot, @NotNull RemoteComponent remoteComponent) { @@ -85,20 +80,7 @@ private boolean didProjectImportFinish() { } private boolean didAllBgTasksFinish() { - for (int i = 0; i < 5; i++) { - IdeStatusBar ideStatusBar = remoteRobot.find(IdeStatusBar.class); - List inlineProgressPanelContent = ideStatusBar.inlineProgressPanel().findAllText(); - if (!inlineProgressPanelContent.isEmpty()) { - return false; - } - - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - LOGGER.log(Level.SEVERE, e.getMessage(), e); - Thread.currentThread().interrupt(); - } - } - return true; + waitFor(Duration.ofSeconds(5), Duration.ofMillis(500), () -> remoteRobot.find(IdeStatusBar.class).isShowing()); + return remoteRobot.find(IdeStatusBar.class).inlineProgressPanel().findAllText().isEmpty(); } } \ No newline at end of file diff --git a/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/toolwindowspane/AbstractToolWinPane.java b/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/toolwindowspane/AbstractToolWinPane.java index 6a87f0f5..777d4175 100644 --- a/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/toolwindowspane/AbstractToolWinPane.java +++ b/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/toolwindowspane/AbstractToolWinPane.java @@ -43,11 +43,9 @@ protected AbstractToolWinPane(@NotNull RemoteRobot remoteRobot, @NotNull RemoteC /** * Open project explorer - * - * @return the Project Explorer fixture */ - public ProjectExplorer openProjectExplorer() { - return togglePane(ButtonLabels.PROJECT_STRIPE_BUTTON_LABEL, ProjectExplorer.class, true); + public void openProjectExplorer() { + togglePane(ButtonLabels.PROJECT_STRIPE_BUTTON_LABEL, ProjectExplorer.class, true); } /** @@ -59,11 +57,9 @@ public void closeProjectExplorer() { /** * Open maven build tool pane - * - * @return the Maven Build Tool Pane fixture */ - public MavenBuildToolPane openMavenBuildToolPane() { - return togglePane(ButtonLabels.MAVEN_STRIPE_BUTTON_LABEL, MavenBuildToolPane.class, true); + public void openMavenBuildToolPane() { + togglePane(ButtonLabels.MAVEN_STRIPE_BUTTON_LABEL, MavenBuildToolPane.class, true); } /** @@ -75,11 +71,9 @@ public void closeMavenBuildToolPane() { /** * Open gradle build tool pane - * - * @return the Gradle Build Tool Pane fixture */ - public GradleBuildToolPane openGradleBuildToolPane() { - return togglePane(ButtonLabels.GRADLE_STRIPE_BUTTON_LABEL, GradleBuildToolPane.class, true); + public void openGradleBuildToolPane() { + togglePane(ButtonLabels.GRADLE_STRIPE_BUTTON_LABEL, GradleBuildToolPane.class, true); } /** @@ -111,14 +105,12 @@ public JButtonFixture stripeButton(String label, boolean isPaneOpened) { return button(byXpath(XPathDefinitions.label(label)), Duration.ofSeconds(2)); } - protected T togglePane(String label, Class fixtureClass, boolean openPane) { + protected void togglePane(String label, Class fixtureClass, boolean openPane) { if ((!isPaneOpened(fixtureClass) && openPane)) { clickOnStripeButton(label, false); - return find(fixtureClass, Duration.ofSeconds(10)); } else if (isPaneOpened(fixtureClass) && !openPane) { clickOnStripeButton(label, true); } - return null; } private boolean isPaneOpened(Class fixtureClass) { diff --git a/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/toolwindowspane/buildtoolpane/GradleBuildToolPane.java b/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/toolwindowspane/buildtoolpane/GradleBuildToolPane.java index bd8efadf..02a6b802 100644 --- a/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/toolwindowspane/buildtoolpane/GradleBuildToolPane.java +++ b/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/toolwindowspane/buildtoolpane/GradleBuildToolPane.java @@ -109,6 +109,6 @@ public JTreeFixture gradleTaskTree() { private boolean isGradleTreeVisible() { String treeContent = TextUtils.listOfRemoteTextToString(gradleTaskTree().findAllText()); - return !treeContent.toLowerCase(Locale.ROOT).contains("nothing") && !treeContent.equals(""); + return !treeContent.toLowerCase(Locale.ROOT).contains("nothing") && !treeContent.isEmpty(); } } \ No newline at end of file diff --git a/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/toolwindowspane/buildtoolpane/MavenBuildToolPane.java b/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/toolwindowspane/buildtoolpane/MavenBuildToolPane.java index 40641e55..ae401bd7 100644 --- a/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/toolwindowspane/buildtoolpane/MavenBuildToolPane.java +++ b/src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/toolwindowspane/buildtoolpane/MavenBuildToolPane.java @@ -93,6 +93,6 @@ public JTreeFixture mavenTargetTree() { private boolean isMavenTreeVisible() { String treeContent = TextUtils.listOfRemoteTextToString(mavenTargetTree().findAllText()); - return !treeContent.toLowerCase(Locale.ROOT).contains("nothing") && !treeContent.equals(""); + return !treeContent.toLowerCase(Locale.ROOT).contains("nothing") && !treeContent.isEmpty(); } } \ No newline at end of file diff --git a/src/main/java/com/redhat/devtools/intellij/commonuitest/utils/constants/XPathDefinitions.java b/src/main/java/com/redhat/devtools/intellij/commonuitest/utils/constants/XPathDefinitions.java index ac4da5e3..d2b8363d 100644 --- a/src/main/java/com/redhat/devtools/intellij/commonuitest/utils/constants/XPathDefinitions.java +++ b/src/main/java/com/redhat/devtools/intellij/commonuitest/utils/constants/XPathDefinitions.java @@ -25,18 +25,25 @@ public class XPathDefinitions { public static final String BUILD_VIEW = "//div[@class='BuildView']"; public static final String MAVEN_TOOL_WINDOW = "//div[@accessiblename='Maven Tool Window']"; public static final String GRADLE_TOOL_WINDOW = "//div[@accessiblename='Gradle Tool Window']"; + @Language("XPath") public static final String LINUX_MAIN_MENU = "//div[@class='LinuxIdeMenuBar']"; + @Language("XPath") public static final String WINDOWS_MAIN_MENU_2024_1_AND_NEWER = "//div[@class='IdeJMenuBar']"; + @Language("XPath") public static final String WINDOWS_MAIN_MENU_2022_2_TO_2023_2 = "//div[@class='IdeMenuBar']"; + @Language("XPath") public static final String WINDOWS_MAIN_MENU_2020_3_TO_2022_1 = "//div[@class='MenuFrameHeader']"; + @Language("XPath") public static final String WINDOWS_MAIN_MENU_2020_2_AND_OLDER = "//div[@class='CustomHeaderMenuBar']"; public static final String IDE_STATUS_BAR = "//div[@class='IdeStatusBarImpl']"; @Language("XPath") public static final String INLINE_PROGRESS_PANEL = "//div[@class='InlineProgressPanel']"; @Language("XPath") public static final String ENGRAVED_LABEL = "//div[@class='EngravedLabel']"; + @Language("XPath") public static final String FLAT_WELCOME_FRAME = "//div[@class='FlatWelcomeFrame']"; public static final String NEW_PROJECT_DIALOG_WIZARD = "//div[@accessiblename='New Project' and @class='MyDialog']"; + @Language("XPath") public static final String DIALOG_ROOT_PANE = "//div[@class='DialogRootPane']"; public static final String SEARCH_EVERYWHERE_POPUP = "//div[@accessiblename='Search everywhere' and @class='SearchEverywhereUI']"; public static final String IDE_FATAL_ERRORS_DIALOG = "//div[@accessiblename='IDE Fatal Errors' and @class='MyDialog']"; @@ -52,7 +59,9 @@ public class XPathDefinitions { public static final String RECENT_PROJECT_PANEL_NEW_2 = "//div[@class='JBViewport']/*"; @Language("XPath") public static final String IDE_ERROR_ICON = "//div[@class='IdeErrorsIcon']"; + @Language("XPath") public static final String BUILD_VIEW_EDITOR = "//div[@accessiblename='Editor']"; + @Language("XPath") public static final String JCOMBOBOX = "//div[@class='JComboBox']"; @Language("XPath") public static final String MORE_SETTINGS_TITLED_SEPARATOR = "//div[@class='TitledSeparator']/../../*"; @@ -68,21 +77,35 @@ public class XPathDefinitions { public static final String MY_DIALOG = "//div[@class='MyDialog']"; @Language("XPath") public static final String TREE = "//div[@class='Tree']"; + @Language("XPath") public static final String TOOLTIP_TEXT_PROJECT = "//div[@tooltiptext='Project']"; + @Language("XPath") public static final String TOOLTIP_TEXT_HIDE = "//div[contains(@myvisibleactions, 'View),')]//div[@tooltiptext='Hide']"; + @Language("XPath") public static final String MAIN_MENU = "//div[@tooltiptext='Main Menu']"; + @Language("XPath") public static final String MY_ICON_GEAR_PLAIN = "//div[contains(@myvisibleactions, 'View),')]//div[@myicon='gearPlain.svg']"; + @Language("XPath") public static final String MY_ICON_MORE_VERTICAL = "//div[@myicon='moreVertical.svg']"; + @Language("XPath") public static final String MY_ICON_COLLAPSE_ALL = "//div[contains(@myvisibleactions, 'View),')]//div[@myicon='collapseall.svg']"; + @Language("XPath") public static final String MY_ICON_COLLAPSE_ALL_2024_2 = "//div[@myicon='collapseAll.svg']"; + @Language("XPath") public static final String MY_ICON_COLLAPSE_ALL_FOR = "//div[contains(@myvisibleactions, 'For')]//div[@myicon='collapseall.svg']"; + @Language("XPath") public static final String MY_ICON_COLLAPSE_ALL_IDE = "//div[contains(@myvisibleactions, 'IDE')]//div[@myicon='collapseall.svg']"; + @Language("XPath") public static final String MY_ICON_EXPAND_ALL = "//div[contains(@myvisibleactions, 'View),')]//div[@myicon='expandall.svg']"; + @Language("XPath") public static final String MY_ICON_EXPAND_ALL_2024_2 = "//div[@myicon='expandAll.svg']"; + @Language("XPath") public static final String MY_ICON_EXPAND_ALL_IDE = "//div[contains(@myvisibleactions, 'IDE')]//div[@myicon='expandall.svg']"; @Language("XPath") public static final String MY_ICON_LOCATE_SVG = "//div[@myicon='locate.svg']"; + @Language("XPath") public static final String MY_ICON_REFRESH = "//div[@myicon='refresh.svg']"; + @Language("XPath") public static final String CONTENT_COMBO_LABEL = "//div[@class='ContentComboLabel']"; @Language("XPath") public static final String JBLIST = "//div[@class='JBList']"; @@ -91,14 +114,21 @@ public class XPathDefinitions { @Language("XPath") public static final String MY_LIST = "//div[@class='MyList']"; public static final String CODE_WITH_ME_JPANEL = "//div[@class='Wrapper'][.//div[@class='JBLabel']]//div[@class='JPanel']"; + @Language("XPath") public static final String BREAD_CRUMBS = "//div[@class='Breadcrumbs']"; @Language("XPath") public static final String EMPTY_PROJECT = "//div[@visible_text='Empty Project']"; + @Language("XPath") public static final String SINGLE_HEIGHT_LABEL = "//div[@class='SingleHeightLabel']"; + @Language("XPath") public static final String COLLAPSIBLE_TITLED_SEPARATOR = "//div[@class='CollapsibleTitledSeparator']"; + @Language("XPath") public static final String COLLAPSIBLE_TITLED_SEPARATOR_NEW = "//div[@class='CollapsibleTitledSeparatorImpl']"; + @Language("XPath") public static final String COLLAPSIBLE_TITLED_SEPARATOR_SIBLINGS = COLLAPSIBLE_TITLED_SEPARATOR + "/../*"; + @Language("XPath") public static final String COLLAPSIBLE_TITLED_SEPARATOR_NEW_SIBLINGS = COLLAPSIBLE_TITLED_SEPARATOR_NEW + "/../*"; + @Language("XPath") public static final String EXTENDABLE_TEXT_FIELD = "//div[@class='ExtendableTextField']"; @Language("XPath") public static final String JBTEXT_FIELD = "//div[@class='JBTextField']"; @@ -110,9 +140,13 @@ public class XPathDefinitions { public static final String SET_BUILD_SYSTEM = "//div[@class='SegmentedButtonComponent'][.//div[@action.key='buildsystem.type.intellij']]"; @Language("XPath") public static final String SET_BUILD_SYSTEM_2024_2_AND_NEWER = "//div[@accessiblename='Build system:' and @class='SegmentedButtonComponent']"; // works for IntelliJ Idea 2024.1 and higher + @Language("XPath") public static final String GET_SET_MODULE_NAME = "//div[@accessiblename='Module name:' and @class='JBTextField']"; + @Language("XPath") public static final String GET_SET_MODULE_NAME_2024_2_AND_NEWER = "//div[@accessiblename='Module name:' and @class='JBTextField']"; + @Language("XPath") public static final String GET_SET_CONTENT_ROOT = "//div[@accessiblename='Content root:' and @class='ExtendableTextField']"; + @Language("XPath") public static final String GET_SET_MODULE_FILE_LOCATION = "//div[@accessiblename='Module file location:' and @class='ExtendableTextField']"; @Language("XPath") public static final String CREATE_NEW_PROJECT = "//div[@defaulticon='createNewProjectTab.svg']"; // works for IntelliJ Idea 2024.1 and higher diff --git a/src/main/java/com/redhat/devtools/intellij/commonuitest/utils/runner/IntelliJVersion.java b/src/main/java/com/redhat/devtools/intellij/commonuitest/utils/runner/IntelliJVersion.java index 36a964de..e6842691 100644 --- a/src/main/java/com/redhat/devtools/intellij/commonuitest/utils/runner/IntelliJVersion.java +++ b/src/main/java/com/redhat/devtools/intellij/commonuitest/utils/runner/IntelliJVersion.java @@ -26,6 +26,7 @@ public enum IntelliJVersion { COMMUNITY_V_2022_3("IC-2022.3"), COMMUNITY_V_2023_1("IC-2023.1"), COMMUNITY_V_2023_2("IC-2023.2"), + COMMUNITY_V_2023_3("IC-2023.3"), COMMUNITY_V_2024_1("IC-2024.1"), COMMUNITY_V_2024_2("IC-2024.2"), COMMUNITY_V_2024_3("IC-2024.3"); @@ -38,7 +39,13 @@ public enum IntelliJVersion { String ideaVersionString = this.ideaVersionStringRepresentation.substring(3).replace(".", ""); this.ideaVersionIntRepresentation = Integer.parseInt(ideaVersionString); + } + public static IntelliJVersion getFromStringVersion(String aVersion) { + for (IntelliJVersion v : values()) { + if (v.ideaVersionStringRepresentation.endsWith(aVersion)) return v; + } + throw new IllegalArgumentException(); } @Override diff --git a/src/test-project/build.gradle.kts b/src/test-project/build.gradle.kts index dea631ca..7a433b08 100644 --- a/src/test-project/build.gradle.kts +++ b/src/test-project/build.gradle.kts @@ -39,11 +39,6 @@ tasks { useJUnitPlatform() } - register("copyKey", Copy::class.java) { - from("idea_license_token/idea.key") - into("build/idea-sandbox/config-uiTest") - } - withType { configure { isIncludeNoLocationClasses = true @@ -64,18 +59,12 @@ tasks { } } -val integrationUITestUltimate by intellijPlatformTesting.testIde.registering { - task { - systemProperty("intellij_debug", "true") - group = "verification" - useJUnitPlatform() - dependsOn(tasks["copyKey"]) - } -} - val integrationUITest by intellijPlatformTesting.testIde.registering { task { systemProperty("intellij_debug", "true") + val underTestVersion = findProperty("communityIdeaVersion") ?: platformVersion + println("IDEA Version under test: $underTestVersion") + systemProperty("communityIdeaVersion", underTestVersion) group = "verification" useJUnitPlatform() } diff --git a/src/test-project/idea_license_token/idea.key.gpg b/src/test-project/idea_license_token/idea.key.gpg deleted file mode 100644 index 2d018e75..00000000 Binary files a/src/test-project/idea_license_token/idea.key.gpg and /dev/null differ diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/LibraryTestBase.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/LibraryTestBase.java index faf9239d..baaa6077 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/LibraryTestBase.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/LibraryTestBase.java @@ -31,14 +31,14 @@ @ExtendWith(ScreenshotAfterTestFailExtension.class) public class LibraryTestBase { protected static final Logger LOGGER = Logger.getLogger(LibraryTestBase.class.getName()); - private static final IntelliJVersion communityIdeaVersion = IntelliJVersion.COMMUNITY_V_2024_2; + private static final IntelliJVersion communityIdeaVersion = IntelliJVersion.getFromStringVersion(System.getProperty("communityIdeaVersion")); protected static RemoteRobot remoteRobot; protected static int ideaVersionInt; private static boolean intelliJHasStarted = false; private static final int TEST_RUNNER_PORT = 8580; @BeforeAll - protected static void startIntelliJ() { + static void startIntelliJ() { if (!intelliJHasStarted) { ideaVersionInt = communityIdeaVersion.toInt(); remoteRobot = UITestRunner.runIde(communityIdeaVersion, TEST_RUNNER_PORT); @@ -47,12 +47,13 @@ protected static void startIntelliJ() { Runtime.getRuntime().addShutdownHook(new CloseIntelliJBeforeQuit()); FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10)); + flatWelcomeFrame.clearWorkspace(); flatWelcomeFrame.disableNotifications(); } } @AfterAll - protected static void finishTestRun() { + static void finishTestRun() { FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10)); flatWelcomeFrame.clearExceptions(); flatWelcomeFrame.clearWorkspace(); diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/FlatWelcomeFrameTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/FlatWelcomeFrameTest.java index e6d3e837..b7595a76 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/FlatWelcomeFrameTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/FlatWelcomeFrameTest.java @@ -40,13 +40,13 @@ class FlatWelcomeFrameTest extends LibraryTestBase { private FlatWelcomeFrame flatWelcomeFrame; @AfterEach - public void cleanUp() { + void cleanUp() { flatWelcomeFrame.clearWorkspace(); flatWelcomeFrame.clearExceptions(); } @Test - public void createNewProjectLinkTest() { + void createNewProjectLinkTest() { flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10)); flatWelcomeFrame.createNewProject(); NewProjectDialogWizard newProjectDialogWizard = remoteRobot.find(NewProjectDialogWizard.class, Duration.ofSeconds(10)); @@ -54,7 +54,7 @@ public void createNewProjectLinkTest() { } @Test - public void clearWorkspaceTest() { + void clearWorkspaceTest() { prepareWorkspace(PROJECT_NAME); flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10)); flatWelcomeFrame.clearExceptions(); @@ -71,7 +71,7 @@ public void clearWorkspaceTest() { } @Test - public void clearExceptionsTest() { + void clearExceptionsTest() { prepareWorkspace(PROJECT_NAME); flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10)); flatWelcomeFrame.clearExceptions(); diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/information/CodeWithMeDialogTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/information/CodeWithMeDialogTest.java index 56395628..7461a02d 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/information/CodeWithMeDialogTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/information/CodeWithMeDialogTest.java @@ -39,7 +39,7 @@ class CodeWithMeDialogTest extends LibraryTestBase { private static final boolean IDEA_VERSION_WITH_CWM_DIALOG_OPENED = ideaVersionInt >= 20212; @BeforeAll - public static void prepareProject() { + static void prepareProject() { if (IDEA_VERSION_WITH_CWM_DIALOG_OPENED) { NewProjectDialogWizard newProjectDialogWizard = openNewProjectDialogFromWelcomeDialog(remoteRobot); NewProjectFirstPage newProjectFirstPage = newProjectDialogWizard.find(NewProjectFirstPage.class, Duration.ofSeconds(10)); @@ -71,14 +71,14 @@ public static void prepareProject() { } @AfterAll - public static void closeCurrentProject() { + static void closeCurrentProject() { if (IDEA_VERSION_WITH_CWM_DIALOG_OPENED) { CreateCloseUtils.closeProject(remoteRobot); } } @Test - public void closeCodeWithMe() { + void closeCodeWithMe() { if (IDEA_VERSION_WITH_CWM_DIALOG_OPENED) { CodeWithMeDialog.closeCodeWithMePopupIfItAppears(remoteRobot); } diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/information/ProjectStructureDialogTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/information/ProjectStructureDialogTest.java index a5c0c103..01f24a6d 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/information/ProjectStructureDialogTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/information/ProjectStructureDialogTest.java @@ -31,21 +31,21 @@ * * @author zcervink@redhat.com, olkornii@redhat.com */ -public class ProjectStructureDialogTest extends LibraryTestBase { +class ProjectStructureDialogTest extends LibraryTestBase { private static final String PROJECT_NAME = "tip_dialog_java_project"; @BeforeAll - public static void prepareProject() { + static void prepareProject() { CreateCloseUtils.createNewProject(remoteRobot, PROJECT_NAME, CreateCloseUtils.NewProjectType.PLAIN_JAVA); } @AfterAll - public static void closeProject() { + static void closeProject() { CreateCloseUtils.closeProject(remoteRobot); } @Test - public void projectStructureDialogTest() { + void projectStructureDialogTest() { dialogTest(() -> { ProjectStructureDialog projectStructureDialog = remoteRobot.find(ProjectStructureDialog.class, Duration.ofSeconds(10)); projectStructureDialog.cancel(); diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/information/TipDialogTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/information/TipDialogTest.java index 51c3744f..ddc41a25 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/information/TipDialogTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/information/TipDialogTest.java @@ -33,11 +33,11 @@ * * @author zcervink@redhat.com */ -public class TipDialogTest extends LibraryTestBase { +class TipDialogTest extends LibraryTestBase { private TipDialog tipDialog; @AfterAll - public static void cleanUp() { + static void cleanUp() { if (ideaVersionInt >= 20213) { JTreeFixture jTreeFixture = remoteRobot.find(JTreeFixture.class, byXpath(XPathDefinitions.TREE)); jTreeFixture.findText("Projects").click(); @@ -48,16 +48,17 @@ public static void cleanUp() { } @BeforeEach - public void prepareTipDialog() { + void prepareTipDialog() { tipDialog = remoteRobot.find(FlatWelcomeFrame.class).openTipDialog(); } @Test - public void closeButtonTest() { - remoteRobot.find(TipDialog.class, Duration.ofSeconds(5)); + void closeButtonTest() { + Duration timeout = Duration.ofSeconds(5); + remoteRobot.find(TipDialog.class, timeout); tipDialog.close(); try { - remoteRobot.find(TipDialog.class, Duration.ofSeconds(5)); + remoteRobot.find(TipDialog.class, timeout); fail("The 'Tif of the Day' dialog should be closed but is not."); } catch (WaitForConditionTimeoutException e) { LOGGER.log(Level.INFO, e.getMessage(), e); @@ -65,7 +66,7 @@ public void closeButtonTest() { } @Test - public void dontShowTipsCheckBoxTest() { + void dontShowTipsCheckBoxTest() { boolean checkboxStateBefore = tipDialog.dontShowTipsCheckBox().isSelected(); tipDialog.dontShowTipsCheckBox().setValue(!checkboxStateBefore); boolean checkboxStateAfter = tipDialog.dontShowTipsCheckBox().isSelected(); diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/project_manipulation/NewProjectDialogTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/project_manipulation/NewProjectDialogTest.java index 7b51e21d..bf993dd2 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/project_manipulation/NewProjectDialogTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/project_manipulation/NewProjectDialogTest.java @@ -50,7 +50,7 @@ * * @author zcervink@redhat.com */ -public class NewProjectDialogTest extends LibraryTestBase { +class NewProjectDialogTest extends LibraryTestBase { private static final String PLAIN_JAVA_PROJECT_NAME = "plain_java_project_name_test"; private static final String MORE_SETTINGS_SHOULD_BE_VISIBLE = "The 'More Settings' should be visible."; private static final String MORE_SETTINGS_SHOULD_BE_HIDDEN = "The 'More Settings' should be hidden."; @@ -63,13 +63,13 @@ public class NewProjectDialogTest extends LibraryTestBase { private MainIdeWindow mainIdeWindow; @BeforeEach - public void openNewProjectDialog() { + void openNewProjectDialog() { newProjectDialogWizard = CreateCloseUtils.openNewProjectDialogFromWelcomeDialog(remoteRobot); newProjectFirstPage = newProjectDialogWizard.find(NewProjectFirstPage.class, Duration.ofSeconds(10)); } @AfterEach - public void cleanUp() { + void cleanUp() { if (mainIdeWindow != null) { // tests ending with opened Main Ide Window needs to close the project and clear workspace IdeStatusBar ideStatusBar = mainIdeWindow.find(IdeStatusBar.class, Duration.ofSeconds(10)); @@ -91,25 +91,25 @@ public void cleanUp() { } @Test - public void setProjectNamePlainJavaProjectTest() { + void setProjectNamePlainJavaProjectTest() { testProjectNameAndLocationInputField(CreateCloseUtils.NewProjectType.PLAIN_JAVA); } @Test @EnabledIfSystemProperty(named = "uitestlib.idea.version", matches = "2020.|2021.") - public void setProjectNameMavenProjectTest() { + void setProjectNameMavenProjectTest() { testProjectNameAndLocationInputField(CreateCloseUtils.NewProjectType.MAVEN); } @Test @EnabledIfSystemProperty(named = "uitestlib.idea.version", matches = "2020.|2021.") - public void setProjectNameGradleProjectTest() { + void setProjectNameGradleProjectTest() { testProjectNameAndLocationInputField(CreateCloseUtils.NewProjectType.GRADLE); } @Test @EnabledIfSystemProperty(named = "uitestlib.idea.version", matches = "2020.|2021.") - public void openMoreSettingsTest() { + void openMoreSettingsTest() { navigateToSetProjectNamePage(CreateCloseUtils.NewProjectType.PLAIN_JAVA); JavaNewProjectFinalPage javaFinalPage = newProjectDialogWizard.find(JavaNewProjectFinalPage.class, Duration.ofSeconds(10)); javaFinalPage.closeMoreSettings(); @@ -122,7 +122,7 @@ public void openMoreSettingsTest() { @Test @EnabledIfSystemProperty(named = "uitestlib.idea.version", matches = "2020.|2021.") - public void closeMoreSettingsTest() { + void closeMoreSettingsTest() { navigateToSetProjectNamePage(CreateCloseUtils.NewProjectType.PLAIN_JAVA); JavaNewProjectFinalPage javaFinalPage = newProjectDialogWizard.find(JavaNewProjectFinalPage.class, Duration.ofSeconds(10)); javaFinalPage.openMoreSettings(); @@ -135,7 +135,7 @@ public void closeMoreSettingsTest() { @Test @EnabledIfSystemProperty(named = "uitestlib.idea.version", matches = "2020.|2021.") - public void openAdvancedSettingsTest() { + void openAdvancedSettingsTest() { newProjectFirstPage.closeAdvanceSettings(); assertFalse(isAdvancedSettingsOpened(), ADVANCED_SETTINGS_SHOULD_BE_CLOSED_MSG); newProjectFirstPage.openAdvanceSettings(); @@ -146,7 +146,7 @@ public void openAdvancedSettingsTest() { @Test @EnabledIfSystemProperty(named = "uitestlib.idea.version", matches = "2020.|2021.") - public void closeAdvancedSettingsTest() { + void closeAdvancedSettingsTest() { newProjectFirstPage.openAdvanceSettings(); assertTrue(isAdvancedSettingsOpened(), ADVANCED_SETTINGS_SHOULD_BE_OPENED_MSG); newProjectFirstPage.closeAdvanceSettings(); @@ -156,7 +156,7 @@ public void closeAdvancedSettingsTest() { } @Test - public void getSetModuleNameTest() { + void getSetModuleNameTest() { navigateToSetProjectNamePage(CreateCloseUtils.NewProjectType.PLAIN_JAVA); JavaNewProjectFinalPage javaFinalPage = newProjectDialogWizard.find(JavaNewProjectFinalPage.class, Duration.ofSeconds(10)); if (UITestRunner.getIdeaVersionInt() >= 20221) { @@ -173,7 +173,7 @@ public void getSetModuleNameTest() { } @Test - public void getSetContentRootTest() { + void getSetContentRootTest() { navigateToSetProjectNamePage(CreateCloseUtils.NewProjectType.PLAIN_JAVA); JavaNewProjectFinalPage javaFinalPage = newProjectDialogWizard.find(JavaNewProjectFinalPage.class, Duration.ofSeconds(10)); if (UITestRunner.getIdeaVersionInt() >= 20221) { @@ -190,7 +190,7 @@ public void getSetContentRootTest() { } @Test - public void getSetModuleFileLocationTest() { + void getSetModuleFileLocationTest() { navigateToSetProjectNamePage(CreateCloseUtils.NewProjectType.PLAIN_JAVA); JavaNewProjectFinalPage javaFinalPage = newProjectDialogWizard.find(JavaNewProjectFinalPage.class, Duration.ofSeconds(10)); if (UITestRunner.getIdeaVersionInt() >= 20221) { @@ -208,7 +208,7 @@ public void getSetModuleFileLocationTest() { @Test @EnabledIfSystemProperty(named = "uitestlib.idea.version", matches = "2020.|2021.") - public void getSetProjectFormat() { + void getSetProjectFormat() { navigateToSetProjectNamePage(CreateCloseUtils.NewProjectType.PLAIN_JAVA); JavaNewProjectFinalPage javaFinalPage = newProjectDialogWizard.find(JavaNewProjectFinalPage.class, Duration.ofSeconds(10)); javaFinalPage.openMoreSettings(); @@ -222,48 +222,48 @@ public void getSetProjectFormat() { } @Test - public void openArtifactCoordinatesMavenTest() { + void openArtifactCoordinatesMavenTest() { testOpenArtifactCoordinatesMavenGradle(CreateCloseUtils.NewProjectType.MAVEN); } @Test - public void openArtifactCoordinatesGradleTest() { + void openArtifactCoordinatesGradleTest() { testOpenArtifactCoordinatesMavenGradle(CreateCloseUtils.NewProjectType.GRADLE); } @Test - public void getSetGroupIdMavenTest() { + void getSetGroupIdMavenTest() { testArtifactCoordinatesAttributes(CreateCloseUtils.NewProjectType.MAVEN, ArtifactCoordinatesAttributes.GROUP_ID); } @Test - public void getSetGroupIdGradleTest() { + void getSetGroupIdGradleTest() { testArtifactCoordinatesAttributes(CreateCloseUtils.NewProjectType.GRADLE, ArtifactCoordinatesAttributes.GROUP_ID); } @Test - public void getSetArtifactIdMavenTest() { + void getSetArtifactIdMavenTest() { testArtifactCoordinatesAttributes(CreateCloseUtils.NewProjectType.MAVEN, ArtifactCoordinatesAttributes.ARTIFACT_ID); } @Test - public void getSetArtifactIdGradleTest() { + void getSetArtifactIdGradleTest() { testArtifactCoordinatesAttributes(CreateCloseUtils.NewProjectType.GRADLE, ArtifactCoordinatesAttributes.ARTIFACT_ID); } @Test - public void getSetVersionMavenTest() { + void getSetVersionMavenTest() { testArtifactCoordinatesAttributes(CreateCloseUtils.NewProjectType.MAVEN, ArtifactCoordinatesAttributes.VERSION); } @Test - public void getSetVersionGradleTest() { + void getSetVersionGradleTest() { testArtifactCoordinatesAttributes(CreateCloseUtils.NewProjectType.GRADLE, ArtifactCoordinatesAttributes.VERSION); } @Test @EnabledIfSystemProperty(named = "uitestlib.idea.version", matches = "2020.|2021.") - public void toggleFromTemplateTest() { + void toggleFromTemplateTest() { newProjectFirstPage.selectNewProjectType(CreateCloseUtils.NewProjectType.PLAIN_JAVA.toString()); newProjectDialogWizard.next(); JavaNewProjectSecondPage javaNewProjectSecondPage = newProjectDialogWizard.find(JavaNewProjectSecondPage.class, Duration.ofSeconds(10)); @@ -278,7 +278,7 @@ public void toggleFromTemplateTest() { @Test @EnabledIfSystemProperty(named = "uitestlib.idea.version", matches = "2020.|2021.") - public void previousButtonTest() { + void previousButtonTest() { newProjectFirstPage.selectNewProjectType(CreateCloseUtils.NewProjectType.PLAIN_JAVA.toString()); newProjectFirstPage.setProjectSdkIfAvailable("11"); assertThrows(UITestException.class, () -> @@ -296,7 +296,7 @@ public void previousButtonTest() { @Test @EnabledIfSystemProperty(named = "uitestlib.idea.version", matches = "2020.|2021.") - public void nextButtonTest() { + void nextButtonTest() { newProjectFirstPage.selectNewProjectType(CreateCloseUtils.NewProjectType.PLAIN_JAVA.toString()); newProjectFirstPage.setProjectSdkIfAvailable("11"); newProjectDialogWizard.next(); @@ -308,7 +308,7 @@ public void nextButtonTest() { } @Test - public void finishButtonTest() { + void finishButtonTest() { if (UITestRunner.getIdeaVersionInt() < 20221) { newProjectFirstPage.selectNewProjectType(CreateCloseUtils.NewProjectType.PLAIN_JAVA.toString()); newProjectFirstPage.setProjectSdkIfAvailable("17"); @@ -326,13 +326,13 @@ public void finishButtonTest() { } @Test - public void cancelButtonTest() { + void cancelButtonTest() { newProjectDialogWizard.cancel(); remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10)); } @Test - public void setProjectSdkIfAvailableTest() { + void setProjectSdkIfAvailableTest() { if (ideaVersionInt >= 20242 && remoteRobot.isWin()) { newProjectFirstPage.setProjectSdkIfAvailable("Download"); try { @@ -357,7 +357,7 @@ private void setProjectSDKVersion(String version) { } @Test - public void selectNewProjectTypeTest() { + void selectNewProjectTypeTest() { newProjectFirstPage.selectNewProjectType("Empty Project"); boolean isEmptyProjectPageDisplayed; if (ideaVersionInt >= 20231) { // For IntelliJ IDEA version 2023.1 and newer @@ -394,7 +394,7 @@ private void selectJavaNewProjectType() { } @Test - public void createEmptyProjectTest() { + void createEmptyProjectTest() { cleanUp(); String projectName = "empty-test-project"; CreateCloseUtils.createEmptyProject(remoteRobot, projectName); diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/settings/SettingsDialogTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/settings/SettingsDialogTest.java index 6c928c78..1bd38ff9 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/settings/SettingsDialogTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/settings/SettingsDialogTest.java @@ -44,25 +44,25 @@ class SettingsDialogTest extends LibraryTestBase { private static final String NOTIFICATIONS = "Notifications"; @BeforeAll - public static void openSettingsDialog() { + static void openSettingsDialog() { flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10)); flatWelcomeFrame.openSettingsDialog(); } @AfterAll - public static void closeSettingsDialog() { + static void closeSettingsDialog() { remoteRobot.find(SettingsDialog.class, Duration.ofSeconds(5)).cancel(); } @BeforeEach - public void prepareSettingsDialogFixture() { + void prepareSettingsDialogFixture() { if (settingsDialog == null) { settingsDialog = remoteRobot.find(SettingsDialog.class, Duration.ofSeconds(5)); } } @AfterEach - public void reopenSettingsDialogIfNeeded() { + void reopenSettingsDialogIfNeeded() { try { remoteRobot.find(SettingsDialog.class, Duration.ofSeconds(5)); } catch (WaitForConditionTimeoutException e) { @@ -72,7 +72,7 @@ public void reopenSettingsDialogIfNeeded() { } @Test - public void navigateToTest() { + void navigateToTest() { settingsDialog.navigateTo(APPEARANCE_AND_BEHAVIOR, NOTIFICATIONS); try { waitFor(Duration.ofSeconds(10), Duration.ofMillis(250), "The 'Notifications' settings page is not available.", () -> isSettingsPageLoaded(NOTIFICATIONS)); @@ -91,17 +91,17 @@ public void navigateToTest() { } @Test - public void settingsTreeTest() { + void settingsTreeTest() { JTreeFixture settingsTree = settingsDialog.settingsTree(); assertTrue(settingsTree.hasText(APPEARANCE_AND_BEHAVIOR), "The Settings tree does not contain the 'Appearance & Behavior' item."); } @Test - public void okTest() { + void okTest() { settingsDialog.ok(); - + Duration timeout = Duration.ofSeconds(5); try { - remoteRobot.find(SettingsDialog.class, Duration.ofSeconds(5)); + remoteRobot.find(SettingsDialog.class, timeout); fail("The 'Settings' dialog should be closed but is not."); } catch (WaitForConditionTimeoutException e) { LOGGER.log(Level.INFO, e.getMessage(), e); @@ -109,7 +109,7 @@ public void okTest() { } @Test - public void applyTest() { + void applyTest() { settingsDialog = remoteRobot.find(SettingsDialog.class, Duration.ofSeconds(5)); settingsDialog.navigateTo(APPEARANCE_AND_BEHAVIOR, NOTIFICATIONS); JCheckboxFixture balloonNotificationsCheckbox = settingsDialog.checkBox("Display balloon notifications", true); @@ -120,11 +120,11 @@ public void applyTest() { } @Test - public void cancelTest() { + void cancelTest() { settingsDialog.cancel(); - + Duration timeout = Duration.ofSeconds(5); try { - remoteRobot.find(SettingsDialog.class, Duration.ofSeconds(5)); + remoteRobot.find(SettingsDialog.class, timeout); fail("The 'Settings' dialog should be closed but is not."); } catch (WaitForConditionTimeoutException e) { LOGGER.log(Level.INFO, e.getMessage(), e); diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/settings/pages/NotificationsPageTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/settings/pages/NotificationsPageTest.java index 76ca4357..502531cb 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/settings/pages/NotificationsPageTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/settings/pages/NotificationsPageTest.java @@ -22,6 +22,7 @@ import java.time.Duration; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; /** @@ -36,7 +37,7 @@ class NotificationsPageTest extends LibraryTestBase { private boolean systemNotificationsCheckBox; @BeforeAll - public static void openSettingsDialog() { + static void openSettingsDialog() { FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10)); flatWelcomeFrame.openSettingsDialog(); settingsDialog = remoteRobot.find(SettingsDialog.class, Duration.ofSeconds(5)); @@ -45,24 +46,24 @@ public static void openSettingsDialog() { } @AfterAll - public static void closeSettingsDialog() { + static void closeSettingsDialog() { settingsDialog.cancel(); } @BeforeEach - public void backupSettings() { + void backupSettings() { balloonNotificationsCheckBox = notificationsPage.displayBalloonNotificationsCheckBox().isSelected(); systemNotificationsCheckBox = notificationsPage.displaySystemNotificationsCheckBox().isSelected(); } @AfterEach - public void restoreSettings() { + void restoreSettings() { notificationsPage.displayBalloonNotificationsCheckBox().setValue(balloonNotificationsCheckBox); notificationsPage.displaySystemNotificationsCheckBox().setValue(systemNotificationsCheckBox); } @Test - public void toggleNotificationsTest() { + void toggleNotificationsTest() { notificationsPage.displayBalloonNotificationsCheckBox().setValue(true); notificationsPage.displaySystemNotificationsCheckBox().setValue(true); boolean balloonNotificationsEnabled = notificationsPage.displayBalloonNotificationsCheckBox().isSelected(); @@ -76,40 +77,40 @@ public void toggleNotificationsTest() { } @Test - public void toggleBalloonNotificationsTest() { + void toggleBalloonNotificationsTest() { notificationsPage.displayBalloonNotificationsCheckBox().setValue(true); notificationsPage.toggleBalloonNotifications(false); boolean balloonNotificationsEnabled = notificationsPage.displayBalloonNotificationsCheckBox().isSelected(); - assertTrue(!balloonNotificationsEnabled, "The 'Balloon Notifications' checkbox should be unchecked."); + assertFalse(balloonNotificationsEnabled, "The 'Balloon Notifications' checkbox should be unchecked."); } @Test - public void toggleSystemNotificationsTest() { + void toggleSystemNotificationsTest() { notificationsPage.displaySystemNotificationsCheckBox().setValue(true); notificationsPage.toggleSystemNotifications(false); boolean systemNotificationsEnabled = notificationsPage.displaySystemNotificationsCheckBox().isSelected(); - assertTrue(!systemNotificationsEnabled, "The 'System Notifications' checkbox should be unchecked."); + assertFalse(systemNotificationsEnabled, "The 'System Notifications' checkbox should be unchecked."); } @Test - public void displayBalloonNotificationsCheckBoxTest() { + void displayBalloonNotificationsCheckBoxTest() { notificationsPage.displayBalloonNotificationsCheckBox().setValue(true); boolean balloonNotificationsEnabled = notificationsPage.displayBalloonNotificationsCheckBox().isSelected(); assertTrue(balloonNotificationsEnabled, "The 'Balloon Notifications' checkbox should be checked."); notificationsPage.displayBalloonNotificationsCheckBox().setValue(false); balloonNotificationsEnabled = notificationsPage.displayBalloonNotificationsCheckBox().isSelected(); - assertTrue(!balloonNotificationsEnabled, "The 'Balloon Notifications' checkbox should be unchecked."); + assertFalse(balloonNotificationsEnabled, "The 'Balloon Notifications' checkbox should be unchecked."); } @Test - public void displaySystemNotificationsCheckBoxTest() { + void displaySystemNotificationsCheckBoxTest() { notificationsPage.displaySystemNotificationsCheckBox().setValue(true); boolean systemNotificationsEnabled = notificationsPage.displaySystemNotificationsCheckBox().isSelected(); assertTrue(systemNotificationsEnabled, "The 'System Notifications' checkbox should be checked."); notificationsPage.displaySystemNotificationsCheckBox().setValue(false); systemNotificationsEnabled = notificationsPage.displaySystemNotificationsCheckBox().isSelected(); - assertTrue(!systemNotificationsEnabled, "The 'System Notifications' checkbox should be unchecked."); + assertFalse(systemNotificationsEnabled, "The 'System Notifications' checkbox should be unchecked."); } } \ No newline at end of file diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/idestatusbar/IdeStatusBarTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/idestatusbar/IdeStatusBarTest.java index 671dd98d..4517ed89 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/idestatusbar/IdeStatusBarTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/idestatusbar/IdeStatusBarTest.java @@ -46,7 +46,7 @@ private static kotlin.Pair isProgressbarWithLabelVisible( } @BeforeEach - public void prepareProject() { + void prepareProject() { NewProjectDialogWizard newProjectDialogWizard = CreateCloseUtils.openNewProjectDialogFromWelcomeDialog(remoteRobot); NewProjectFirstPage newProjectFirstPage = newProjectDialogWizard.find(NewProjectFirstPage.class, Duration.ofSeconds(10)); @@ -68,12 +68,12 @@ public void prepareProject() { } @AfterEach - public void closeCurrentProject() { + void closeCurrentProject() { CreateCloseUtils.closeProject(remoteRobot); } @Test - public void progressBarTest() { + void progressBarTest() { IdeStatusBar ideStatusBar = waitFor(Duration.ofSeconds(60), Duration.ofSeconds(1), "Wait for the appearance of progress bar in the IDE status bar.", "The progress bar in status bar did not appear in 60 seconds.", IdeStatusBarTest::isProgressbarWithLabelVisible); ideStatusBar.waitUntilProjectImportIsComplete(); MainIdeWindow mainIdeWindow = remoteRobot.find(MainIdeWindow.class, Duration.ofSeconds(5)); diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/menubar/MenuBarTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/menubar/MenuBarTest.java index ddde4e49..61332516 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/menubar/MenuBarTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/menubar/MenuBarTest.java @@ -38,20 +38,18 @@ class MenuBarTest extends LibraryTestBase { private static final String PROJECT_NAME = "project_view_tree_java_project"; - private static ProjectExplorer projectExplorer; - @BeforeAll - public static void prepareProject() { + static void prepareProject() { CreateCloseUtils.createNewProject(remoteRobot, PROJECT_NAME, CreateCloseUtils.NewProjectType.PLAIN_JAVA); } @AfterAll - public static void closeCurrentProject() { + static void closeCurrentProject() { CreateCloseUtils.closeProject(remoteRobot); } @Test - public void openTipDialogUsingMenuBarTest() { + void openTipDialogUsingMenuBarTest() { if (remoteRobot.isWin() || remoteRobot.isLinux()) { new MenuBar(remoteRobot).navigateTo("Help", "Tip of the Day"); assertTrue(isTipDialogVisible(remoteRobot), "The 'Tip of the Day' dialog should be visible but is not"); @@ -60,7 +58,7 @@ public void openTipDialogUsingMenuBarTest() { } @Test - public void closeAndReopenProjectTest() { + void closeAndReopenProjectTest() { CreateCloseUtils.closeProject(remoteRobot); CreateCloseUtils.openProjectFromWelcomeDialog(remoteRobot, PROJECT_NAME); @@ -71,7 +69,7 @@ public void closeAndReopenProjectTest() { toolWinPane = remoteRobot.find(ToolWindowsPane.class, Duration.ofSeconds(10)); } toolWinPane.openProjectExplorer(); - projectExplorer = toolWinPane.find(ProjectExplorer.class, Duration.ofSeconds(10)); + ProjectExplorer projectExplorer = toolWinPane.find(ProjectExplorer.class, Duration.ofSeconds(10)); assertTrue(projectExplorer.isItemPresent(PROJECT_NAME), "The project should be back open, but it is not"); } diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/BuildViewTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/BuildViewTest.java index 7ed84c84..9df92e4a 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/BuildViewTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/BuildViewTest.java @@ -36,7 +36,7 @@ class BuildViewTest extends LibraryTestBase { private static AbstractToolWinPane toolWinPane; @BeforeAll - public static void prepareProject() { + static void prepareProject() { CreateCloseUtils.createNewProject(remoteRobot, PROJECT_NAME, CreateCloseUtils.NewProjectType.MAVEN); if (UITestRunner.getIdeaVersionInt() >= 20221) { toolWinPane = remoteRobot.find(ToolWindowPane.class, Duration.ofSeconds(10)); @@ -48,12 +48,12 @@ public static void prepareProject() { } @AfterAll - public static void closeCurrentProject() { + static void closeCurrentProject() { CreateCloseUtils.closeProject(remoteRobot); } @Test - public void waitForSuccessfulBuildTest() { + void waitForSuccessfulBuildTest() { BuildView buildView = toolWinPane.find(BuildView.class, Duration.ofSeconds(10)); buildView.waitUntilBuildHasFinished(); assertTrue(buildView.isBuildSuccessful(), "The build should be successful but is not."); diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/ProjectExplorerTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/ProjectExplorerTest.java index 03a73f52..353003fc 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/ProjectExplorerTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/ProjectExplorerTest.java @@ -25,6 +25,7 @@ import com.redhat.devtools.intellij.commonuitest.utils.project.CreateCloseUtils; import com.redhat.devtools.intellij.commonuitest.utils.steps.SharedSteps; import com.redhat.devtools.intellij.commonuitest.utils.texttranformation.TextUtils; +import org.intellij.lang.annotations.Language; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeAll; @@ -48,7 +49,7 @@ class ProjectExplorerTest extends LibraryTestBase { private final Keyboard keyboard = new Keyboard(remoteRobot); @BeforeAll - public static void prepareProject() { + static void prepareProject() { CreateCloseUtils.createNewProject(remoteRobot, PROJECT_NAME, CreateCloseUtils.NewProjectType.PLAIN_JAVA); AbstractToolWinPane toolWinPane; if (UITestRunner.getIdeaVersionInt() >= 20221) { @@ -61,26 +62,26 @@ public static void prepareProject() { } @AfterAll - public static void closeCurrentProject() { + static void closeCurrentProject() { CreateCloseUtils.closeProject(remoteRobot); } @AfterEach - public void hideAllPopups() { + void hideAllPopups() { keyboard.escape(); } @Test - public void isItemPresentTest() { + void isItemPresentTest() { boolean isItemPresent = projectExplorer.isItemPresent(PROJECT_NAME, "src", "Main"); assertTrue(isItemPresent, "The file 'Main' should be present in the project on location 'src/Main' but is not."); } @Test - public void openFileTest() { + void openFileTest() { projectExplorer.openFile(PROJECT_NAME, ".gitignore"); if (ideaVersionInt >= 20231) { // Code for IJ 2023.1+ - String projectLabelXpath = "//div[@accessiblename='.gitignore' and @class='EditorTabLabel']//div[@class='ActionPanel']"; + @Language("XPath") String projectLabelXpath = "//div[@accessiblename='.gitignore' and @class='EditorTabLabel']//div[@class='ActionPanel']"; try { // Verify file is opened by finding its tab in the editor remoteRobot.find(ComponentFixture.class, byXpath(projectLabelXpath)); } catch (Exception e) { @@ -96,7 +97,7 @@ public void openFileTest() { } @Test - public void openContextMenuOnTest() { + void openContextMenuOnTest() { try { JPopupMenuFixture contextMenu = projectExplorer.openContextMenuOn("Scratches and Consoles"); assertTrue(contextMenu.hasText("New"), "The context menu on 'Scratches and Consoles' item should be opened but is not."); @@ -106,7 +107,7 @@ public void openContextMenuOnTest() { } @Test - public void openViewsPopupTest() { + void openViewsPopupTest() { try { JPopupMenuFixture contextMenu = projectExplorer.openViewsPopup(); assertTrue(contextMenu.hasText("Packages"), "The View popup menu should be opened but is not."); @@ -116,7 +117,7 @@ public void openViewsPopupTest() { } @Test - public void selectOpenedFileTest() { + void selectOpenedFileTest() { projectExplorer.expandAll(); projectExplorer.openFile(PROJECT_NAME, "src", "Main"); projectExplorer.projectViewTree().clickRow(0); @@ -130,7 +131,7 @@ public void selectOpenedFileTest() { } @Test - public void expandAllTest() { + void expandAllTest() { projectExplorer.collapseAll(); int itemsInTreeBeforeExpanding = projectExplorer.projectViewTree().collectRows().size(); projectExplorer.projectViewTree().clickRow(0); // Newer versions expands selected subtree (not all rows) @@ -140,7 +141,7 @@ public void expandAllTest() { } @Test - public void collapseAllTest() { + void collapseAllTest() { projectExplorer.projectViewTree().expand(PROJECT_NAME); int itemsInTreeBeforeCollapsing = projectExplorer.projectViewTree().collectRows().size(); projectExplorer.collapseAll(); @@ -149,7 +150,7 @@ public void collapseAllTest() { } @Test - public void openSettingsPopupTest() { + void openSettingsPopupTest() { try { JPopupMenuFixture contextMenu = projectExplorer.openSettingsPopup(); assertTrue(contextMenu.hasText("Help"), "The Settings popup menu should be opened but is not."); diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/ToolWindowsPaneGradleTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/ToolWindowsPaneGradleTest.java index 2c503dc8..0ed6c4b7 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/ToolWindowsPaneGradleTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/ToolWindowsPaneGradleTest.java @@ -34,17 +34,17 @@ class ToolWindowsPaneGradleTest extends LibraryTestBase { private AbstractToolWinPane toolWinPane; @BeforeAll - public static void prepareProject() { + static void prepareProject() { CreateCloseUtils.createNewProject(remoteRobot, PROJECT_NAME, CreateCloseUtils.NewProjectType.GRADLE); } @AfterAll - public static void closeCurrentProject() { + static void closeCurrentProject() { CreateCloseUtils.closeProject(remoteRobot); } @BeforeEach - public void createToolWindowsPaneFixture() { + void createToolWindowsPaneFixture() { if (UITestRunner.getIdeaVersionInt() >= 20221) { toolWinPane = remoteRobot.find(ToolWindowPane.class, Duration.ofSeconds(10)); } else { @@ -53,7 +53,7 @@ public void createToolWindowsPaneFixture() { } @Test - public void gradleBuildTest() { + void gradleBuildTest() { toolWinPane.openGradleBuildToolPane(); GradleBuildToolPane gradleBuildToolPane = toolWinPane.find(GradleBuildToolPane.class, Duration.ofSeconds(10)); gradleBuildToolPane.buildProject(); diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/ToolWindowsPaneMavenTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/ToolWindowsPaneMavenTest.java index 6364f45c..08e1767b 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/ToolWindowsPaneMavenTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/ToolWindowsPaneMavenTest.java @@ -34,17 +34,17 @@ class ToolWindowsPaneMavenTest extends LibraryTestBase { private AbstractToolWinPane toolWinPane; @BeforeAll - public static void prepareProject() { + static void prepareProject() { CreateCloseUtils.createNewProject(remoteRobot, PROJECT_NAME, CreateCloseUtils.NewProjectType.MAVEN); } @AfterAll - public static void closeCurrentProject() { + static void closeCurrentProject() { CreateCloseUtils.closeProject(remoteRobot); } @BeforeEach - public void createToolWindowsPaneFixture() { + void createToolWindowsPaneFixture() { if (UITestRunner.getIdeaVersionInt() >= 20221) { toolWinPane = remoteRobot.find(ToolWindowPane.class, Duration.ofSeconds(10)); } else { @@ -53,7 +53,7 @@ public void createToolWindowsPaneFixture() { } @Test - public void mavenBuildTest() { + void mavenBuildTest() { toolWinPane.openMavenBuildToolPane(); MavenBuildToolPane mavenBuildToolPane = toolWinPane.find(MavenBuildToolPane.class, Duration.ofSeconds(10)); mavenBuildToolPane.buildProject("install"); diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/buildtoolpane/GradleBuildToolPaneTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/buildtoolpane/GradleBuildToolPaneTest.java index 95ba5efd..a4f09807 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/buildtoolpane/GradleBuildToolPaneTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/buildtoolpane/GradleBuildToolPaneTest.java @@ -37,7 +37,7 @@ class GradleBuildToolPaneTest extends LibraryTestBase { private static GradleBuildToolPane gradleBuildToolPane; @BeforeAll - public static void prepareProject() { + static void prepareProject() { CreateCloseUtils.createNewProject(remoteRobot, PROJECT_NAME, CreateCloseUtils.NewProjectType.GRADLE); if (UITestRunner.getIdeaVersionInt() >= 20221) { toolWinPane = remoteRobot.find(ToolWindowPane.class, Duration.ofSeconds(10)); @@ -49,24 +49,24 @@ public static void prepareProject() { } @AfterAll - public static void closeCurrentProject() { + static void closeCurrentProject() { CreateCloseUtils.closeProject(remoteRobot); } @Test - public void buildProjectTest() { + void buildProjectTest() { gradleBuildToolPane.buildProject(); boolean isBuildSuccessful = toolWinPane.find(BuildView.class, Duration.ofSeconds(10)).isBuildSuccessful(); assertTrue(isBuildSuccessful, "The build should be successful but is not."); } @Test - public void reloadAllGradleProjects() { + void reloadAllGradleProjects() { gradleBuildToolPane.reloadAllGradleProjects(); } @Test - public void expandAll() { + void expandAll() { gradleBuildToolPane.collapseAll(); int itemsCountBeforeExpanding = gradleBuildToolPane.gradleTaskTree().collectRows().size(); gradleBuildToolPane.expandAll(); @@ -75,7 +75,7 @@ public void expandAll() { } @Test - public void collapseAll() { + void collapseAll() { gradleBuildToolPane.gradleTaskTree().expandAll(); int itemsCountBeforeCollapsing = gradleBuildToolPane.gradleTaskTree().collectRows().size(); gradleBuildToolPane.collapseAll(); diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/buildtoolpane/MavenBuildToolPaneTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/buildtoolpane/MavenBuildToolPaneTest.java index 06eb874d..9d3a8425 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/buildtoolpane/MavenBuildToolPaneTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/buildtoolpane/MavenBuildToolPaneTest.java @@ -37,7 +37,7 @@ class MavenBuildToolPaneTest extends LibraryTestBase { private static MavenBuildToolPane mavenBuildToolPane; @BeforeAll - public static void prepareProject() { + static void prepareProject() { CreateCloseUtils.createNewProject(remoteRobot, PROJECT_NAME, CreateCloseUtils.NewProjectType.MAVEN); if (UITestRunner.getIdeaVersionInt() >= 20221) { toolWinPane = remoteRobot.find(ToolWindowPane.class, Duration.ofSeconds(10)); @@ -49,24 +49,24 @@ public static void prepareProject() { } @AfterAll - public static void closeCurrentProject() { + static void closeCurrentProject() { CreateCloseUtils.closeProject(remoteRobot); } @Test - public void buildProjectTest() { + void buildProjectTest() { mavenBuildToolPane.buildProject("install"); boolean isBuildSuccessful = toolWinPane.find(BuildView.class, Duration.ofSeconds(10)).isBuildSuccessful(); assertTrue(isBuildSuccessful, "The build should be successful but is not."); } @Test - public void reloadAllMavenProjectsTest() { + void reloadAllMavenProjectsTest() { mavenBuildToolPane.reloadAllMavenProjects(); } @Test - public void collapseAllTest() { + void collapseAllTest() { mavenBuildToolPane.mavenTargetTree().expandAll(); int itemsCountBeforeCollapsing = mavenBuildToolPane.mavenTargetTree().collectRows().size(); mavenBuildToolPane.collapseAll(); diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/AbstractToolWinPane.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/AbstractToolWinPane.java index 550d7bec..b663b123 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/AbstractToolWinPane.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/AbstractToolWinPane.java @@ -58,12 +58,12 @@ protected static boolean isPaneOpened(Class fi protected void closePane(String label, Class fixtureClass) { if (isPaneOpened(fixtureClass)) { - clickOnStripeButton(label, true); + clickOnStripeButton(label); } } - protected void clickOnStripeButton(String label, boolean isPaneOpened) { - waitFor(Duration.ofSeconds(30), Duration.ofSeconds(2), "The '" + label + "' stripe button is not available.", () -> isStripeButtonAvailable(label, isPaneOpened)); + protected void clickOnStripeButton(String label) { + waitFor(Duration.ofSeconds(30), Duration.ofSeconds(2), "The '" + label + "' stripe button is not available.", () -> isStripeButtonAvailable(label)); if (UITestRunner.getIdeaVersionInt() >= 20242) { // For IntelliJ IDEA 2024.2 and newer if (isRightToolbarButton(label)) { @@ -74,11 +74,11 @@ protected void clickOnStripeButton(String label, boolean isPaneOpened) { toolWindowLeftToolbar.clickStripeButton(label); } } else { // For older versions - toolWinPane.stripeButton(label, isPaneOpened).click(); + toolWinPane.stripeButton(label, true).click(); } } - protected boolean isStripeButtonAvailable(String label, boolean isPaneOpened) { + protected boolean isStripeButtonAvailable(String label) { try { if (UITestRunner.getIdeaVersionInt() >= 20242) { // For IntelliJ IDEA 2024.2 and newer if (isRightToolbarButton(label)) { @@ -89,7 +89,7 @@ protected boolean isStripeButtonAvailable(String label, boolean isPaneOpened) { toolWindowLeftToolbar.findStripeButton(label); } } else { // For older versions - toolWinPane.stripeButton(label, isPaneOpened); + toolWinPane.stripeButton(label, true); } return true; } catch (WaitForConditionTimeoutException e) { diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/GradlePaneTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/GradlePaneTest.java index ed16d9bb..77e26dbf 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/GradlePaneTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/GradlePaneTest.java @@ -32,7 +32,7 @@ */ class GradlePaneTest extends AbstractToolWinPane { @BeforeAll - public static void prepareProject() { + static void prepareProject() { CreateCloseUtils.createNewProject(remoteRobot, GRADLE_PROJECT_NAME, CreateCloseUtils.NewProjectType.GRADLE); if (UITestRunner.getIdeaVersionInt() >= 20221) { toolWinPane = remoteRobot.find(ToolWindowPane.class, Duration.ofSeconds(10)); @@ -42,14 +42,14 @@ public static void prepareProject() { } @BeforeEach - public void preparePanes() { + void preparePanes() { if (isPaneOpened(GradleBuildToolPane.class)) { closePane(ButtonLabels.GRADLE_STRIPE_BUTTON_LABEL, GradleBuildToolPane.class); } } @Test - public void gradleBuildToolPaneOpenCloseTest() { + void gradleBuildToolPaneOpenCloseTest() { toolWinPane.openGradleBuildToolPane(); assertTrue(isPaneOpened(GradleBuildToolPane.class), "The 'Gradle Build Tool Pane' should be opened but is closed."); toolWinPane.closeGradleBuildToolPane(); diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/MavenPaneTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/MavenPaneTest.java index 06938f71..08b9c0b7 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/MavenPaneTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/MavenPaneTest.java @@ -32,7 +32,7 @@ */ class MavenPaneTest extends AbstractToolWinPane { @BeforeAll - public static void prepareProject() { + static void prepareProject() { CreateCloseUtils.createNewProject(remoteRobot, MAVEN_PROJECT_NAME, CreateCloseUtils.NewProjectType.MAVEN); if (UITestRunner.getIdeaVersionInt() >= 20221) { toolWinPane = remoteRobot.find(ToolWindowPane.class, Duration.ofSeconds(10)); @@ -42,14 +42,14 @@ public static void prepareProject() { } @BeforeEach - public void preparePanes() { + void preparePanes() { if (isPaneOpened(MavenBuildToolPane.class)) { closePane(ButtonLabels.MAVEN_STRIPE_BUTTON_LABEL, MavenBuildToolPane.class); } } @Test - public void mavenBuildToolPaneOpenCloseTest() { + void mavenBuildToolPaneOpenCloseTest() { toolWinPane.openMavenBuildToolPane(); assertTrue(isPaneOpened(MavenBuildToolPane.class), "The 'Maven Build Tool Pane' should be opened but is closed."); toolWinPane.closeMavenBuildToolPane(); diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/PEPaneAndStripeButtonTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/PEPaneAndStripeButtonTest.java index 24ec520c..a39ab0f1 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/PEPaneAndStripeButtonTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/toolwindowspane/openclose/PEPaneAndStripeButtonTest.java @@ -24,9 +24,9 @@ import java.time.Duration; -import static org.assertj.core.api.Fail.fail; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; /** * Project Explorer Tool Windows Pane test @@ -35,7 +35,7 @@ */ class PEPaneAndStripeButtonTest extends AbstractToolWinPane { @BeforeAll - public static void prepareProject() { + static void prepareProject() { CreateCloseUtils.createNewProject(remoteRobot, MAVEN_PROJECT_NAME, CreateCloseUtils.NewProjectType.MAVEN); if (UITestRunner.getIdeaVersionInt() >= 20221) { toolWinPane = remoteRobot.find(ToolWindowPane.class, Duration.ofSeconds(10)); @@ -45,14 +45,14 @@ public static void prepareProject() { } @BeforeEach - public void preparePanes() { + void preparePanes() { if (isPaneOpened(ProjectExplorer.class)) { closePane(ButtonLabels.PROJECT_STRIPE_BUTTON_LABEL, ProjectExplorer.class); } } @Test - public void projectExplorerPaneOpenCloseTest() { + void projectExplorerPaneOpenCloseTest() { toolWinPane.openProjectExplorer(); assertTrue(isPaneOpened(ProjectExplorer.class), "The 'Project Explorer' should be opened but is closed."); toolWinPane.closeProjectExplorer(); @@ -61,7 +61,7 @@ public void projectExplorerPaneOpenCloseTest() { @Test @DisabledIfSystemProperty(named = "uitestlib.idea.version", matches = "20242") - public void stripeButtonTest() { + void stripeButtonTest() { try { toolWinPane.stripeButton(ButtonLabels.MAVEN_STRIPE_BUTTON_LABEL, false); } catch (WaitForConditionTimeoutException e) { diff --git a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/utils/test/screenshot/ScreenshotUtilsTest.java b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/utils/test/screenshot/ScreenshotUtilsTest.java index a288e10f..2a0f2def 100644 --- a/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/utils/test/screenshot/ScreenshotUtilsTest.java +++ b/src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/utils/test/screenshot/ScreenshotUtilsTest.java @@ -32,7 +32,7 @@ */ class ScreenshotUtilsTest extends LibraryTestBase { @Test - public void takeScreenshotTest() { + void takeScreenshotTest() { remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10)); int numberOfScreenshotBefore = getNumberOfSavedScreenshot();