ComboBoxTests.cs 5.6 KB

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