Skip to content

Commit 1c56bca

Browse files
committed
chore: fix integration tests
Signed-off-by: Stephane Bouchet <[email protected]>
1 parent 9c7daad commit 1c56bca

File tree

19 files changed

+92
-130
lines changed

19 files changed

+92
-130
lines changed

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

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import com.redhat.devtools.intellij.commonuitest.UITestRunner;
2828
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.errors.IdeFatalErrorsDialog;
2929
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.information.TipDialog;
30-
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.NewProjectDialogWizard;
3130
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.settings.SettingsDialog;
3231
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.settings.pages.NotificationsPage;
3332
import com.redhat.devtools.intellij.commonuitest.utils.constants.ButtonLabels;
@@ -215,7 +214,7 @@ public TipDialog openTipDialog() {
215214
} else {
216215
flatWelcomeFrame.findText(ButtonLabels.LEARN_INTELLIJ_IDEA_LABEL).click();
217216
}
218-
SharedSteps.createSharedSteps().waitForComponentByXpath(remoteRobot, 2, 1, byXpath(XPathDefinitions.TIP_DIALOG_2));
217+
SharedSteps.waitForComponentByXpath(remoteRobot, 2, 1, byXpath(XPathDefinitions.TIP_DIALOG_2));
219218
flatWelcomeFrame.findText(TIP_OF_THE_DAY).click();
220219
} else if (ideaVersion <= 20202) {
221220
clickOnLink("Get Help");
@@ -328,17 +327,4 @@ private void removeTopProjectFromRecentProjects() {
328327
}
329328
}
330329
}
331-
332-
/**
333-
* Open 'New Project' dialog from 'Welcome to IntelliJ IDEA' dialog
334-
*
335-
* @param remoteRobot reference to the RemoteRobot instance
336-
* @return NewProjectDialogWizard fixture
337-
*/
338-
public NewProjectDialogWizard openNewProjectDialogFromWelcomeDialog(RemoteRobot remoteRobot) {
339-
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
340-
flatWelcomeFrame.switchToProjectsPage();
341-
flatWelcomeFrame.createNewProject();
342-
return remoteRobot.find(NewProjectDialogWizard.class, Duration.ofSeconds(10));
343-
}
344330
}

