Browse Source

Trying to get stuff working on macOS.

Man, appium for mac sucks.
ui-automation-test
Steven Kirk 5 years ago
parent
commit
26137caaca
  1. 2
      samples/IntegrationTestApp/MainWindow.axaml
  2. 4
      samples/IntegrationTestApp/MainWindow.axaml.cs
  3. 30
      tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs
  4. 7
      tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs
  5. 1
      tests/Avalonia.IntegrationTests.Appium/TestAppFixture.cs

2
samples/IntegrationTestApp/MainWindow.axaml

@ -59,7 +59,7 @@
<TabItem Header="ComboBox">
<StackPanel>
<ComboBox Name="ComboBox">
<ComboBox Name="BasicComboBox">
<ComboBoxItem>Item 0</ComboBoxItem>
<ComboBoxItem>Item 1</ComboBoxItem>
</ComboBox>

4
samples/IntegrationTestApp/MainWindow.axaml.cs

@ -51,9 +51,9 @@ namespace IntegrationTestApp
var source = e.Source as Button;
if (source?.Name == "ComboBoxSelectionClear")
this.FindControl<ComboBox>("ComboBox").SelectedIndex = -1;
this.FindControl<ComboBox>("BasicComboBox").SelectedIndex = -1;
if (source?.Name == "ComboBoxSelectFirst")
this.FindControl<ComboBox>("ComboBox").SelectedIndex = 0;
this.FindControl<ComboBox>("BasicComboBox").SelectedIndex = 0;
}
}
}

30
tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs

@ -23,38 +23,38 @@ namespace Avalonia.IntegrationTests.Appium
[Fact]
public void Can_Change_Selection_Using_Mouse()
{
var comboBox = _session.FindElementByAccessibilityId("ComboBox");
var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
_session.FindElementByAccessibilityId("ComboBoxSelectFirst").Click();
Assert.Equal("Item 0", comboBox.Text);
Assert.Equal("Item 0", comboBox.GetComboBoxValue());
comboBox.Click();
_session.FindElementByName("Item 1").SendClick();
Assert.Equal("Item 1", comboBox.Text);
Assert.Equal("Item 1", comboBox.GetComboBoxValue());
}
[Fact]
public void Can_Change_Selection_From_Unselected_Using_Mouse()
{
var comboBox = _session.FindElementByAccessibilityId("ComboBox");
var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
_session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
Assert.Equal(string.Empty, comboBox.Text);
Assert.Equal(string.Empty, comboBox.GetComboBoxValue());
comboBox.Click();
_session.FindElementByName("Item 0").SendClick();
Assert.Equal("Item 0", comboBox.Text);
Assert.Equal("Item 0", comboBox.GetComboBoxValue());
}
[Fact]
public void Can_Change_Selection_With_Keyboard()
{
var comboBox = _session.FindElementByAccessibilityId("ComboBox");
var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
_session.FindElementByAccessibilityId("ComboBoxSelectFirst").Click();
Assert.Equal("Item 0", comboBox.Text);
Assert.Equal("Item 0", comboBox.GetComboBoxValue());
comboBox.SendKeys(Keys.LeftAlt + Keys.ArrowDown);
comboBox.SendKeys(Keys.ArrowDown);
@ -62,16 +62,16 @@ namespace Avalonia.IntegrationTests.Appium
var item = _session.FindElementByName("Item 1");
item.SendKeys(Keys.Enter);
Assert.Equal("Item 1", comboBox.Text);
Assert.Equal("Item 1", comboBox.GetComboBoxValue());
}
[Fact]
public void Can_Change_Selection_With_Keyboard_From_Unselected()
{
var comboBox = _session.FindElementByAccessibilityId("ComboBox");
var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
_session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
Assert.Equal(string.Empty, comboBox.Text);
Assert.Equal(string.Empty, comboBox.GetComboBoxValue());
comboBox.SendKeys(Keys.LeftAlt + Keys.ArrowDown);
comboBox.SendKeys(Keys.ArrowDown);
@ -79,16 +79,16 @@ namespace Avalonia.IntegrationTests.Appium
var item = _session.FindElementByName("Item 0");
item.SendKeys(Keys.Enter);
Assert.Equal("Item 0", comboBox.Text);
Assert.Equal("Item 0", comboBox.GetComboBoxValue());
}
[Fact]
public void Can_Cancel_Keyboard_Selection_With_Escape()
{
var comboBox = _session.FindElementByAccessibilityId("ComboBox");
var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
_session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
Assert.Equal(string.Empty, comboBox.Text);
Assert.Equal(string.Empty, comboBox.GetComboBoxValue());
comboBox.SendKeys(Keys.LeftAlt + Keys.ArrowDown);
comboBox.SendKeys(Keys.ArrowDown);
@ -96,7 +96,7 @@ namespace Avalonia.IntegrationTests.Appium
var item = _session.FindElementByName("Item 0");
item.SendKeys(Keys.Escape);
Assert.Equal(string.Empty, comboBox.Text);
Assert.Equal(string.Empty, comboBox.GetComboBoxValue());
}
}
}

7
tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs

@ -8,6 +8,13 @@ namespace Avalonia.IntegrationTests.Appium
{
internal static class ElementExtensions
{
public static string GetComboBoxValue(this AppiumWebElement element)
{
return RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ?
element.Text :
element.GetAttribute("value");
}
public static string GetName(this AppiumWebElement element) => GetAttribute(element, "Name", "title");
public static bool? GetIsChecked(this AppiumWebElement element) =>

1
tests/Avalonia.IntegrationTests.Appium/TestAppFixture.cs

@ -39,6 +39,7 @@ namespace Avalonia.IntegrationTests.Appium
opts.AddAdditionalCapability("appium:bundleId", TestAppBundleId);
opts.AddAdditionalCapability(MobileCapabilityType.PlatformName, MobilePlatform.MacOS);
opts.AddAdditionalCapability(MobileCapabilityType.AutomationName, "mac2");
opts.AddAdditionalCapability("appium:showServerLogs", true);
Session = new MacDriver<AppiumWebElement>(
new Uri("http://127.0.0.1:4723/wd/hub"),

Loading…
Cancel
Save