Browse Source

Start making automation tests work on macOS.

ui-automation-test
Steven Kirk 4 years ago
parent
commit
cab21b6084
  1. 2
      tests/Avalonia.IntegrationTests.Win32/AutomationTests.cs
  2. 16
      tests/Avalonia.IntegrationTests.Win32/ElementExtensions.cs
  3. 7
      tests/Avalonia.IntegrationTests.Win32/TestAppFixture.cs

2
tests/Avalonia.IntegrationTests.Win32/AutomationTests.cs

@ -33,7 +33,7 @@ namespace Avalonia.IntegrationTests.Win32
var labeledTextBox = _session.FindElementByAccessibilityId("LabeledByTextBox");
Assert.Equal("Label for TextBox", label.Text);
Assert.Equal("Label for TextBox", labeledTextBox.GetAttribute("Name"));
Assert.Equal("Label for TextBox", labeledTextBox.GetName());
}
}
}

16
tests/Avalonia.IntegrationTests.Win32/ElementExtensions.cs

@ -0,0 +1,16 @@
using System;
using System.Runtime.InteropServices;
using OpenQA.Selenium.Appium;
namespace Avalonia.IntegrationTests.Win32
{
internal static class ElementExtensions
{
public static string GetName(this AppiumWebElement element) => GetAttribute(element, "Name", "title");
public static string GetAttribute(AppiumWebElement element, string windows, string macOS)
{
return element.GetAttribute(RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? windows : macOS);
}
}
}

7
tests/Avalonia.IntegrationTests.Win32/TestAppFixture.cs

@ -11,7 +11,8 @@ namespace Avalonia.IntegrationTests.Win32
{
public class TestAppFixture : IDisposable
{
private const string TestAppPath = @"..\..\..\..\..\samples\IntegrationTestApp\bin\Debug\net6.0\IntegrationTestApp";
private const string TestAppPath = @"..\..\..\..\..\samples\IntegrationTestApp\bin\Debug\net6.0\IntegrationTestApp.exe";
private const string TestAppBundleId = "net.avaloniaui.avalonia.integrationtestapp";
public TestAppFixture()
{
@ -20,7 +21,7 @@ namespace Avalonia.IntegrationTests.Win32
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
opts.AddAdditionalCapability(MobileCapabilityType.App, path + ".exe");
opts.AddAdditionalCapability(MobileCapabilityType.App, path);
opts.AddAdditionalCapability(MobileCapabilityType.PlatformName, MobilePlatform.Windows);
opts.AddAdditionalCapability(MobileCapabilityType.DeviceName, "WindowsPC");
@ -35,7 +36,7 @@ namespace Avalonia.IntegrationTests.Win32
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
opts.AddAdditionalCapability(MobileCapabilityType.App, path + ".exe");
opts.AddAdditionalCapability("appium:bundleId", TestAppBundleId);
opts.AddAdditionalCapability(MobileCapabilityType.PlatformName, MobilePlatform.MacOS);
opts.AddAdditionalCapability(MobileCapabilityType.AutomationName, "mac2");

Loading…
Cancel
Save