Skip to content

Commit 8bdfa90

Browse files
committed
chore: fix integration tests
Signed-off-by: Stephane Bouchet <[email protected]>
1 parent 487e71a commit 8bdfa90

File tree

19 files changed

+113
-60
lines changed

19 files changed

+113
-60
lines changed

src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/dialogs/FlatWelcomeFrame.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.redhat.devtools.intellij.commonuitest.UITestRunner;
1919
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.errors.IdeFatalErrorsDialog;
2020
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.information.TipDialog;
21+
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.NewProjectDialogWizard;
2122
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.settings.SettingsDialog;
2223
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.settings.pages.NotificationsPage;
2324
import com.redhat.devtools.intellij.commonuitest.utils.constants.ButtonLabels;
@@ -325,4 +326,30 @@ private void removeTopProjectFromRecentProjects() {
325326
}
326327
}
327328
}
329+
330+
/**
331+
* Open existing project from the Welcome Dialog
332+
*
333+
* @param remoteRobot reference to the RemoteRobot instance
334+
* @param projectName name of existing project
335+
*/
336+
public void openProjectFromWelcomeDialog(RemoteRobot remoteRobot, String projectName) {
337+
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
338+
flatWelcomeFrame.openProject(projectName);
339+
340+
CreateCloseUtils.waitAfterOpeningProject(remoteRobot);
341+
}
342+
343+
/**
344+
* Open 'New Project' dialog from 'Welcome to IntelliJ IDEA' dialog
345+
*
346+
* @param remoteRobot reference to the RemoteRobot instance
347+
* @return NewProjectDialogWizard fixture
348+
*/
349+
public NewProjectDialogWizard openNewProjectDialogFromWelcomeDialog(RemoteRobot remoteRobot) {
350+
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
351+
flatWelcomeFrame.switchToProjectsPage();
352+
flatWelcomeFrame.createNewProject();
353+
return remoteRobot.find(NewProjectDialogWizard.class, Duration.ofSeconds(10));
354+
}
328355
}

src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/dialogs/project/pages/NewProjectFirstPage.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ public void setProjectSdkIfAvailable(String targetSdkName) {
157157
CommonContainerFixture parentFixture = waitFor(Duration.ofSeconds(20), Duration.ofSeconds(2), "Wait for the 'Project SDK' list to finish loading all items.", "The project JDK list did not load all items in 20 seconds.", this::didProjectSdkListLoadAllItems);
158158
JPopupMenuFixture projectSdkList = parentFixture.jPopupMenus(byXpath(XPathDefinitions.HEAVY_WEIGHT_WINDOW)).get(0); // issue https://github.com/JetBrains/intellij-ui-test-robot/issues/104
159159
List<String> sdkItems = projectSdkList.jList().collectItems();
160-
System.out.println("Items" + sdkItems);
160+
System.out.println("Items: " + sdkItems);
161161
Map<String, String> foundItems = new HashMap<>();
162162
sdkItems.forEach(item ->
163163
Arrays.stream(item.split(" ")).filter(s ->
@@ -168,7 +168,7 @@ public void setProjectSdkIfAvailable(String targetSdkName) {
168168
System.out.println("About to click on "+label);
169169
projectSdkList.jList().clickItem(label, true);
170170
} else {
171-
System.out.println("No SDK found starting with"+targetSdkName);
171+
System.out.println("No SDK found starting with "+targetSdkName);
172172
ScreenshotUtils.takeScreenshot(remoteRobot);
173173
}
174174

src/main/java/com/redhat/devtools/intellij/commonuitest/utils/project/CreateCloseUtils.java

Lines changed: 6 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import com.intellij.remoterobot.fixtures.ComponentFixture;
1515
import com.redhat.devtools.intellij.commonuitest.UITestRunner;
1616
import com.redhat.devtools.intellij.commonuitest.exceptions.UITestException;
17-
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.FlatWelcomeFrame;
1817
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.information.CodeWithMeDialog;
1918
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.NewProjectDialogWizard;
2019
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.pages.AbstractNewProjectFinalPage;
@@ -50,8 +49,7 @@ public class CreateCloseUtils {
5049
* @param projectName name of new project
5150
* @param newProjectType type of new project
5251
*/
53-
public static void createNewProject(RemoteRobot remoteRobot, String projectName, NewProjectType newProjectType) {
54-
NewProjectDialogWizard newProjectDialogWizard = openNewProjectDialogFromWelcomeDialog(remoteRobot);
52+
public static void createNewProject(RemoteRobot remoteRobot, String projectName, NewProjectType newProjectType, NewProjectDialogWizard newProjectDialogWizard) {
5553
NewProjectFirstPage newProjectFirstPage = newProjectDialogWizard.find(NewProjectFirstPage.class, Duration.ofSeconds(10));
5654

5755
if (UITestRunner.getIdeaVersionInt() >= 20221) {
@@ -61,10 +59,12 @@ public static void createNewProject(RemoteRobot remoteRobot, String projectName,
6159
case PLAIN_JAVA:
6260
newProjectFirstPage.setBuildSystem("IntelliJ");
6361
break;
64-
case MAVEN:
65-
case GRADLE:
62+
case MAVEN, GRADLE:
6663
newProjectFirstPage.setBuildSystem(newProjectType.toString());
6764
break;
65+
case EMPTY_PROJECT:
66+
default:
67+
throw new IllegalStateException("Unexpected value: " + newProjectType);
6868
}
6969
} else {
7070
newProjectFirstPage.selectNewProjectType(newProjectType.toString());
@@ -98,8 +98,7 @@ public static void createNewProject(RemoteRobot remoteRobot, String projectName,
9898
* @param remoteRobot reference to the RemoteRobot instance
9999
* @param projectName name of new project
100100
*/
101-
public static void createEmptyProject(RemoteRobot remoteRobot, String projectName) {
102-
NewProjectDialogWizard newProjectDialogWizard = openNewProjectDialogFromWelcomeDialog(remoteRobot);
101+
public static void createEmptyProject(RemoteRobot remoteRobot, String projectName, NewProjectDialogWizard newProjectDialogWizard) {
103102
NewProjectFirstPage newProjectFirstPage = newProjectDialogWizard.find(NewProjectFirstPage.class, Duration.ofSeconds(10));
104103

105104
newProjectFirstPage.selectNewProjectType(NewProjectType.EMPTY_PROJECT.toString());
@@ -126,19 +125,6 @@ public static void waitAfterOpeningProject(RemoteRobot remoteRobot) {
126125
CodeWithMeDialog.closeCodeWithMePopupIfItAppears(remoteRobot);
127126
}
128127

129-
/**
130-
* Open 'New Project' dialog from 'Welcome to IntelliJ IDEA' dialog
131-
*
132-
* @param remoteRobot reference to the RemoteRobot instance
133-
* @return NewProjectDialogWizard fixture
134-
*/
135-
public static NewProjectDialogWizard openNewProjectDialogFromWelcomeDialog(RemoteRobot remoteRobot) {
136-
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
137-
flatWelcomeFrame.switchToProjectsPage();
138-
flatWelcomeFrame.createNewProject();
139-
return remoteRobot.find(NewProjectDialogWizard.class, Duration.ofSeconds(10));
140-
}
141-
142128
/**
143129
* Close currently opened project
144130
*
@@ -147,20 +133,6 @@ public static NewProjectDialogWizard openNewProjectDialogFromWelcomeDialog(Remot
147133
public static void closeProject(RemoteRobot remoteRobot) {
148134
MainIdeWindow mainIdeWindow = remoteRobot.find(MainIdeWindow.class, Duration.ofSeconds(10));
149135
mainIdeWindow.closeProject();
150-
remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
151-
}
152-
153-
/**
154-
* Open existing project from the Welcome Dialog
155-
*
156-
* @param remoteRobot reference to the RemoteRobot instance
157-
* @param projectName name of existing project
158-
*/
159-
public static void openProjectFromWelcomeDialog(RemoteRobot remoteRobot, String projectName) {
160-
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
161-
flatWelcomeFrame.openProject(projectName);
162-
163-
waitAfterOpeningProject(remoteRobot);
164136
}
165137

166138
/**

src/main/java/com/redhat/devtools/intellij/commonuitest/utils/testextension/ScreenshotAfterTestFailExtension.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@ public class ScreenshotAfterTestFailExtension implements AfterTestExecutionCallb
4646
@Override
4747
public void afterTestExecution(ExtensionContext extensionContext) {
4848
RemoteRobot remoteRobot = UITestRunner.getRemoteRobot();
49-
if (remoteRobot == null) {
50-
LOGGER.log(Level.SEVERE, "Can't take a screenshot, remoteRobot is null!");
51-
return;
52-
}
5349
boolean testFailed = extensionContext.getExecutionException().isPresent();
5450
if (testFailed) {
51+
if (remoteRobot == null) {
52+
LOGGER.log(Level.SEVERE, "Can't take a screenshot, remoteRobot is null!");
53+
return;
54+
}
5555
step("Take a screenshot after a test has failed",
5656
() -> ScreenshotUtils.takeScreenshot(remoteRobot)
5757
);

src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/LibraryTestBase.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import com.intellij.remoterobot.RemoteRobot;
1414
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.FlatWelcomeFrame;
15+
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.NewProjectDialogWizard;
1516
import com.redhat.devtools.intellij.commonuitest.fixtures.mainidewindow.MainIdeWindow;
1617
import com.redhat.devtools.intellij.commonuitest.utils.project.CreateCloseUtils;
1718
import com.redhat.devtools.intellij.commonuitest.utils.runner.IntelliJVersion;
@@ -59,7 +60,9 @@ protected static void finishTestRun() {
5960
}
6061

6162
protected void prepareWorkspace(String projectName) {
62-
CreateCloseUtils.createNewProject(remoteRobot, projectName, CreateCloseUtils.NewProjectType.PLAIN_JAVA);
63+
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
64+
NewProjectDialogWizard newProjectDialogWizard = flatWelcomeFrame.openNewProjectDialogFromWelcomeDialog(remoteRobot);
65+
CreateCloseUtils.createNewProject(remoteRobot, projectName, CreateCloseUtils.NewProjectType.PLAIN_JAVA, newProjectDialogWizard);
6366
MainIdeWindow mainIdeWindow = remoteRobot.find(MainIdeWindow.class, Duration.ofSeconds(10));
6467
mainIdeWindow.closeProject();
6568
}

src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/information/CodeWithMeDialogTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import com.redhat.devtools.intellij.commonuitest.LibraryTestBase;
1414
import com.redhat.devtools.intellij.commonuitest.UITestRunner;
15+
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.FlatWelcomeFrame;
1516
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.information.CodeWithMeDialog;
1617
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.NewProjectDialogWizard;
1718
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.pages.AbstractNewProjectFinalPage;
@@ -26,7 +27,6 @@
2627
import java.time.Duration;
2728

2829
import static com.redhat.devtools.intellij.commonuitest.utils.project.CreateCloseUtils.getFinalPage;
29-
import static com.redhat.devtools.intellij.commonuitest.utils.project.CreateCloseUtils.openNewProjectDialogFromWelcomeDialog;
3030

3131
/**
3232
* Code With Me dialog test
@@ -40,7 +40,8 @@ class CodeWithMeDialogTest extends LibraryTestBase {
4040
@BeforeAll
4141
public static void prepareProject() {
4242
if (IDEA_VERSION_WITH_CWM_DIALOG_OPENED) {
43-
NewProjectDialogWizard newProjectDialogWizard = openNewProjectDialogFromWelcomeDialog(remoteRobot);
43+
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
44+
NewProjectDialogWizard newProjectDialogWizard = flatWelcomeFrame.openNewProjectDialogFromWelcomeDialog(remoteRobot);
4445
NewProjectFirstPage newProjectFirstPage = newProjectDialogWizard.find(NewProjectFirstPage.class, Duration.ofSeconds(10));
4546

4647
if (UITestRunner.getIdeaVersionInt() >= 20221) {

src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/information/ProjectStructureDialogTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
import com.intellij.remoterobot.fixtures.CommonContainerFixture;
1414
import com.intellij.remoterobot.utils.WaitForConditionTimeoutException;
1515
import com.redhat.devtools.intellij.commonuitest.LibraryTestBase;
16+
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.FlatWelcomeFrame;
1617
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.information.ProjectStructureDialog;
18+
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.NewProjectDialogWizard;
1719
import com.redhat.devtools.intellij.commonuitest.fixtures.mainidewindow.MainIdeWindow;
1820
import com.redhat.devtools.intellij.commonuitest.fixtures.mainidewindow.idestatusbar.IdeStatusBar;
1921
import com.redhat.devtools.intellij.commonuitest.utils.project.CreateCloseUtils;
@@ -35,7 +37,9 @@ public class ProjectStructureDialogTest extends LibraryTestBase {
3537

3638
@BeforeAll
3739
public static void prepareProject() {
38-
CreateCloseUtils.createNewProject(remoteRobot, PROJECT_NAME, CreateCloseUtils.NewProjectType.PLAIN_JAVA);
40+
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
41+
NewProjectDialogWizard newProjectDialogWizard = flatWelcomeFrame.openNewProjectDialogFromWelcomeDialog(remoteRobot);
42+
CreateCloseUtils.createNewProject(remoteRobot, PROJECT_NAME, CreateCloseUtils.NewProjectType.PLAIN_JAVA, newProjectDialogWizard);
3943
}
4044

4145
@AfterAll

src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/dialogs/project_manipulation/NewProjectDialogTest.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ public class NewProjectDialogTest extends LibraryTestBase {
6262

6363
@BeforeEach
6464
public void openNewProjectDialog() {
65-
newProjectDialogWizard = CreateCloseUtils.openNewProjectDialogFromWelcomeDialog(remoteRobot);
65+
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
66+
newProjectDialogWizard = flatWelcomeFrame.openNewProjectDialogFromWelcomeDialog(remoteRobot);
6667
newProjectFirstPage = newProjectDialogWizard.find(NewProjectFirstPage.class, Duration.ofSeconds(10));
6768
}
6869

@@ -391,15 +392,17 @@ private void selectJavaNewProjectType() {
391392
public void createEmptyProjectTest() {
392393
cleanUp();
393394
String projectName = "empty-test-project";
394-
CreateCloseUtils.createEmptyProject(remoteRobot, projectName);
395+
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
396+
newProjectDialogWizard = flatWelcomeFrame.openNewProjectDialogFromWelcomeDialog(remoteRobot);
397+
CreateCloseUtils.createEmptyProject(remoteRobot, projectName, newProjectDialogWizard);
395398
mainIdeWindow = remoteRobot.find(MainIdeWindow.class, Duration.ofSeconds(60));
396399
assertTrue(mainIdeWindow.isShowing(), "The Main IDE Window should be open after creating an empty project.");
397400

398401
mainIdeWindow.closeProject();
399402
mainIdeWindow = null;
400403

401404
// IntelliJ remembers the last chosen project language, for continuity with other tests select Java project
402-
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
405+
flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
403406
flatWelcomeFrame.clearWorkspace();
404407
flatWelcomeFrame.createNewProject();
405408
selectJavaNewProjectType();

src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/idestatusbar/IdeStatusBarTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.intellij.remoterobot.fixtures.dataExtractor.RemoteText;
1414
import com.redhat.devtools.intellij.commonuitest.LibraryTestBase;
1515
import com.redhat.devtools.intellij.commonuitest.UITestRunner;
16+
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.FlatWelcomeFrame;
1617
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.NewProjectDialogWizard;
1718
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.pages.MavenGradleNewProjectFinalPage;
1819
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.pages.NewProjectFirstPage;
@@ -41,12 +42,13 @@ private static kotlin.Pair<Boolean, IdeStatusBar> isProgressbarWithLabelVisible(
4142
IdeStatusBar ideStatusBar = remoteRobot.find(IdeStatusBar.class, Duration.ofSeconds(10));
4243
List<RemoteText> inlineProgressPanelContent = ideStatusBar.inlineProgressPanel().findAllText();
4344
String inlineProgressPanelText = TextUtils.listOfRemoteTextToString(inlineProgressPanelContent);
44-
return new kotlin.Pair<>(!inlineProgressPanelText.equals(""), ideStatusBar);
45+
return new kotlin.Pair<>(!inlineProgressPanelText.isEmpty(), ideStatusBar);
4546
}
4647

4748
@BeforeEach
4849
public void prepareProject() {
49-
NewProjectDialogWizard newProjectDialogWizard = CreateCloseUtils.openNewProjectDialogFromWelcomeDialog(remoteRobot);
50+
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
51+
NewProjectDialogWizard newProjectDialogWizard = flatWelcomeFrame.openNewProjectDialogFromWelcomeDialog(remoteRobot);
5052
NewProjectFirstPage newProjectFirstPage = newProjectDialogWizard.find(NewProjectFirstPage.class, Duration.ofSeconds(10));
5153

5254
if (UITestRunner.getIdeaVersionInt() >= 20221) {

src/test-project/src/test/java/com/redhat/devtools/intellij/commonuitest/fixtures/test/mainidewindow/menubar/MenuBarTest.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
import com.intellij.remoterobot.utils.WaitForConditionTimeoutException;
1616
import com.redhat.devtools.intellij.commonuitest.LibraryTestBase;
1717
import com.redhat.devtools.intellij.commonuitest.UITestRunner;
18+
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.FlatWelcomeFrame;
1819
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.information.TipDialog;
20+
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.NewProjectDialogWizard;
1921
import com.redhat.devtools.intellij.commonuitest.fixtures.mainidewindow.menubar.MenuBar;
2022
import com.redhat.devtools.intellij.commonuitest.fixtures.mainidewindow.toolwindowspane.AbstractToolWinPane;
2123
import com.redhat.devtools.intellij.commonuitest.fixtures.mainidewindow.toolwindowspane.ProjectExplorer;
@@ -44,7 +46,9 @@ class MenuBarTest extends LibraryTestBase {
4446

4547
@BeforeAll
4648
public static void prepareProject() {
47-
CreateCloseUtils.createNewProject(remoteRobot, PROJECT_NAME, CreateCloseUtils.NewProjectType.PLAIN_JAVA);
49+
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
50+
NewProjectDialogWizard newProjectDialogWizard = flatWelcomeFrame.openNewProjectDialogFromWelcomeDialog(remoteRobot);
51+
CreateCloseUtils.createNewProject(remoteRobot, PROJECT_NAME, CreateCloseUtils.NewProjectType.PLAIN_JAVA, newProjectDialogWizard);
4852
}
4953

5054
@AfterAll
@@ -64,7 +68,8 @@ public void openTipDialogUsingMenuBarTest() {
6468
@Test
6569
public void closeAndReopenProjectTest() {
6670
CreateCloseUtils.closeProject(remoteRobot);
67-
CreateCloseUtils.openProjectFromWelcomeDialog(remoteRobot, PROJECT_NAME);
71+
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
72+
flatWelcomeFrame.openProjectFromWelcomeDialog(remoteRobot, PROJECT_NAME);
6873

6974
AbstractToolWinPane toolWinPane;
7075
if (UITestRunner.getIdeaVersionInt() >= 20221) {

0 commit comments

Comments
 (0)