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