diff --git a/samples/IntegrationTestApp/MainWindow.axaml b/samples/IntegrationTestApp/MainWindow.axaml
index 0b5c20b849..19ac68b15b 100644
--- a/samples/IntegrationTestApp/MainWindow.axaml
+++ b/samples/IntegrationTestApp/MainWindow.axaml
@@ -82,13 +82,14 @@
None
+
diff --git a/samples/IntegrationTestApp/MainWindow.axaml.cs b/samples/IntegrationTestApp/MainWindow.axaml.cs
index b9e631a312..9a612aa94d 100644
--- a/samples/IntegrationTestApp/MainWindow.axaml.cs
+++ b/samples/IntegrationTestApp/MainWindow.axaml.cs
@@ -62,6 +62,8 @@ namespace IntegrationTestApp
this.FindControl("BasicComboBox").SelectedIndex = 0;
if (source?.Name == "ListBoxSelectionClear")
this.FindControl("BasicListBox").SelectedIndex = -1;
+ if (source?.Name == "MenuClickedMenuItemReset")
+ this.FindControl("ClickedMenuItem").Text = "None";
}
}
}
diff --git a/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs b/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs
index 0562611a5b..763ad5f400 100644
--- a/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs
@@ -1,4 +1,7 @@
-using OpenQA.Selenium.Appium;
+using System.Threading;
+using OpenQA.Selenium;
+using OpenQA.Selenium.Appium;
+using OpenQA.Selenium.Interactions;
using Xunit;
namespace Avalonia.IntegrationTests.Appium
@@ -15,6 +18,12 @@ namespace Avalonia.IntegrationTests.Appium
var tabs = _session.FindElementByAccessibilityId("MainTabs");
var tab = tabs.FindElementByName("Menu");
tab.Click();
+
+ var reset = _session.FindElementByAccessibilityId("MenuClickedMenuItemReset");
+ reset.Click();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("None", clickedMenuItem.Text);
}
[Fact]
@@ -48,11 +57,59 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("_Grandchild", clickedMenuItem.Text);
}
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Child_With_Arrow_Keys()
+ {
+ new Actions(_session)
+ .KeyDown(Keys.Alt).KeyUp(Keys.Alt)
+ .SendKeys(Keys.Down + Keys.Enter)
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Child 1", clickedMenuItem.Text);
+ }
+
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Grandchild_With_Arrow_Keys()
+ {
+ new Actions(_session)
+ .KeyDown(Keys.Alt).KeyUp(Keys.Alt)
+ .SendKeys(Keys.Down + Keys.Down + Keys.Right + Keys.Enter)
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Grandchild", clickedMenuItem.Text);
+ }
+
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Child_With_Access_Keys()
+ {
+ new Actions(_session)
+ .KeyDown(Keys.Alt).KeyUp(Keys.Alt)
+ .SendKeys("rc")
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Child 1", clickedMenuItem.Text);
+ }
+
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Grandchild_With_Access_Keys()
+ {
+ new Actions(_session)
+ .KeyDown(Keys.Alt).KeyUp(Keys.Alt)
+ .SendKeys("rhg")
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Grandchild", clickedMenuItem.Text);
+ }
+
[PlatformFact(SkipOnOSX = true)]
public void Child_AcceleratorKey()
{
var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
-
+
rootMenuItem.SendClick();
var childMenuItem = _session.FindElementByAccessibilityId("Child1MenuItem");