A cross-platform UI framework for .NET
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

97 lines
2.9 KiB

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 : TestBase
{
public ListBoxTests(DefaultAppFixture fixture)
: base(fixture, "ListBox")
{
}
[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);
}
[Fact(Skip = "WinAppDriver seems unable to consistently send a Ctrl key and appium-mac2-driver just hangs")]
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);
}
// appium-mac2-driver just hangs
[PlatformFact(TestPlatforms.Windows)]
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");
}
}
}