Skip to content

Commit a8cea51

Browse files
committed
fix: fix for 2023.3 use case
Signed-off-by: Stephane Bouchet <[email protected]>
1 parent c583835 commit a8cea51

File tree

4 files changed

+29
-5
lines changed

4 files changed

+29
-5
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,10 @@ public void maximizeIdeWindow() {
7878
* Close the currently opened project
7979
*/
8080
public void closeProject() {
81-
if (remoteRobot.isWin()) {
82-
new MenuBar(remoteRobot).navigateTo("File", "Close Project");
83-
} else {
81+
if (remoteRobot.isMac()) {
8482
invokeCmdUsingSearchEverywherePopup("Close Project");
83+
} else {
84+
new MenuBar(remoteRobot).navigateTo("File", "Close Project");
8585
}
8686
IdeInternalErrorUtils.clearWindowsErrorsIfTheyAppear(remoteRobot);
8787
remoteRobot.find(FlatWelcomeFrame.class, Duration.ofSeconds(10)).runJs("const horizontal_offset = component.getWidth()/2;\n" +

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

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,15 @@
1313
import com.intellij.remoterobot.RemoteRobot;
1414
import com.intellij.remoterobot.fixtures.ActionButtonFixture;
1515
import com.intellij.remoterobot.fixtures.CommonContainerFixture;
16+
import com.intellij.remoterobot.fixtures.ComponentFixture;
1617
import com.intellij.remoterobot.fixtures.JButtonFixture;
1718
import com.intellij.remoterobot.fixtures.JPopupMenuFixture;
19+
import com.intellij.remoterobot.fixtures.dataExtractor.RemoteText;
20+
import com.intellij.remoterobot.utils.WaitForConditionTimeoutException;
1821
import com.redhat.devtools.intellij.commonuitest.UITestRunner;
22+
import com.redhat.devtools.intellij.commonuitest.fixtures.mainidewindow.MainIdeWindow;
1923
import com.redhat.devtools.intellij.commonuitest.utils.constants.XPathDefinitions;
24+
import org.jetbrains.annotations.NotNull;
2025

2126
import java.time.Duration;
2227
import java.util.List;
@@ -83,7 +88,11 @@ private JButtonFixture mainMenuItem(String label) {
8388
if (remoteRobot.isMac()) {
8489
return null;
8590
}
91+
return getMainMenu().button(byXpath(XPathDefinitions.label(label)), Duration.ofSeconds(10));
92+
}
8693

94+
@NotNull
95+
public CommonContainerFixture getMainMenu() {
8796
CommonContainerFixture cf;
8897
if (remoteRobot.isLinux() && ideaVersionInt <= 20242) {
8998
cf = remoteRobot.find(CommonContainerFixture.class, byXpath(XPathDefinitions.LINUX_MAIN_MENU), Duration.ofSeconds(10));
@@ -96,7 +105,20 @@ private JButtonFixture mainMenuItem(String label) {
96105
} else {
97106
cf = remoteRobot.find(CommonContainerFixture.class, byXpath(XPathDefinitions.WINDOWS_MAIN_MENU_2020_2_AND_OLDER), Duration.ofSeconds(10));
98107
}
108+
return cf;
109+
}
99110

100-
return cf.button(byXpath(XPathDefinitions.label(label)), Duration.ofSeconds(10));
111+
public void setVisible(){
112+
// check menu already visible
113+
try {
114+
getMainMenu();
115+
} catch (WaitForConditionTimeoutException e) {
116+
// not visible
117+
MainIdeWindow mainIdeWindow = remoteRobot.find(MainIdeWindow.class, Duration.ofSeconds(5));
118+
mainIdeWindow.invokeCmdUsingSearchEverywherePopup("Appearance");
119+
ComponentFixture appearanceDialog = remoteRobot.find(ComponentFixture.class, byXpath("//div[@class='JBViewport'][.//div[@class='MyList']]"));
120+
List<RemoteText> items = appearanceDialog.findAllText();
121+
items.stream().filter(remoteText -> remoteText.getText().equals("Main Menu")).findFirst().ifPresent(RemoteText::click);
122+
}
101123
}
102124
}

src/test-project/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import org.jetbrains.intellij.platform.gradle.IntelliJPlatformType
33
plugins {
44
id("java")
55
id("jacoco")
6-
id("org.jetbrains.intellij.platform") version ("2.2.1")
6+
id("org.jetbrains.intellij.platform") version ("2.6.0")
77
}
88

99
group = "com.redhat.devtools.intellij"

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ class MenuBarTest extends AbstractLibraryBaseTest {
4141
@BeforeAll
4242
static void prepareProject() {
4343
CreateCloseUtils.createNewProject(remoteRobot, PROJECT_NAME, CreateCloseUtils.NewProjectType.PLAIN_JAVA);
44+
//ensure main menu is visible
45+
new MenuBar(remoteRobot).setVisible();
4446
}
4547

4648
@AfterAll

0 commit comments

Comments
 (0)