ListBoxTests.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using System.Threading;
  2. using OpenQA.Selenium;
  3. using OpenQA.Selenium.Appium;
  4. using OpenQA.Selenium.Interactions;
  5. using Xunit;
  6. namespace Avalonia.IntegrationTests.Appium
  7. {
  8. [Collection("Default")]
  9. public class ListBoxTests
  10. {
  11. private readonly AppiumDriver<AppiumWebElement> _session;
  12. public ListBoxTests(DefaultAppFixture fixture)
  13. {
  14. _session = fixture.Session;
  15. var tabs = _session.FindElementByAccessibilityId("MainTabs");
  16. var tab = tabs.FindElementByName("ListBox");
  17. tab.Click();
  18. }
  19. [Fact]
  20. public void Can_Select_Item_By_Clicking()
  21. {
  22. var listBox = GetTarget();
  23. var item2 = listBox.FindElementByName("Item 2");
  24. var item4 = listBox.FindElementByName("Item 4");
  25. Assert.False(item2.Selected);
  26. Assert.False(item4.Selected);
  27. item2.SendClick();
  28. Assert.True(item2.Selected);
  29. Assert.False(item4.Selected);
  30. item4.SendClick();
  31. Assert.False(item2.Selected);
  32. Assert.True(item4.Selected);
  33. }
  34. [Fact(Skip = "WinAppDriver seems unable to consistently send a Ctrl key and appium-mac2-driver just hangs")]
  35. public void Can_Select_Items_By_Ctrl_Clicking()
  36. {
  37. var listBox = GetTarget();
  38. var item2 = listBox.FindElementByName("Item 2");
  39. var item4 = listBox.FindElementByName("Item 4");
  40. Assert.False(item2.Selected);
  41. Assert.False(item4.Selected);
  42. new Actions(_session)
  43. .Click(item2)
  44. .KeyDown(Keys.Control)
  45. .Click(item4)
  46. .KeyUp(Keys.Control)
  47. .Perform();
  48. Assert.True(item2.Selected);
  49. Assert.True(item4.Selected);
  50. }
  51. // appium-mac2-driver just hangs
  52. [PlatformFact(TestPlatforms.Windows)]
  53. public void Can_Select_Range_By_Shift_Clicking()
  54. {
  55. var listBox = GetTarget();
  56. var item2 = listBox.FindElementByName("Item 2");
  57. var item3 = listBox.FindElementByName("Item 3");
  58. var item4 = listBox.FindElementByName("Item 4");
  59. Assert.False(item2.Selected);
  60. Assert.False(item3.Selected);
  61. Assert.False(item4.Selected);
  62. new Actions(_session)
  63. .Click(item2)
  64. .KeyDown(Keys.Shift)
  65. .Click(item4)
  66. .KeyUp(Keys.Shift)
  67. .Perform();
  68. Assert.True(item2.Selected);
  69. Assert.True(item3.Selected);
  70. Assert.True(item4.Selected);
  71. }
  72. [Fact]
  73. public void Is_Virtualized()
  74. {
  75. var listBox = GetTarget();
  76. var children = listBox.GetChildren();
  77. Assert.True(children.Count < 100);
  78. }
  79. private AppiumWebElement GetTarget()
  80. {
  81. _session.FindElementByAccessibilityId("ListBoxSelectionClear").Click();
  82. return _session.FindElementByAccessibilityId("BasicListBox");
  83. }
  84. }
  85. }