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"> <TabItem Header="ComboBox">
<StackPanel> <StackPanel>
<ComboBox Name="ComboBox"> <ComboBox Name="BasicComboBox">
<ComboBoxItem>Item 0</ComboBoxItem> <ComboBoxItem>Item 0</ComboBoxItem>
<ComboBoxItem>Item 1</ComboBoxItem> <ComboBoxItem>Item 1</ComboBoxItem>
</ComboBox> </ComboBox>

4
samples/IntegrationTestApp/MainWindow.axaml.cs

@ -51,9 +51,9 @@ namespace IntegrationTestApp
var source = e.Source as Button; var source = e.Source as Button;
if (source?.Name == "ComboBoxSelectionClear") if (source?.Name == "ComboBoxSelectionClear")
this.FindControl<ComboBox>("ComboBox").SelectedIndex = -1; this.FindControl<ComboBox>("BasicComboBox").SelectedIndex = -1;
if (source?.Name == "ComboBoxSelectFirst") 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] [Fact]
public void Can_Change_Selection_Using_Mouse() public void Can_Change_Selection_Using_Mouse()
{ {
var comboBox = _session.FindElementByAccessibilityId("ComboBox"); var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
_session.FindElementByAccessibilityId("ComboBoxSelectFirst").Click(); _session.FindElementByAccessibilityId("ComboBoxSelectFirst").Click();
Assert.Equal("Item 0", comboBox.Text); Assert.Equal("Item 0", comboBox.GetComboBoxValue());
comboBox.Click(); comboBox.Click();
_session.FindElementByName("Item 1").SendClick(); _session.FindElementByName("Item 1").SendClick();
Assert.Equal("Item 1", comboBox.Text); Assert.Equal("Item 1", comboBox.GetComboBoxValue());
} }
[Fact] [Fact]
public void Can_Change_Selection_From_Unselected_Using_Mouse() public void Can_Change_Selection_From_Unselected_Using_Mouse()
{ {
var comboBox = _session.FindElementByAccessibilityId("ComboBox"); var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
_session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click(); _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
Assert.Equal(string.Empty, comboBox.Text); Assert.Equal(string.Empty, comboBox.GetComboBoxValue());
comboBox.Click(); comboBox.Click();
_session.FindElementByName("Item 0").SendClick(); _session.FindElementByName("Item 0").SendClick();
Assert.Equal("Item 0", comboBox.Text); Assert.Equal("Item 0", comboBox.GetComboBoxValue());
} }
[Fact] [Fact]
public void Can_Change_Selection_With_Keyboard() public void Can_Change_Selection_With_Keyboard()
{ {
var comboBox = _session.FindElementByAccessibilityId("ComboBox"); var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
_session.FindElementByAccessibilityId("ComboBoxSelectFirst").Click(); _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.LeftAlt + Keys.ArrowDown);
comboBox.SendKeys(Keys.ArrowDown); comboBox.SendKeys(Keys.ArrowDown);
@ -62,16 +62,16 @@ namespace Avalonia.IntegrationTests.Appium
var item = _session.FindElementByName("Item 1"); var item = _session.FindElementByName("Item 1");
item.SendKeys(Keys.Enter); item.SendKeys(Keys.Enter);
Assert.Equal("Item 1", comboBox.Text); Assert.Equal("Item 1", comboBox.GetComboBoxValue());
} }
[Fact] [Fact]
public void Can_Change_Selection_With_Keyboard_From_Unselected() public void Can_Change_Selection_With_Keyboard_From_Unselected()
{ {
var comboBox = _session.FindElementByAccessibilityId("ComboBox"); var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
_session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click(); _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.LeftAlt + Keys.ArrowDown);
comboBox.SendKeys(Keys.ArrowDown); comboBox.SendKeys(Keys.ArrowDown);
@ -79,16 +79,16 @@ namespace Avalonia.IntegrationTests.Appium
var item = _session.FindElementByName("Item 0"); var item = _session.FindElementByName("Item 0");
item.SendKeys(Keys.Enter); item.SendKeys(Keys.Enter);
Assert.Equal("Item 0", comboBox.Text); Assert.Equal("Item 0", comboBox.GetComboBoxValue());
} }
[Fact] [Fact]
public void Can_Cancel_Keyboard_Selection_With_Escape() public void Can_Cancel_Keyboard_Selection_With_Escape()
{ {
var comboBox = _session.FindElementByAccessibilityId("ComboBox"); var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
_session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click(); _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.LeftAlt + Keys.ArrowDown);
comboBox.SendKeys(Keys.ArrowDown); comboBox.SendKeys(Keys.ArrowDown);
@ -96,7 +96,7 @@ namespace Avalonia.IntegrationTests.Appium
var item = _session.FindElementByName("Item 0"); var item = _session.FindElementByName("Item 0");
item.SendKeys(Keys.Escape); 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 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 string GetName(this AppiumWebElement element) => GetAttribute(element, "Name", "title");
public static bool? GetIsChecked(this AppiumWebElement element) => 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("appium:bundleId", TestAppBundleId);
opts.AddAdditionalCapability(MobileCapabilityType.PlatformName, MobilePlatform.MacOS); opts.AddAdditionalCapability(MobileCapabilityType.PlatformName, MobilePlatform.MacOS);
opts.AddAdditionalCapability(MobileCapabilityType.AutomationName, "mac2"); opts.AddAdditionalCapability(MobileCapabilityType.AutomationName, "mac2");
opts.AddAdditionalCapability("appium:showServerLogs", true);
Session = new MacDriver<AppiumWebElement>( Session = new MacDriver<AppiumWebElement>(
new Uri("http://127.0.0.1:4723/wd/hub"), new Uri("http://127.0.0.1:4723/wd/hub"),

Loading…
Cancel
Save