ListBoxTests.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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 : TestBase
  10. {
  11. public ListBoxTests(DefaultAppFixture fixture)
  12. : base(fixture, "ListBox")
  13. {
  14. }
  15. [Fact]
  16. public void Can_Select_Item_By_Clicking()
  17. {
  18. var listBox = GetTarget();
  19. var item2 = listBox.FindElementByName("Item 2");
  20. var item4 = listBox.FindElementByName("Item 4");
  21. Assert.False(item2.Selected);
  22. Assert.False(item4.Selected);
  23. item2.SendClick();
  24. Assert.True(item2.Selected);
  25. Assert.False(item4.Selected);
  26. item4.SendClick();
  27. Assert.False(item2.Selected);
  28. Assert.True(item4.Selected);
  29. }
  30. [Fact(Skip = "WinAppDriver seems unable to consistently send a Ctrl key and appium-mac2-driver just hangs")]
  31. public void Can_Select_Items_By_Ctrl_Clicking()
  32. {
  33. var listBox = GetTarget();
  34. var item2 = listBox.FindElementByName("Item 2");
  35. var item4 = listBox.FindElementByName("Item 4");
  36. Assert.False(item2.Selected);
  37. Assert.False(item4.Selected);
  38. new Actions(Session)
  39. .Click(item2)
  40. .KeyDown(Keys.Control)
  41. .Click(item4)
  42. .KeyUp(Keys.Control)
  43. .Perform();
  44. Assert.True(item2.Selected);
  45. Assert.True(item4.Selected);
  46. }
  47. // appium-mac2-driver just hangs
  48. [PlatformFact(TestPlatforms.Windows)]
  49. public void Can_Select_Range_By_Shift_Clicking()
  50. {
  51. var listBox = GetTarget();
  52. var item2 = listBox.FindElementByName("Item 2");
  53. var item3 = listBox.FindElementByName("Item 3");
  54. var item4 = listBox.FindElementByName("Item 4");
  55. Assert.False(item2.Selected);
  56. Assert.False(item3.Selected);
  57. Assert.False(item4.Selected);
  58. new Actions(Session)
  59. .Click(item2)
  60. .KeyDown(Keys.Shift)
  61. .Click(item4)
  62. .KeyUp(Keys.Shift)
  63. .Perform();
  64. Assert.True(item2.Selected);
  65. Assert.True(item3.Selected);
  66. Assert.True(item4.Selected);
  67. }
  68. [Fact]
  69. public void Is_Virtualized()
  70. {
  71. var listBox = GetTarget();
  72. var children = listBox.GetChildren();
  73. Assert.True(children.Count < 100);
  74. }
  75. private AppiumWebElement GetTarget()
  76. {
  77. Session.FindElementByAccessibilityId("ListBoxSelectionClear").Click();
  78. return Session.FindElementByAccessibilityId("BasicListBox");
  79. }
  80. }
  81. }