csharpc-sharpdotnetxamlavaloniauicross-platformcross-platform-xamlavaloniaguimulti-platformuser-interfacedotnetcore
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
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");
|
|
}
|
|
}
|
|
}
|
|
|