123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- using OpenQA.Selenium;
- using OpenQA.Selenium.Interactions;
- using Xunit;
- namespace Avalonia.IntegrationTests.Appium
- {
- [Collection("Default")]
- public abstract class MenuTests : TestBase
- {
- public MenuTests(DefaultAppFixture fixture)
- : base(fixture, "Menu")
- {
- var reset = Session.FindElementByAccessibilityId("MenuClickedMenuItemReset");
- reset.Click();
- var clickedMenuItem = Session.FindElementByAccessibilityId("ClickedMenuItem");
- Assert.Equal("None", clickedMenuItem.Text);
- }
- [Fact]
- public void Click_Child()
- {
- var rootMenuItem = Session.FindElementByAccessibilityId("RootMenuItem");
-
- rootMenuItem.SendClick();
- var childMenuItem = Session.FindElementByAccessibilityId("Child1MenuItem");
- childMenuItem.SendClick();
- var clickedMenuItem = Session.FindElementByAccessibilityId("ClickedMenuItem");
- Assert.Equal("_Child 1", clickedMenuItem.Text);
- }
- [Fact]
- public void Click_Grandchild()
- {
- var rootMenuItem = Session.FindElementByAccessibilityId("RootMenuItem");
-
- rootMenuItem.SendClick();
- var childMenuItem = Session.FindElementByAccessibilityId("Child2MenuItem");
- childMenuItem.SendClick();
- var grandchildMenuItem = Session.FindElementByAccessibilityId("GrandchildMenuItem");
- grandchildMenuItem.SendClick();
- var clickedMenuItem = Session.FindElementByAccessibilityId("ClickedMenuItem");
- Assert.Equal("_Grandchild", clickedMenuItem.Text);
- }
- [PlatformFact(TestPlatforms.Windows)]
- public void Select_Child_With_Alt_Arrow_Keys()
- {
- MovePointerOutOfTheWay();
- 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(TestPlatforms.Windows)]
- public void Select_Grandchild_With_Alt_Arrow_Keys()
- {
- MovePointerOutOfTheWay();
- 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(TestPlatforms.Windows)]
- public void Select_Child_With_Alt_Access_Keys()
- {
- MovePointerOutOfTheWay();
- new Actions(Session)
- .KeyDown(Keys.Alt).KeyUp(Keys.Alt)
- .SendKeys("rc")
- .Perform();
- var clickedMenuItem = Session.FindElementByAccessibilityId("ClickedMenuItem");
- Assert.Equal("_Child 1", clickedMenuItem.Text);
- }
- [PlatformFact(TestPlatforms.Windows)]
- public void Select_Grandchild_With_Alt_Access_Keys()
- {
- MovePointerOutOfTheWay();
- new Actions(Session)
- .KeyDown(Keys.Alt).KeyUp(Keys.Alt)
- .SendKeys("rhg")
- .Perform();
- var clickedMenuItem = Session.FindElementByAccessibilityId("ClickedMenuItem");
- Assert.Equal("_Grandchild", clickedMenuItem.Text);
- }
- [PlatformFact(TestPlatforms.Windows)]
- public void Select_Child_With_Click_Arrow_Keys()
- {
- var rootMenuItem = Session.FindElementByAccessibilityId("RootMenuItem");
- rootMenuItem.SendClick();
- MovePointerOutOfTheWay();
- new Actions(Session)
- .SendKeys(Keys.Down + Keys.Enter)
- .Perform();
- var clickedMenuItem = Session.FindElementByAccessibilityId("ClickedMenuItem");
- Assert.Equal("_Child 1", clickedMenuItem.Text);
- }
- [PlatformFact(TestPlatforms.Windows)]
- public void Select_Grandchild_With_Click_Arrow_Keys()
- {
- var rootMenuItem = Session.FindElementByAccessibilityId("RootMenuItem");
- rootMenuItem.SendClick();
- MovePointerOutOfTheWay();
- new Actions(Session)
- .SendKeys(Keys.Down + Keys.Down + Keys.Right + Keys.Enter)
- .Perform();
- var clickedMenuItem = Session.FindElementByAccessibilityId("ClickedMenuItem");
- Assert.Equal("_Grandchild", clickedMenuItem.Text);
- }
- [PlatformFact(TestPlatforms.Windows)]
- public void Child_AcceleratorKey()
- {
- var rootMenuItem = Session.FindElementByAccessibilityId("RootMenuItem");
- rootMenuItem.SendClick();
- var childMenuItem = Session.FindElementByAccessibilityId("Child1MenuItem");
- Assert.Equal("Ctrl+O", childMenuItem.GetAttribute("AcceleratorKey"));
- }
- [PlatformFact(TestPlatforms.Windows)]
- public void PointerOver_Does_Not_Steal_Focus()
- {
- // Issue #7906
- var textBox = Session.FindElementByAccessibilityId("MenuFocusTest");
- textBox.Click();
- Assert.True(textBox.GetIsFocused());
- var rootMenuItem = Session.FindElementByAccessibilityId("RootMenuItem");
- rootMenuItem.MovePointerOver();
- Assert.True(textBox.GetIsFocused());
- }
- private void MovePointerOutOfTheWay()
- {
- // Move the pointer to the menu tab item so that it's not over the menu in preparation
- // for key press tests. This prevents the mouse accidentally selecting the wrong item
- // by hovering.
- var tabs = Session.FindElementByAccessibilityId("Pager");
- var tab = tabs.FindElementByName("Menu");
- tab.MovePointerOver();
- }
- [Collection("Default")]
- public class Default : MenuTests
- {
- public Default(DefaultAppFixture fixture) : base(fixture) { }
- }
- [Collection("OverlayPopups")]
- public class OverlayPopups : MenuTests
- {
- public OverlayPopups(OverlayPopupsAppFixture fixture) : base(fixture) { }
- }
- }
- }
|