5 changed files with 126 additions and 8 deletions
@ -0,0 +1,103 @@ |
|||
using System.Threading; |
|||
using OpenQA.Selenium; |
|||
using OpenQA.Selenium.Appium; |
|||
using OpenQA.Selenium.Interactions; |
|||
using Xunit; |
|||
|
|||
namespace Avalonia.IntegrationTests.Appium |
|||
{ |
|||
[Collection("Default")] |
|||
public class ListBoxTests |
|||
{ |
|||
private readonly AppiumDriver<AppiumWebElement> _session; |
|||
|
|||
public ListBoxTests(TestAppFixture fixture) |
|||
{ |
|||
_session = fixture.Session; |
|||
|
|||
var tabs = _session.FindElementByAccessibilityId("MainTabs"); |
|||
var tab = tabs.FindElementByName("ListBox"); |
|||
tab.Click(); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Can_Select_Item_By_Clicking() |
|||
{ |
|||
var listBox = GetTarget(); |
|||
var item2 = listBox.FindElementByName("Item 2"); |
|||
var item4 = listBox.FindElementByName("Item 4"); |
|||
|
|||
Assert.False(item2.Selected); |
|||
Assert.False(item4.Selected); |
|||
|
|||
item2.SendClick(); |
|||
Assert.True(item2.Selected); |
|||
Assert.False(item4.Selected); |
|||
|
|||
item4.SendClick(); |
|||
Assert.False(item2.Selected); |
|||
Assert.True(item4.Selected); |
|||
} |
|||
|
|||
// WinAppDriver seems unable to consistently send a Ctrl key.
|
|||
[PlatformFact(SkipOnWindows = true)] |
|||
public void Can_Select_Items_By_Ctrl_Clicking() |
|||
{ |
|||
var listBox = GetTarget(); |
|||
var item2 = listBox.FindElementByName("Item 2"); |
|||
var item4 = listBox.FindElementByName("Item 4"); |
|||
|
|||
Assert.False(item2.Selected); |
|||
Assert.False(item4.Selected); |
|||
|
|||
new Actions(_session) |
|||
.Click(item2) |
|||
.KeyDown(Keys.Control) |
|||
.Click(item4) |
|||
.KeyUp(Keys.Control) |
|||
.Perform(); |
|||
|
|||
Assert.True(item2.Selected); |
|||
Assert.True(item4.Selected); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Can_Select_Range_By_Shift_Clicking() |
|||
{ |
|||
var listBox = GetTarget(); |
|||
var item2 = listBox.FindElementByName("Item 2"); |
|||
var item3 = listBox.FindElementByName("Item 3"); |
|||
var item4 = listBox.FindElementByName("Item 4"); |
|||
|
|||
Assert.False(item2.Selected); |
|||
Assert.False(item3.Selected); |
|||
Assert.False(item4.Selected); |
|||
|
|||
new Actions(_session) |
|||
.Click(item2) |
|||
.KeyDown(Keys.Shift) |
|||
.Click(item4) |
|||
.KeyUp(Keys.Shift) |
|||
.Perform(); |
|||
|
|||
Assert.True(item2.Selected); |
|||
Assert.True(item3.Selected); |
|||
Assert.True(item4.Selected); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Is_Virtualized() |
|||
{ |
|||
var listBox = GetTarget(); |
|||
var children = listBox.GetChildren(); |
|||
|
|||
Assert.True(children.Count < 100); |
|||
} |
|||
|
|||
private AppiumWebElement GetTarget() |
|||
{ |
|||
_session.FindElementByAccessibilityId("ListBoxSelectionClear").Click(); |
|||
return _session.FindElementByAccessibilityId("BasicListBox"); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue