SliderTests.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. using System;
  2. using System.Globalization;
  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 SliderTests
  10. {
  11. private readonly AppiumDriver<AppiumWebElement> _session;
  12. public SliderTests(DefaultAppFixture fixture)
  13. {
  14. _session = fixture.Session;
  15. var tabs = _session.FindElementByAccessibilityId("MainTabs");
  16. var tab = tabs.FindElementByName("Slider");
  17. tab.Click();
  18. var reset = _session.FindElementByAccessibilityId("ResetSliders");
  19. reset.Click();
  20. }
  21. [Fact]
  22. public void Horizontal_Changes_Value_Dragging_Thumb_Right()
  23. {
  24. var slider = _session.FindElementByAccessibilityId("HorizontalSlider");
  25. var thumb = slider.FindElementByAccessibilityId("thumb");
  26. var initialThumbRect = thumb.Rect;
  27. new Actions(_session).ClickAndHold(thumb).MoveByOffset(100, 0).Release().Perform();
  28. var value = Math.Round(double.Parse(slider.Text, CultureInfo.InvariantCulture));
  29. var boundValue = double.Parse(
  30. _session.FindElementByAccessibilityId("HorizontalSliderValue").Text,
  31. CultureInfo.InvariantCulture);
  32. Assert.True(value > 50);
  33. Assert.Equal(value, boundValue);
  34. var currentThumbRect = thumb.Rect;
  35. Assert.True(currentThumbRect.Left > initialThumbRect.Left);
  36. }
  37. [Fact]
  38. public void Horizontal_Changes_Value_Dragging_Thumb_Left()
  39. {
  40. var slider = _session.FindElementByAccessibilityId("HorizontalSlider");
  41. var thumb = slider.FindElementByAccessibilityId("thumb");
  42. var initialThumbRect = thumb.Rect;
  43. new Actions(_session).ClickAndHold(thumb).MoveByOffset(-100, 0).Release().Perform();
  44. var value = Math.Round(double.Parse(slider.Text, CultureInfo.InvariantCulture));
  45. var boundValue = double.Parse(
  46. _session.FindElementByAccessibilityId("HorizontalSliderValue").Text,
  47. CultureInfo.InvariantCulture);
  48. Assert.True(value < 50);
  49. Assert.Equal(value, boundValue);
  50. var currentThumbRect = thumb.Rect;
  51. Assert.True(currentThumbRect.Left < initialThumbRect.Left);
  52. }
  53. [Fact]
  54. public void Horizontal_Changes_Value_When_Clicking_Increase_Button()
  55. {
  56. var slider = _session.FindElementByAccessibilityId("HorizontalSlider");
  57. var thumb = slider.FindElementByAccessibilityId("thumb");
  58. var initialThumbRect = thumb.Rect;
  59. new Actions(_session).MoveToElement(slider, 100, 0, MoveToElementOffsetOrigin.Center).Click().Perform();
  60. var value = Math.Round(double.Parse(slider.Text, CultureInfo.InvariantCulture));
  61. var boundValue = double.Parse(
  62. _session.FindElementByAccessibilityId("HorizontalSliderValue").Text,
  63. CultureInfo.InvariantCulture);
  64. Assert.True(value > 50);
  65. Assert.Equal(value, boundValue);
  66. var currentThumbRect = thumb.Rect;
  67. Assert.True(currentThumbRect.Left > initialThumbRect.Left);
  68. }
  69. [Fact]
  70. public void Horizontal_Changes_Value_When_Clicking_Decrease_Button()
  71. {
  72. var slider = _session.FindElementByAccessibilityId("HorizontalSlider");
  73. var thumb = slider.FindElementByAccessibilityId("thumb");
  74. var initialThumbRect = thumb.Rect;
  75. new Actions(_session).MoveToElement(slider, -100, 0, MoveToElementOffsetOrigin.Center).Click().Perform();
  76. var value = Math.Round(double.Parse(slider.Text, CultureInfo.InvariantCulture));
  77. var boundValue = double.Parse(
  78. _session.FindElementByAccessibilityId("HorizontalSliderValue").Text,
  79. CultureInfo.InvariantCulture);
  80. Assert.True(value < 50);
  81. Assert.Equal(value, boundValue);
  82. var currentThumbRect = thumb.Rect;
  83. Assert.True(currentThumbRect.Left < initialThumbRect.Left);
  84. }
  85. }
  86. }