Browse Source
Some skipped on Windows as right button actions aren't supported by WinAppDriver.pull/9360/head
3 changed files with 173 additions and 0 deletions
@ -0,0 +1,151 @@ |
|||||
|
using System; |
||||
|
using System.Threading; |
||||
|
using OpenQA.Selenium.Appium; |
||||
|
using OpenQA.Selenium.Interactions; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Avalonia.IntegrationTests.Appium |
||||
|
{ |
||||
|
[Collection("Default")] |
||||
|
public class GestureTests |
||||
|
{ |
||||
|
private readonly AppiumDriver<AppiumWebElement> _session; |
||||
|
|
||||
|
public GestureTests(TestAppFixture fixture) |
||||
|
{ |
||||
|
_session = fixture.Session; |
||||
|
|
||||
|
var tabs = _session.FindElementByAccessibilityId("MainTabs"); |
||||
|
var tab = tabs.FindElementByName("Gestures"); |
||||
|
tab.Click(); |
||||
|
var clear = _session.FindElementByAccessibilityId("ClearLastGesture"); |
||||
|
clear.Click(); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public void Tapped_Is_Raised() |
||||
|
{ |
||||
|
var border = _session.FindElementByAccessibilityId("GestureBorder"); |
||||
|
var lastGesture = _session.FindElementByAccessibilityId("LastGesture"); |
||||
|
|
||||
|
new Actions(_session).Click(border).Perform(); |
||||
|
|
||||
|
Assert.Equal("Tapped", lastGesture.Text); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public void Tapped_Is_Raised_Slow() |
||||
|
{ |
||||
|
var border = _session.FindElementByAccessibilityId("GestureBorder"); |
||||
|
var lastGesture = _session.FindElementByAccessibilityId("LastGesture"); |
||||
|
|
||||
|
new Actions(_session).ClickAndHold(border).Perform(); |
||||
|
|
||||
|
Thread.Sleep(2000); |
||||
|
|
||||
|
new Actions(_session).Release(border).Perform(); |
||||
|
|
||||
|
Assert.Equal("Tapped", lastGesture.Text); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public void Tapped_Is_Not_Raised_For_Drag() |
||||
|
{ |
||||
|
var border = _session.FindElementByAccessibilityId("GestureBorder"); |
||||
|
var lastGesture = _session.FindElementByAccessibilityId("LastGesture"); |
||||
|
|
||||
|
new Actions(_session) |
||||
|
.ClickAndHold(border) |
||||
|
.MoveByOffset(50, 50) |
||||
|
.Release() |
||||
|
.Perform(); |
||||
|
|
||||
|
Assert.Equal(string.Empty, lastGesture.Text); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public void DoubleTapped_Is_Raised() |
||||
|
{ |
||||
|
var border = _session.FindElementByAccessibilityId("GestureBorder"); |
||||
|
var lastGesture = _session.FindElementByAccessibilityId("LastGesture"); |
||||
|
|
||||
|
new Actions(_session).DoubleClick(border).Perform(); |
||||
|
|
||||
|
Assert.Equal("DoubleTapped", lastGesture.Text); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public void DoubleTapped_Is_Raised_2() |
||||
|
{ |
||||
|
var border = _session.FindElementByAccessibilityId("GestureBorder"); |
||||
|
var lastGesture = _session.FindElementByAccessibilityId("LastGesture"); |
||||
|
|
||||
|
new Actions(_session).ClickAndHold(border).Release().Perform(); |
||||
|
|
||||
|
Thread.Sleep(100); |
||||
|
|
||||
|
new Actions(_session).ClickAndHold(border).Release().Perform(); |
||||
|
|
||||
|
Assert.Equal("DoubleTapped", lastGesture.Text); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public void DoubleTapped_Is_Raised_Not_Raised_If_Too_Slow() |
||||
|
{ |
||||
|
var border = _session.FindElementByAccessibilityId("GestureBorder"); |
||||
|
var lastGesture = _session.FindElementByAccessibilityId("LastGesture"); |
||||
|
|
||||
|
new Actions(_session).ClickAndHold(border).Release().Perform(); |
||||
|
|
||||
|
Thread.Sleep(2000); |
||||
|
|
||||
|
new Actions(_session).ClickAndHold(border).Release().Perform(); |
||||
|
|
||||
|
Assert.Equal("Tapped", lastGesture.Text); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public void RightTapped_Is_Raised() |
||||
|
{ |
||||
|
var border = _session.FindElementByAccessibilityId("GestureBorder"); |
||||
|
var lastGesture = _session.FindElementByAccessibilityId("LastGesture"); |
||||
|
|
||||
|
new Actions(_session).ContextClick(border).Perform(); |
||||
|
|
||||
|
Assert.Equal("RightTapped", lastGesture.Text); |
||||
|
} |
||||
|
|
||||
|
[PlatformFact(TestPlatforms.MacOS)] |
||||
|
public void RightTapped_Is_Raised_2() |
||||
|
{ |
||||
|
var border = _session.FindElementByAccessibilityId("GestureBorder"); |
||||
|
var lastGesture = _session.FindElementByAccessibilityId("LastGesture"); |
||||
|
var device = new PointerInputDevice(PointerKind.Mouse); |
||||
|
var b = new ActionBuilder(); |
||||
|
|
||||
|
b.AddAction(device.CreatePointerMove(border, 50, 50, TimeSpan.FromMilliseconds(100))); |
||||
|
b.AddAction(device.CreatePointerDown(MouseButton.Right)); |
||||
|
b.AddAction(device.CreatePointerMove(border, 2, 2, TimeSpan.FromMilliseconds(100))); |
||||
|
b.AddAction(device.CreatePointerUp(MouseButton.Right)); |
||||
|
_session.PerformActions(b.ToActionSequenceList()); |
||||
|
|
||||
|
Assert.Equal("RightTapped", lastGesture.Text); |
||||
|
} |
||||
|
|
||||
|
[PlatformFact(TestPlatforms.MacOS)] |
||||
|
public void RightTapped_Is_Not_Raised_For_Drag() |
||||
|
{ |
||||
|
var border = _session.FindElementByAccessibilityId("GestureBorder"); |
||||
|
var lastGesture = _session.FindElementByAccessibilityId("LastGesture"); |
||||
|
var device = new PointerInputDevice(PointerKind.Mouse); |
||||
|
var b = new ActionBuilder(); |
||||
|
|
||||
|
b.AddAction(device.CreatePointerMove(border, 50, 50, TimeSpan.FromMilliseconds(100))); |
||||
|
b.AddAction(device.CreatePointerDown(MouseButton.Right)); |
||||
|
b.AddAction(device.CreatePointerMove(CoordinateOrigin.Pointer, 50, 50, TimeSpan.FromMilliseconds(100))); |
||||
|
b.AddAction(device.CreatePointerUp(MouseButton.Right)); |
||||
|
|
||||
|
Assert.Equal(string.Empty, lastGesture.Text); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue