Browse Source

Added failing integration test for #7906.

pull/7953/head
Steven Kirk 5 years ago
parent
commit
69f96d5b44
  1. 5
      samples/IntegrationTestApp/MainWindow.axaml
  2. 11
      tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs
  3. 15
      tests/Avalonia.IntegrationTests.Appium/MenuTests.cs

5
samples/IntegrationTestApp/MainWindow.axaml

@ -87,7 +87,10 @@
</MenuItem>
</MenuItem>
</Menu>
<TextBlock Name="ClickedMenuItem">None</TextBlock>
<StackPanel>
<TextBlock Name="ClickedMenuItem">None</TextBlock>
<TextBox Name="MenuFocusTest"/>
</StackPanel>
</DockPanel>
</TabItem>
</TabControl>

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

@ -29,6 +29,12 @@ namespace Avalonia.IntegrationTests.Appium
_ => throw new ArgumentOutOfRangeException($"Unexpected IsChecked value.")
};
public static bool GetIsFocused(this AppiumWebElement element)
{
var active = element.WrappedDriver.SwitchTo().ActiveElement() as AppiumWebElement;
return element.Id == active?.Id;
}
public static void SendClick(this AppiumWebElement element)
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
@ -44,6 +50,11 @@ namespace Avalonia.IntegrationTests.Appium
}
}
public static void MovePointerOver(this AppiumWebElement element)
{
new Actions(element.WrappedDriver).MoveToElement(element).Perform();
}
public static string GetAttribute(AppiumWebElement element, string windows, string macOS)
{
return element.GetAttribute(RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? windows : macOS);

15
tests/Avalonia.IntegrationTests.Appium/MenuTests.cs

@ -59,5 +59,20 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("Ctrl+O", childMenuItem.GetAttribute("AcceleratorKey"));
}
[Fact]
public void PointerOver_Does_Not_Steal_Focus()
{
// Issue #7906
var textBox = _session.FindElementByAccessibilityId("MenuFocusTest");
textBox.Click();
Assert.True(textBox.GetIsFocused());
var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
rootMenuItem.MovePointerOver();
Assert.True(textBox.GetIsFocused());
}
}
}

Loading…
Cancel
Save