ComboBoxTests.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. using OpenQA.Selenium;
  2. using OpenQA.Selenium.Appium;
  3. using Xunit;
  4. namespace Avalonia.IntegrationTests.Appium
  5. {
  6. public abstract class ComboBoxTests
  7. {
  8. private readonly AppiumDriver<AppiumWebElement> _session;
  9. public ComboBoxTests(DefaultAppFixture fixture)
  10. {
  11. _session = fixture.Session;
  12. var tabs = _session.FindElementByAccessibilityId("MainTabs");
  13. var tab = tabs.FindElementByName("ComboBox");
  14. tab.Click();
  15. }
  16. [Fact]
  17. public void Can_Change_Selection_Using_Mouse()
  18. {
  19. var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
  20. _session.FindElementByAccessibilityId("ComboBoxSelectFirst").Click();
  21. Assert.Equal("Item 0", comboBox.GetComboBoxValue());
  22. comboBox.Click();
  23. _session.FindElementByName("Item 1").SendClick();
  24. Assert.Equal("Item 1", comboBox.GetComboBoxValue());
  25. }
  26. [Fact]
  27. public void Can_Change_Selection_From_Unselected_Using_Mouse()
  28. {
  29. var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
  30. _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
  31. Assert.Equal(string.Empty, comboBox.GetComboBoxValue());
  32. comboBox.Click();
  33. _session.FindElementByName("Item 0").SendClick();
  34. Assert.Equal("Item 0", comboBox.GetComboBoxValue());
  35. }
  36. [PlatformFact(TestPlatforms.Windows)]
  37. public void Can_Change_Selection_With_Keyboard_When_Closed()
  38. {
  39. var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
  40. var wrap = _session.FindElementByAccessibilityId("ComboBoxWrapSelection");
  41. if (wrap.GetIsChecked() != false)
  42. wrap.Click();
  43. _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
  44. comboBox.SendKeys(Keys.ArrowDown);
  45. Assert.Equal("Item 0", comboBox.GetComboBoxValue());
  46. comboBox.SendKeys(Keys.ArrowDown);
  47. Assert.Equal("Item 1", comboBox.GetComboBoxValue());
  48. comboBox.SendKeys(Keys.ArrowDown);
  49. Assert.Equal("Item 1", comboBox.GetComboBoxValue());
  50. comboBox.SendKeys(Keys.ArrowUp);
  51. Assert.Equal("Item 0", comboBox.GetComboBoxValue());
  52. comboBox.SendKeys(Keys.ArrowUp);
  53. Assert.Equal("Item 0", comboBox.GetComboBoxValue());
  54. }
  55. [PlatformFact(TestPlatforms.Windows)]
  56. public void Can_Change_Wrapping_Selection_With_Keyboard_When_Closed()
  57. {
  58. var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
  59. var wrap = _session.FindElementByAccessibilityId("ComboBoxWrapSelection");
  60. if (wrap.GetIsChecked() != true)
  61. wrap.Click();
  62. _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
  63. comboBox.SendKeys(Keys.ArrowDown);
  64. Assert.Equal("Item 0", comboBox.GetComboBoxValue());
  65. comboBox.SendKeys(Keys.ArrowDown);
  66. Assert.Equal("Item 1", comboBox.GetComboBoxValue());
  67. comboBox.SendKeys(Keys.ArrowDown);
  68. Assert.Equal("Item 0", comboBox.GetComboBoxValue());
  69. comboBox.SendKeys(Keys.ArrowDown);
  70. Assert.Equal("Item 1", comboBox.GetComboBoxValue());
  71. comboBox.SendKeys(Keys.ArrowUp);
  72. Assert.Equal("Item 0", comboBox.GetComboBoxValue());
  73. comboBox.SendKeys(Keys.ArrowUp);
  74. Assert.Equal("Item 1", comboBox.GetComboBoxValue());
  75. }
  76. [PlatformFact(TestPlatforms.Windows)]
  77. public void Can_Change_Selection_When_Open_With_Keyboard()
  78. {
  79. var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
  80. _session.FindElementByAccessibilityId("ComboBoxSelectFirst").Click();
  81. Assert.Equal("Item 0", comboBox.GetComboBoxValue());
  82. comboBox.SendKeys(Keys.LeftAlt + Keys.ArrowDown);
  83. comboBox.SendKeys(Keys.ArrowDown);
  84. var item = _session.FindElementByName("Item 1");
  85. item.SendKeys(Keys.Enter);
  86. Assert.Equal("Item 1", comboBox.GetComboBoxValue());
  87. }
  88. [PlatformFact(TestPlatforms.Windows)]
  89. public void Can_Change_Selection_When_Open_With_Keyboard_From_Unselected()
  90. {
  91. var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
  92. _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
  93. Assert.Equal(string.Empty, comboBox.GetComboBoxValue());
  94. comboBox.SendKeys(Keys.LeftAlt + Keys.ArrowDown);
  95. comboBox.SendKeys(Keys.ArrowDown);
  96. var item = _session.FindElementByName("Item 0");
  97. item.SendKeys(Keys.Enter);
  98. Assert.Equal("Item 0", comboBox.GetComboBoxValue());
  99. }
  100. [PlatformFact(TestPlatforms.Windows)]
  101. public void Can_Cancel_Keyboard_Selection_With_Escape()
  102. {
  103. var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
  104. _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
  105. Assert.Equal(string.Empty, comboBox.GetComboBoxValue());
  106. comboBox.SendKeys(Keys.LeftAlt + Keys.ArrowDown);
  107. comboBox.SendKeys(Keys.ArrowDown);
  108. var item = _session.FindElementByName("Item 0");
  109. item.SendKeys(Keys.Escape);
  110. Assert.Equal(string.Empty, comboBox.GetComboBoxValue());
  111. }
  112. [Collection("Default")]
  113. public class Default : ComboBoxTests
  114. {
  115. public Default(DefaultAppFixture fixture) : base(fixture) { }
  116. }
  117. [Collection("OverlayPopups")]
  118. public class OverlayPopups : ComboBoxTests
  119. {
  120. public OverlayPopups(OverlayPopupsAppFixture fixture) : base(fixture) { }
  121. }
  122. }
  123. }