SliderTests.cs 4.0 KB

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