src/main/java/com/redhat/devtools/intellij/commonuitest/fixtures/mainidewindow/MainIdeWindow.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,14 @@ public void closeProject() {
9191
* @param cmdToInvoke String representation of command which will be executed using the Search Everywhere popup
9292
*/
9393
public void invokeCmdUsingSearchEverywherePopup(String cmdToInvoke) {
94-
SearchEverywherePopup searchEverywherePopup = openSearchEverywherePopup("All");
94+
SearchEverywherePopup searchEverywherePopup = openSearchEverywherePopup();
9595
searchEverywherePopup.invokeCmd(cmdToInvoke);
9696
}
9797

98-
private SearchEverywherePopup openSearchEverywherePopup(String tab) {
98+
private SearchEverywherePopup openSearchEverywherePopup() {
9999
try {
100100
SearchEverywherePopup searchEverywherePopup = find(SearchEverywherePopup.class, Duration.ofSeconds(10));
101-
searchEverywherePopup.activateTab(tab);
101+
searchEverywherePopup.activateTab("All");
102102
return searchEverywherePopup;
103103
} catch (WaitForConditionTimeoutException e) {
104104
Keyboard keyboard = new Keyboard(remoteRobot);
@@ -108,7 +108,7 @@ private SearchEverywherePopup openSearchEverywherePopup(String tab) {
108108
keyboard.hotKey(KeyEvent.VK_CONTROL, KeyEvent.VK_N);
109109
}
110110
SearchEverywherePopup searchEverywherePopup = find(SearchEverywherePopup.class, Duration.ofSeconds(10));
111-
searchEverywherePopup.activateTab(tab);
111+
searchEverywherePopup.activateTab("All");
112112
return searchEverywherePopup;
113113
}
114114
}

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

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
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;
1718
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.information.CodeWithMeDialog;
1819
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.NewProjectDialogWizard;
1920
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.pages.AbstractNewProjectFinalPage;
@@ -45,7 +46,8 @@ public class CreateCloseUtils {
4546
* @param projectName name of new project
4647
* @param newProjectType type of new project
4748
*/
48-
public static void createNewProject(RemoteRobot remoteRobot, String projectName, NewProjectType newProjectType, NewProjectDialogWizard newProjectDialogWizard) {
49+
public static void createNewProject(RemoteRobot remoteRobot, String projectName, NewProjectType newProjectType) {
50+
NewProjectDialogWizard newProjectDialogWizard = openNewProjectDialogFromWelcomeDialog(remoteRobot);
4951
NewProjectFirstPage newProjectFirstPage = newProjectDialogWizard.find(NewProjectFirstPage.class, Duration.ofSeconds(10));
5052

5153
if (UITestRunner.getIdeaVersionInt() >= 20221) {
@@ -94,7 +96,8 @@ public static void createNewProject(RemoteRobot remoteRobot, String projectName,
9496
* @param remoteRobot reference to the RemoteRobot instance
9597
* @param projectName name of new project
9698
*/
97-
public static void createEmptyProject(RemoteRobot remoteRobot, String projectName, NewProjectDialogWizard newProjectDialogWizard) {
99+
public static void createEmptyProject(RemoteRobot remoteRobot, String projectName) {
100+
NewProjectDialogWizard newProjectDialogWizard = openNewProjectDialogFromWelcomeDialog(remoteRobot);
98101
NewProjectFirstPage newProjectFirstPage = newProjectDialogWizard.find(NewProjectFirstPage.class, Duration.ofSeconds(10));
99102

100103
newProjectFirstPage.selectNewProjectType(NewProjectType.EMPTY_PROJECT.toString());
@@ -121,6 +124,43 @@ public static void waitAfterOpeningProject(RemoteRobot remoteRobot) {
121124
CodeWithMeDialog.closeCodeWithMePopupIfItAppears(remoteRobot);
122125
}
123126

127+
/**
128+
* Open 'New Project' dialog from 'Welcome to IntelliJ IDEA' dialog
129+
*
130+
* @param remoteRobot reference to the RemoteRobot instance
131+
* @return NewProjectDialogWizard fixture
132+
*/
133+
public static NewProjectDialogWizard openNewProjectDialogFromWelcomeDialog(RemoteRobot remoteRobot) {
134+
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
135+
flatWelcomeFrame.switchToProjectsPage();
136+
flatWelcomeFrame.createNewProject();
137+
return remoteRobot.find(NewProjectDialogWizard.class, Duration.ofSeconds(10));
138+
}
139+
140+
/**
141+
* Close currently opened project
142+
*
143+
* @param remoteRobot reference to the RemoteRobot instance
144+
*/
145+
public static void closeProject(RemoteRobot remoteRobot) {
146+
MainIdeWindow mainIdeWindow = remoteRobot.find(MainIdeWindow.class, Duration.ofSeconds(10));
147+
mainIdeWindow.closeProject();
148+
remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
149+
}
150+
151+
/**
152+
* Open existing project from the Welcome Dialog
153+
*
154+
* @param remoteRobot reference to the RemoteRobot instance
155+
* @param projectName name of existing project
156+
*/
157+
public static void openProjectFromWelcomeDialog(RemoteRobot remoteRobot, String projectName) {
158+
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
159+
flatWelcomeFrame.openProject(projectName);
160+
161+
waitAfterOpeningProject(remoteRobot);
162+
}
163+
124164
/**
125165
* Get appropriate final page instance
126166
*

src/main/java/com/redhat/devtools/intellij/commonuitest/utils/steps/SharedSteps.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,9 @@ private SharedSteps() {}
3131
* @param interval The interval at which to check the component's visibility, in seconds.
3232
* @param xpath The XPath locator used to find the component within the UI hierarchy.
3333
*/
34-
public void waitForComponentByXpath(RemoteRobot robot, int duration, int interval , Locator xpath) {
34+
public static void waitForComponentByXpath(RemoteRobot robot, int duration, int interval , Locator xpath) {
3535
waitFor(Duration.ofSeconds(duration), Duration.ofSeconds(interval), () -> robot.findAll(ComponentFixture.class, xpath)
3636
.stream()
3737
.anyMatch(ComponentFixture::isShowing));
3838
}
39-
40-
public static SharedSteps createSharedSteps() {
41-
return new SharedSteps();
42-
}
4339
}

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

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
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;
1615
import com.redhat.devtools.intellij.commonuitest.fixtures.mainidewindow.MainIdeWindow;
1716
import com.redhat.devtools.intellij.commonuitest.utils.project.CreateCloseUtils;
1817
import com.redhat.devtools.intellij.commonuitest.utils.runner.IntelliJVersion;
@@ -60,9 +59,7 @@ protected static void finishTestRun() {
6059
}
6160

6261
protected void prepareWorkspace(String projectName) {
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);
62+
CreateCloseUtils.createNewProject(remoteRobot, projectName, CreateCloseUtils.NewProjectType.PLAIN_JAVA);
6663
MainIdeWindow mainIdeWindow = remoteRobot.find(MainIdeWindow.class, Duration.ofSeconds(10));
6764
mainIdeWindow.closeProject();
6865
}

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
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;
1615
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.information.CodeWithMeDialog;
1716
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.NewProjectDialogWizard;
1817
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.pages.AbstractNewProjectFinalPage;
@@ -28,6 +27,7 @@
2827
import java.time.Duration;
2928

3029
import static com.redhat.devtools.intellij.commonuitest.utils.project.CreateCloseUtils.getFinalPage;
30+
import static com.redhat.devtools.intellij.commonuitest.utils.project.CreateCloseUtils.openNewProjectDialogFromWelcomeDialog;
3131

3232
/**
3333
* Code With Me dialog test
@@ -41,8 +41,7 @@ class CodeWithMeDialogTest extends LibraryTestBase {
4141
@BeforeAll
4242
public static void prepareProject() {
4343
if (IDEA_VERSION_WITH_CWM_DIALOG_OPENED) {
44-
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
45-
NewProjectDialogWizard newProjectDialogWizard = flatWelcomeFrame.openNewProjectDialogFromWelcomeDialog(remoteRobot);
44+
NewProjectDialogWizard newProjectDialogWizard = openNewProjectDialogFromWelcomeDialog(remoteRobot);
4645
NewProjectFirstPage newProjectFirstPage = newProjectDialogWizard.find(NewProjectFirstPage.class, Duration.ofSeconds(10));
4746

4847
if (UITestRunner.getIdeaVersionInt() >= 20221) {
@@ -74,7 +73,7 @@ public static void prepareProject() {
7473
@AfterAll
7574
public static void closeCurrentProject() {
7675
if (IDEA_VERSION_WITH_CWM_DIALOG_OPENED) {
77-
remoteRobot.find(MainIdeWindow.class, Duration.ofSeconds(10)).closeProject();
76+
CreateCloseUtils.closeProject(remoteRobot);
7877
}
7978
}
8079

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

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@
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;
1716
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.information.ProjectStructureDialog;
18-
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.NewProjectDialogWizard;
1917
import com.redhat.devtools.intellij.commonuitest.fixtures.mainidewindow.MainIdeWindow;
2018
import com.redhat.devtools.intellij.commonuitest.fixtures.mainidewindow.idestatusbar.IdeStatusBar;
2119
import com.redhat.devtools.intellij.commonuitest.utils.project.CreateCloseUtils;
@@ -25,6 +23,7 @@
2523

2624
import java.time.Duration;
2725

26+
import static org.junit.jupiter.api.Assertions.assertFalse;
2827
import static org.junit.jupiter.api.Assertions.assertTrue;
2928

3029
/**
@@ -37,45 +36,43 @@ public class ProjectStructureDialogTest extends LibraryTestBase {
3736

3837
@BeforeAll
3938
public static void prepareProject() {
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);
39+
CreateCloseUtils.createNewProject(remoteRobot, PROJECT_NAME, CreateCloseUtils.NewProjectType.PLAIN_JAVA);
4340
}
4441

4542
@AfterAll
4643
public static void closeProject() {
47-
remoteRobot.find(MainIdeWindow.class, Duration.ofSeconds(10)).closeProject();
44+
CreateCloseUtils.closeProject(remoteRobot);
4845
}
4946

5047
@Test
5148
public void projectStructureDialogTest() {
5249
dialogTest(() -> {
5350
ProjectStructureDialog projectStructureDialog = remoteRobot.find(ProjectStructureDialog.class, Duration.ofSeconds(10));
5451
projectStructureDialog.cancel();
55-
}, ProjectStructureDialog.class, "Project Structure");
52+
});
5653
}
5754

58-
private void dialogTest(Runnable selectedImpl, Class<? extends CommonContainerFixture> dialogClass, String dialogTitle) {
59-
makeSureDialogIsVisible(dialogClass, dialogTitle);
60-
assertTrue(isDialogVisible(dialogClass), "The '" + dialogTitle + "' dialog should be visible but is not.");
61-
selectedImpl.run();
62-
assertTrue(!isDialogVisible(dialogClass), "The '" + dialogTitle + "' dialog should be visible but is not.");
55+
private void dialogTest(Runnable runnable) {
56+
makeSureDialogIsVisible();
57+
assertTrue(isDialogVisible(), "The 'Project Structure' dialog should be visible but is not.");
58+
runnable.run();
59+
assertFalse(isDialogVisible(), "The 'Project Structure' dialog should be visible but is not.");
6360
IdeStatusBar ideStatusBar = remoteRobot.find(IdeStatusBar.class, Duration.ofSeconds(10));
6461
ideStatusBar.waitUntilAllBgTasksFinish();
6562
}
6663

67-
private void makeSureDialogIsVisible(Class<? extends CommonContainerFixture> dialogClass, String dialogTitle) {
64+
private void makeSureDialogIsVisible() {
6865
try {
69-
remoteRobot.find(dialogClass, Duration.ofSeconds(10));
66+
remoteRobot.find((Class<? extends CommonContainerFixture>) ProjectStructureDialog.class, Duration.ofSeconds(10));
7067
} catch (WaitForConditionTimeoutException e) {
7168
MainIdeWindow mainIdeWindow = remoteRobot.find(MainIdeWindow.class, Duration.ofSeconds(10));
72-
mainIdeWindow.invokeCmdUsingSearchEverywherePopup(dialogTitle);
69+
mainIdeWindow.invokeCmdUsingSearchEverywherePopup("Project Structure");
7370
}
7471
}
7572

76-
private boolean isDialogVisible(Class<? extends CommonContainerFixture> dialogClass) {
73+
private boolean isDialogVisible() {
7774
try {
78-
remoteRobot.find(dialogClass, Duration.ofSeconds(10));
75+
remoteRobot.find((Class<? extends CommonContainerFixture>) ProjectStructureDialog.class, Duration.ofSeconds(10));
7976
} catch (WaitForConditionTimeoutException e) {
8077
return false;
8178
}

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

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

6565
@BeforeEach
6666
public void openNewProjectDialog() {
67-
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
68-
newProjectDialogWizard = flatWelcomeFrame.openNewProjectDialogFromWelcomeDialog(remoteRobot);
67+
newProjectDialogWizard = CreateCloseUtils.openNewProjectDialogFromWelcomeDialog(remoteRobot);
6968
newProjectFirstPage = newProjectDialogWizard.find(NewProjectFirstPage.class, Duration.ofSeconds(10));
7069
}
7170

@@ -398,17 +397,15 @@ private void selectJavaNewProjectType() {
398397
public void createEmptyProjectTest() {
399398
cleanUp();
400399
String projectName = "empty-test-project";
401-
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
402-
newProjectDialogWizard = flatWelcomeFrame.openNewProjectDialogFromWelcomeDialog(remoteRobot);
403-
CreateCloseUtils.createEmptyProject(remoteRobot, projectName, newProjectDialogWizard);
400+
CreateCloseUtils.createEmptyProject(remoteRobot, projectName);
404401
mainIdeWindow = remoteRobot.find(MainIdeWindow.class, Duration.ofSeconds(60));
405402
assertTrue(mainIdeWindow.isShowing(), "The Main IDE Window should be open after creating an empty project.");
406403

407404
mainIdeWindow.closeProject();
408405
mainIdeWindow = null;
409406

410407
// IntelliJ remembers the last chosen project language, for continuity with other tests select Java project
411-
flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
408+
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
412409
flatWelcomeFrame.clearWorkspace();
413410
flatWelcomeFrame.createNewProject();
414411
selectJavaNewProjectType();

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
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;
1716
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.NewProjectDialogWizard;
1817
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.pages.MavenGradleNewProjectFinalPage;
1918
import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.pages.NewProjectFirstPage;
@@ -48,8 +47,7 @@ private static kotlin.Pair<Boolean, IdeStatusBar> isProgressbarWithLabelVisible(
4847

4948
@BeforeEach
5049
public void prepareProject() {
51-
FlatWelcomeFrame flatWelcomeFrame = remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10));
52-
NewProjectDialogWizard newProjectDialogWizard = flatWelcomeFrame.openNewProjectDialogFromWelcomeDialog(remoteRobot);
50+
NewProjectDialogWizard newProjectDialogWizard = CreateCloseUtils.openNewProjectDialogFromWelcomeDialog(remoteRobot);
5351
NewProjectFirstPage newProjectFirstPage = newProjectDialogWizard.find(NewProjectFirstPage.class, Duration.ofSeconds(10));
5452

5553
if (UITestRunner.getIdeaVersionInt() >= 20221) {
@@ -71,7 +69,7 @@ public void prepareProject() {
7169

7270
@AfterEach
7371
public void closeCurrentProject() {
74-
remoteRobot.find(MainIdeWindow.class, Duration.ofSeconds(10)).closeProject();
72+
CreateCloseUtils.closeProject(remoteRobot);
7573
}
7674

7775
@Test

0 commit comments

Comments
 (0)