11
11
package org .jboss .tools .intellij .quarkus .tests ;
12
12
13
13
import com .intellij .remoterobot .RemoteRobot ;
14
- import com .intellij .remoterobot .fixtures .CommonContainerFixture ;
15
14
import com .intellij .remoterobot .fixtures .ComponentFixture ;
16
- import com .intellij .remoterobot .fixtures .JButtonFixture ;
17
15
import com .intellij .remoterobot .fixtures .JTextFieldFixture ;
18
- import com .intellij .remoterobot .fixtures .JTreeFixture ;
19
- import com .intellij .remoterobot .utils .WaitForConditionTimeoutException ;
20
- import com .redhat .devtools .intellij .commonuitest .UITestRunner ;
21
16
import com .redhat .devtools .intellij .commonuitest .fixtures .dialogs .FlatWelcomeFrame ;
22
17
import com .redhat .devtools .intellij .commonuitest .fixtures .dialogs .project .NewProjectDialogWizard ;
23
18
import com .redhat .devtools .intellij .commonuitest .fixtures .mainidewindow .MainIdeWindow ;
24
19
import com .redhat .devtools .intellij .commonuitest .fixtures .mainidewindow .idestatusbar .IdeStatusBar ;
25
20
import com .redhat .devtools .intellij .commonuitest .fixtures .mainidewindow .toolwindowspane .BuildView ;
26
21
import com .redhat .devtools .intellij .commonuitest .fixtures .mainidewindow .toolwindowspane .ToolWindowPane ;
27
- import com .redhat .devtools .intellij .commonuitest .fixtures .mainidewindow .toolwindowspane .ToolWindowsPane ;
28
22
import com .redhat .devtools .intellij .commonuitest .fixtures .mainidewindow .toolwindowspane .buildtoolpane .GradleBuildToolPane ;
29
23
import com .redhat .devtools .intellij .commonuitest .fixtures .mainidewindow .toolwindowspane .buildtoolpane .MavenBuildToolPane ;
30
24
import com .redhat .devtools .intellij .commonuitest .utils .constants .ProjectLocation ;
31
25
import com .redhat .devtools .intellij .commonuitest .utils .project .CreateCloseUtils ;
32
- import com .redhat .devtools .intellij .commonuitest .utils .screenshot .ScreenshotUtils ;
33
26
import org .jboss .tools .intellij .quarkus .fixtures .dialogs .project .pages .QuarkusNewProjectFinalPage ;
34
27
import org .jboss .tools .intellij .quarkus .fixtures .dialogs .project .pages .QuarkusNewProjectFirstPage ;
35
28
import org .jboss .tools .intellij .quarkus .fixtures .dialogs .project .pages .QuarkusNewProjectSecondPage ;
48
41
import java .time .Duration ;
49
42
50
43
import static com .intellij .remoterobot .search .locators .Locators .byXpath ;
51
- import static com .intellij .remoterobot .utils .RepeatUtilsKt .waitFor ;
52
- import static com .intellij .remoterobot .utils .RepeatUtilsKt .waitForIgnoringError ;
53
44
import static org .junit .jupiter .api .Assertions .assertTrue ;
54
45
55
46
/**
@@ -76,7 +67,7 @@ public void createBuildQuarkusMavenTest() {
76
67
ToolWindowPane toolWindowPane = remoteRobot .find (ToolWindowPane .class , Duration .ofSeconds (10 ));
77
68
toolWindowPane .openMavenBuildToolPane ();
78
69
MavenBuildToolPane mavenBuildToolPane = toolWindowPane .find (MavenBuildToolPane .class , Duration .ofSeconds (10 ));
79
- mavenBuildToolPane .buildProject ("install " );
70
+ mavenBuildToolPane .buildProject ("verify " );
80
71
boolean isBuildSuccessful = toolWindowPane .find (BuildView .class , Duration .ofSeconds (10 )).isBuildSuccessful ();
81
72
assertTrue (isBuildSuccessful , "The build should be successful but is not." );
82
73
}
@@ -99,29 +90,27 @@ private void createQuarkusProject(RemoteRobot remoteRobot, String projectName, B
99
90
NewProjectDialogWizard newProjectDialogWizard = remoteRobot .find (NewProjectDialogWizard .class , Duration .ofSeconds (10 ));
100
91
QuarkusNewProjectFirstPage quarkusNewProjectFirstPage = newProjectDialogWizard .find (QuarkusNewProjectFirstPage .class , Duration .ofSeconds (10 ));
101
92
quarkusNewProjectFirstPage .selectNewProjectType ("Quarkus" );
102
-
103
93
if (endpointURLType == EndpointURLType .CUSTOM ) {
104
94
ComponentFixture customEndpointURLJBRadioButton = remoteRobot .findAll (ComponentFixture .class , byXpath (XPathDefinitions .CUSTOM_ENDPOINT_URL_RADIO_BUTTON )).get (0 );
105
95
customEndpointURLJBRadioButton .click ();
106
96
JTextFieldFixture customEndpointURLJTextField = remoteRobot .findAll (JTextFieldFixture .class , byXpath (XPathDefinitions .CUSTOM_ENDPOINT_URL_TEXT_FIELD )).get (0 );
107
97
customEndpointURLJTextField .setText ("https://code.quarkus.io" );
108
98
}
99
+ quarkusNewProjectFirstPage .setProjectSdkIfAvailable (JAVA_VERSION_FOR_QUARKUS_PROJECT );
109
100
newProjectDialogWizard .next ();
110
101
111
102
QuarkusNewProjectSecondPage quarkusNewProjectSecondPage = newProjectDialogWizard .find (QuarkusNewProjectSecondPage .class , Duration .ofSeconds (10 ));
112
103
quarkusNewProjectSecondPage .setBuildTool (buildTool );
113
104
quarkusNewProjectSecondPage .setJavaVersion (JAVA_VERSION_FOR_QUARKUS_PROJECT );
114
105
newProjectDialogWizard .next ();
106
+
115
107
newProjectDialogWizard .find (QuarkusNewProjectThirdPage .class , Duration .ofSeconds (10 )); // wait for third page to be loaded
116
108
newProjectDialogWizard .next ();
117
109
118
- waitForIgnoringError (Duration .ofMillis (1000L ),() -> remoteRobot .callJs ("true" ));
119
-
120
110
QuarkusNewProjectFinalPage quarkusNewProjectFinalPage = newProjectDialogWizard .find (QuarkusNewProjectFinalPage .class , Duration .ofSeconds (10 ));
121
111
quarkusNewProjectFinalPage .setProjectName (projectName );
122
-
123
- String QUARKUS_PROJECT_LOCATION = ProjectLocation .PROJECT_LOCATION + File .separator + projectName ;
124
- Path quarkusProjectDir = Paths .get (QUARKUS_PROJECT_LOCATION );
112
+ String quarkusProjectLocation = ProjectLocation .PROJECT_LOCATION + File .separator + projectName ;
113
+ Path quarkusProjectDir = Paths .get (quarkusProjectLocation );
125
114
boolean doesProjectDirExists = Files .exists (quarkusProjectDir );
126
115
if (!doesProjectDirExists ) {
127
116
try {
@@ -130,52 +119,14 @@ private void createQuarkusProject(RemoteRobot remoteRobot, String projectName, B
130
119
throw new RuntimeException (e );
131
120
}
132
121
}
133
-
134
- quarkusNewProjectFinalPage .setProjectLocation (QUARKUS_PROJECT_LOCATION );
135
-
122
+ quarkusNewProjectFinalPage .setProjectLocation (quarkusProjectLocation );
136
123
newProjectDialogWizard .finish ();
137
124
138
- //minimizeProjectImportPopupIfItAppears();
139
-
140
125
IdeStatusBar ideStatusBar = remoteRobot .find (IdeStatusBar .class , Duration .ofSeconds (10 ));
141
- waitFor ( Duration . ofSeconds ( 30 ), Duration . ofSeconds ( 3 ), "The project import did not finish in 5 minutes." , this :: didProjectImportFinish );
126
+ ideStatusBar . waitUntilProjectImportIsComplete ( );
142
127
143
- //ideStatusBar.waitUntilProjectImportIsComplete();
144
- ScreenshotUtils .takeScreenshot (remoteRobot );
145
128
MainIdeWindow mainIdeWindow = remoteRobot .find (MainIdeWindow .class , Duration .ofSeconds (5 ));
146
129
mainIdeWindow .maximizeIdeWindow ();
147
- ideStatusBar .waitUntilAllBgTasksFinish (500 );
148
130
}
149
131
150
- private boolean didProjectImportFinish () {
151
- try {
152
- remoteRobot .find (ComponentFixture .class , byXpath (com .redhat .devtools .intellij .commonuitest .utils .constants .XPathDefinitions .ENGRAVED_LABEL ), Duration .ofSeconds (1 ));
153
- } catch (WaitForConditionTimeoutException e ) {
154
- return true ;
155
- }
156
- return false ;
157
- }
158
-
159
- private void minimizeProjectImportPopupIfItAppears () {
160
- try {
161
- waitForIgnoringError (Duration .ofSeconds (30 ), Duration .ofMillis (200 ), "Close the project import popup if it appears..." , () -> {
162
- remoteRobot .find (JButtonFixture .class , byXpath (XPathDefinitions .PROJECT_IMPORT_POPUP_MINIMIZE_BUTTON )).click ();
163
- return true ;
164
- });
165
- } catch (Exception e ) {
166
- //suppress non-existing popup timeout
167
- }
168
- }
169
-
170
- private void buildGradleProject (GradleBuildToolPane gradleBuildToolPane ) {
171
- gradleBuildToolPane .find (JTreeFixture .class , JTreeFixture .Companion .byType (), Duration .ofSeconds (30 ));
172
- gradleBuildToolPane .expandAll ();
173
- gradleBuildToolPane .gradleTaskTree ().findAllText ("build" ).get (1 ).doubleClick ();
174
- if (UITestRunner .getIdeaVersionInt () >= 20221 ) {
175
- remoteRobot .find (ToolWindowPane .class ).find (BuildView .class ).waitUntilBuildHasFinished ();
176
- } else {
177
- remoteRobot .find (ToolWindowsPane .class ).find (BuildView .class ).waitUntilBuildHasFinished ();
178
- }
179
- remoteRobot .find (IdeStatusBar .class , Duration .ofSeconds (10 )).waitUntilAllBgTasksFinish ();
180
- }
181
132
}
0 commit comments