From 576014db05843a6104ae8722a60ae9d56a00995b Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 18 Apr 2023 10:06:56 +0200 Subject: [PATCH] Improve slider integration tests. They are now failing due to #11015. --- samples/IntegrationTestApp/MainWindow.axaml | 17 +++- .../IntegrationTestApp/MainWindow.axaml.cs | 2 + .../ScrollBarTests.cs | 2 +- .../SliderTests.cs | 89 +++++++++++++++++-- 4 files changed, 99 insertions(+), 11 deletions(-) diff --git a/samples/IntegrationTestApp/MainWindow.axaml b/samples/IntegrationTestApp/MainWindow.axaml index 95378ed717..d8d9678a2d 100644 --- a/samples/IntegrationTestApp/MainWindow.axaml +++ b/samples/IntegrationTestApp/MainWindow.axaml @@ -170,10 +170,21 @@ - - + + + + + + + + + - + + diff --git a/samples/IntegrationTestApp/MainWindow.axaml.cs b/samples/IntegrationTestApp/MainWindow.axaml.cs index c9c7939c1c..39497f1811 100644 --- a/samples/IntegrationTestApp/MainWindow.axaml.cs +++ b/samples/IntegrationTestApp/MainWindow.axaml.cs @@ -270,6 +270,8 @@ namespace IntegrationTestApp this.Get("BasicListBox").SelectedIndex = -1; if (source?.Name == "MenuClickedMenuItemReset") this.Get("ClickedMenuItem").Text = "None"; + if (source?.Name == "ResetSliders") + this.Get("HorizontalSlider").Value = 50; if (source?.Name == "ShowTransparentWindow") ShowTransparentWindow(); if (source?.Name == "ShowTransparentPopup") diff --git a/tests/Avalonia.IntegrationTests.Appium/ScrollBarTests.cs b/tests/Avalonia.IntegrationTests.Appium/ScrollBarTests.cs index e9d0a5d3a4..9d5df2fb46 100644 --- a/tests/Avalonia.IntegrationTests.Appium/ScrollBarTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/ScrollBarTests.cs @@ -13,7 +13,7 @@ namespace Avalonia.IntegrationTests.Appium _session = fixture.Session; var tabs = _session.FindElementByAccessibilityId("MainTabs"); - var tab = tabs.FindElementByName("ScrollBarTab"); + var tab = tabs.FindElementByName("ScrollBar"); tab.Click(); } diff --git a/tests/Avalonia.IntegrationTests.Appium/SliderTests.cs b/tests/Avalonia.IntegrationTests.Appium/SliderTests.cs index 9371a49ade..8b919d996e 100644 --- a/tests/Avalonia.IntegrationTests.Appium/SliderTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/SliderTests.cs @@ -1,4 +1,5 @@ using System; +using System.Globalization; using OpenQA.Selenium.Appium; using OpenQA.Selenium.Interactions; using Xunit; @@ -15,21 +16,95 @@ namespace Avalonia.IntegrationTests.Appium _session = fixture.Session; var tabs = _session.FindElementByAccessibilityId("MainTabs"); - var tab = tabs.FindElementByName("SliderTab"); + var tab = tabs.FindElementByName("Slider"); tab.Click(); + + var reset = _session.FindElementByAccessibilityId("ResetSliders"); + reset.Click(); + } + + [Fact] + public void Horizontal_Changes_Value_Dragging_Thumb_Right() + { + var slider = _session.FindElementByAccessibilityId("HorizontalSlider"); + var thumb = slider.FindElementByAccessibilityId("thumb"); + var initialThumbRect = thumb.Rect; + + new Actions(_session).ClickAndHold(thumb).MoveByOffset(100, 0).Release().Perform(); + + var value = Math.Round(double.Parse(slider.Text, CultureInfo.InvariantCulture)); + var boundValue = double.Parse( + _session.FindElementByAccessibilityId("HorizontalSliderValue").Text, + CultureInfo.InvariantCulture); + + Assert.True(value > 50); + Assert.Equal(value, boundValue); + + var currentThumbRect = thumb.Rect; + Assert.True(currentThumbRect.Left > initialThumbRect.Left); + } + + [Fact] + public void Horizontal_Changes_Value_Dragging_Thumb_Left() + { + var slider = _session.FindElementByAccessibilityId("HorizontalSlider"); + var thumb = slider.FindElementByAccessibilityId("thumb"); + var initialThumbRect = thumb.Rect; + + new Actions(_session).ClickAndHold(thumb).MoveByOffset(-100, 0).Release().Perform(); + + var value = Math.Round(double.Parse(slider.Text, CultureInfo.InvariantCulture)); + var boundValue = double.Parse( + _session.FindElementByAccessibilityId("HorizontalSliderValue").Text, + CultureInfo.InvariantCulture); + + Assert.True(value < 50); + Assert.Equal(value, boundValue); + + var currentThumbRect = thumb.Rect; + Assert.True(currentThumbRect.Left < initialThumbRect.Left); } [Fact] - public void Changes_Value_When_Clicking_Increase_Button() + public void Horizontal_Changes_Value_When_Clicking_Increase_Button() { - var slider = _session.FindElementByAccessibilityId("Slider"); + var slider = _session.FindElementByAccessibilityId("HorizontalSlider"); + var thumb = slider.FindElementByAccessibilityId("thumb"); + var initialThumbRect = thumb.Rect; + + new Actions(_session).MoveToElement(slider).MoveByOffset(100, 0).Click().Perform(); + + var value = Math.Round(double.Parse(slider.Text, CultureInfo.InvariantCulture)); + var boundValue = double.Parse( + _session.FindElementByAccessibilityId("HorizontalSliderValue").Text, + CultureInfo.InvariantCulture); + + Assert.True(value > 50); + Assert.Equal(value, boundValue); + + var currentThumbRect = thumb.Rect; + Assert.True(currentThumbRect.Left > initialThumbRect.Left); + } + + [Fact] + public void Horizontal_Changes_Value_When_Clicking_Decrease_Button() + { + var slider = _session.FindElementByAccessibilityId("HorizontalSlider"); + var thumb = slider.FindElementByAccessibilityId("thumb"); + var initialThumbRect = thumb.Rect; + + new Actions(_session).MoveToElement(slider).MoveByOffset(-100, 0).Click().Perform(); - // slider.Text gets the Slider value - Assert.True(double.Parse(slider.Text) == 30); + var value = Math.Round(double.Parse(slider.Text, CultureInfo.InvariantCulture)); + var boundValue = double.Parse( + _session.FindElementByAccessibilityId("HorizontalSliderValue").Text, + CultureInfo.InvariantCulture); - new Actions(_session).Click(slider).Perform(); + Assert.True(value < 50); + Assert.Equal(value, boundValue); - Assert.Equal(50, Math.Round(double.Parse(slider.Text))); + var currentThumbRect = thumb.Rect; + Assert.True(currentThumbRect.Left < initialThumbRect.Left); } } }