NativeMenuTests.cs 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using System.Threading;
  2. using Xunit;
  3. namespace Avalonia.IntegrationTests.Appium
  4. {
  5. [Collection("Default")]
  6. public class NativeMenuTests : TestBase
  7. {
  8. public NativeMenuTests(DefaultAppFixture fixture)
  9. : base(fixture, "Automation")
  10. {
  11. }
  12. [PlatformFact(TestPlatforms.MacOS)]
  13. public void MacOS_View_Menu_Select_Button_Tab()
  14. {
  15. var tabs = Session.FindElementByAccessibilityId("Pager");
  16. var buttonTab = tabs.FindElementByName("Button");
  17. var menuBar = Session.FindElementByXPath("/XCUIElementTypeApplication/XCUIElementTypeMenuBar");
  18. var viewMenu = menuBar.FindElementByName("View");
  19. Assert.False(buttonTab.Selected);
  20. viewMenu.Click();
  21. var buttonMenu = viewMenu.FindElementByName("Button");
  22. buttonMenu.Click();
  23. Assert.True(buttonTab.Selected);
  24. }
  25. [PlatformFact(TestPlatforms.Windows)]
  26. public void Win32_View_Menu_Select_Button_Tab()
  27. {
  28. var tabs = Session.FindElementByAccessibilityId("Pager");
  29. var buttonTab = tabs.FindElementByName("Button");
  30. var viewMenu = Session.FindElementByXPath("//MenuItem[@Name='View']");
  31. Assert.False(buttonTab.Selected);
  32. viewMenu.Click();
  33. var buttonMenu = viewMenu.FindElementByName("Button");
  34. buttonMenu.Click();
  35. Assert.True(buttonTab.Selected);
  36. }
  37. [PlatformFact(TestPlatforms.MacOS)]
  38. public void MacOS_Sanitizes_Access_Key_Markers_When_Included_In_Menu_Title()
  39. {
  40. var menuBar = Session.FindElementByXPath("/XCUIElementTypeApplication/XCUIElementTypeMenuBar");
  41. Assert.True(menuBar.FindElementsByName("_Options").Count == 0);
  42. Assert.True(menuBar.FindElementsByName("Options").Count == 1);
  43. }
  44. [PlatformFact(TestPlatforms.Windows)]
  45. public void Win32_Avalonia_Menu_Has_ToolTip_If_Defined()
  46. {
  47. var viewMenu = Session.FindElementByXPath("//MenuItem[@Name='View']");
  48. viewMenu.Click();
  49. var buttonMenuItem = viewMenu.FindElementByName("Button");
  50. buttonMenuItem.MovePointerOver();
  51. // Wait for tooltip to open.
  52. Thread.Sleep(2000);
  53. var toolTipCandidates = Session.FindElementsByClassName("TextBlock");
  54. Assert.Contains(toolTipCandidates, x => x.Text == "Tip:Button");
  55. }
  56. [PlatformFact(TestPlatforms.MacOS, Skip = "Flaky test")]
  57. public void MacOS_Native_Menu_Has_ToolTip_If_Defined()
  58. {
  59. var menuBar = Session.FindElementByXPath("/XCUIElementTypeApplication/XCUIElementTypeMenuBar");
  60. var viewMenu = menuBar.FindElementByName("View");
  61. viewMenu.Click();
  62. var buttonMenuItem = viewMenu.FindElementByName("Button");
  63. buttonMenuItem.MovePointerOver();
  64. // Wait for tooltip to open.
  65. Thread.Sleep(4000);
  66. var toolTipCandidates = Session.FindElementsByClassName("XCUIElementTypeStaticText");
  67. Assert.Contains(toolTipCandidates, x => x.Text == "Tip:Button");
  68. }
  69. }
  70. }