Browse Source

Refactor PlatformFact.

To make it inclusive rather than exclusive.
pull/8232/head
Steven Kirk 4 years ago
parent
commit
8b9e675bd4
  1. 2
      tests/Avalonia.IntegrationTests.Appium/ButtonTests.cs
  2. 6
      tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs
  3. 2
      tests/Avalonia.IntegrationTests.Appium/ListBoxTests.cs
  4. 16
      tests/Avalonia.IntegrationTests.Appium/MenuTests.cs
  5. 2
      tests/Avalonia.IntegrationTests.Appium/NativeMenuTests.cs
  6. 32
      tests/Avalonia.IntegrationTests.Appium/PlatformFactAttribute.cs
  7. 14
      tests/Avalonia.IntegrationTests.Appium/WindowTests.cs

2
tests/Avalonia.IntegrationTests.Appium/ButtonTests.cs

@ -44,7 +44,7 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("Button with TextBlock", button.Text); Assert.Equal("Button with TextBlock", button.Text);
} }
[PlatformFact(SkipOnOSX = true)] [PlatformFact(TestPlatforms.Windows)]
public void ButtonWithAcceleratorKey() public void ButtonWithAcceleratorKey()
{ {
var button = _session.FindElementByAccessibilityId("ButtonWithAcceleratorKey"); var button = _session.FindElementByAccessibilityId("ButtonWithAcceleratorKey");

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

@ -46,7 +46,7 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("Item 0", comboBox.GetComboBoxValue()); Assert.Equal("Item 0", comboBox.GetComboBoxValue());
} }
[PlatformFact(SkipOnOSX = true)] [PlatformFact(TestPlatforms.Windows)]
public void Can_Change_Selection_With_Keyboard() public void Can_Change_Selection_With_Keyboard()
{ {
var comboBox = _session.FindElementByAccessibilityId("BasicComboBox"); var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
@ -63,7 +63,7 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("Item 1", comboBox.GetComboBoxValue()); Assert.Equal("Item 1", comboBox.GetComboBoxValue());
} }
[PlatformFact(SkipOnOSX = true)] [PlatformFact(TestPlatforms.Windows)]
public void Can_Change_Selection_With_Keyboard_From_Unselected() public void Can_Change_Selection_With_Keyboard_From_Unselected()
{ {
var comboBox = _session.FindElementByAccessibilityId("BasicComboBox"); var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");
@ -80,7 +80,7 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("Item 0", comboBox.GetComboBoxValue()); Assert.Equal("Item 0", comboBox.GetComboBoxValue());
} }
[PlatformFact(SkipOnOSX = true)] [PlatformFact(TestPlatforms.Windows)]
public void Can_Cancel_Keyboard_Selection_With_Escape() public void Can_Cancel_Keyboard_Selection_With_Escape()
{ {
var comboBox = _session.FindElementByAccessibilityId("BasicComboBox"); var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");

2
tests/Avalonia.IntegrationTests.Appium/ListBoxTests.cs

@ -61,7 +61,7 @@ namespace Avalonia.IntegrationTests.Appium
} }
// appium-mac2-driver just hangs // appium-mac2-driver just hangs
[PlatformFact(SkipOnOSX = true)] [PlatformFact(TestPlatforms.Windows)]
public void Can_Select_Range_By_Shift_Clicking() public void Can_Select_Range_By_Shift_Clicking()
{ {
var listBox = GetTarget(); var listBox = GetTarget();

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

@ -57,7 +57,7 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("_Grandchild", clickedMenuItem.Text); Assert.Equal("_Grandchild", clickedMenuItem.Text);
} }
[PlatformFact(SkipOnOSX = true)] [PlatformFact(TestPlatforms.Windows)]
public void Select_Child_With_Alt_Arrow_Keys() public void Select_Child_With_Alt_Arrow_Keys()
{ {
new Actions(_session) new Actions(_session)
@ -69,7 +69,7 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("_Child 1", clickedMenuItem.Text); Assert.Equal("_Child 1", clickedMenuItem.Text);
} }
[PlatformFact(SkipOnOSX = true)] [PlatformFact(TestPlatforms.Windows)]
public void Select_Grandchild_With_Alt_Arrow_Keys() public void Select_Grandchild_With_Alt_Arrow_Keys()
{ {
new Actions(_session) new Actions(_session)
@ -81,7 +81,7 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("_Grandchild", clickedMenuItem.Text); Assert.Equal("_Grandchild", clickedMenuItem.Text);
} }
[PlatformFact(SkipOnOSX = true)] [PlatformFact(TestPlatforms.Windows)]
public void Select_Child_With_Alt_Access_Keys() public void Select_Child_With_Alt_Access_Keys()
{ {
new Actions(_session) new Actions(_session)
@ -93,7 +93,7 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("_Child 1", clickedMenuItem.Text); Assert.Equal("_Child 1", clickedMenuItem.Text);
} }
[PlatformFact(SkipOnOSX = true)] [PlatformFact(TestPlatforms.Windows)]
public void Select_Grandchild_With_Alt_Access_Keys() public void Select_Grandchild_With_Alt_Access_Keys()
{ {
new Actions(_session) new Actions(_session)
@ -105,7 +105,7 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("_Grandchild", clickedMenuItem.Text); Assert.Equal("_Grandchild", clickedMenuItem.Text);
} }
[PlatformFact(SkipOnOSX = true)] [PlatformFact(TestPlatforms.Windows)]
public void Select_Child_With_Click_Arrow_Keys() public void Select_Child_With_Click_Arrow_Keys()
{ {
var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem"); var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
@ -119,7 +119,7 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("_Child 1", clickedMenuItem.Text); Assert.Equal("_Child 1", clickedMenuItem.Text);
} }
[PlatformFact(SkipOnOSX = true)] [PlatformFact(TestPlatforms.Windows)]
public void Select_Grandchild_With_Click_Arrow_Keys() public void Select_Grandchild_With_Click_Arrow_Keys()
{ {
var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem"); var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
@ -133,7 +133,7 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("_Grandchild", clickedMenuItem.Text); Assert.Equal("_Grandchild", clickedMenuItem.Text);
} }
[PlatformFact(SkipOnOSX = true)] [PlatformFact(TestPlatforms.Windows)]
public void Child_AcceleratorKey() public void Child_AcceleratorKey()
{ {
var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem"); var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
@ -145,7 +145,7 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("Ctrl+O", childMenuItem.GetAttribute("AcceleratorKey")); Assert.Equal("Ctrl+O", childMenuItem.GetAttribute("AcceleratorKey"));
} }
[PlatformFact(SkipOnOSX = true)] [PlatformFact(TestPlatforms.Windows)]
public void PointerOver_Does_Not_Steal_Focus() public void PointerOver_Does_Not_Steal_Focus()
{ {
// Issue #7906 // Issue #7906

2
tests/Avalonia.IntegrationTests.Appium/NativeMenuTests.cs

@ -17,7 +17,7 @@ namespace Avalonia.IntegrationTests.Appium
tab.Click(); tab.Click();
} }
[PlatformFact(SkipOnWindows = true)] [PlatformFact(TestPlatforms.MacOS)]
public void View_Menu_Select_Button_Tab() public void View_Menu_Select_Button_Tab()
{ {
var tabs = _session.FindElementByAccessibilityId("MainTabs"); var tabs = _session.FindElementByAccessibilityId("MainTabs");

32
tests/Avalonia.IntegrationTests.Appium/PlatformFactAttribute.cs

@ -5,21 +5,33 @@ using Xunit;
namespace Avalonia.IntegrationTests.Appium namespace Avalonia.IntegrationTests.Appium
{ {
[Flags]
internal enum TestPlatforms
{
Windows = 0x01,
MacOS = 0x02,
All = Windows | MacOS,
}
internal class PlatformFactAttribute : FactAttribute internal class PlatformFactAttribute : FactAttribute
{ {
public PlatformFactAttribute(TestPlatforms platforms = TestPlatforms.All) => Platforms = platforms;
public TestPlatforms Platforms { get; }
public override string? Skip public override string? Skip
{ {
get get => IsSupported() ? null : $"Ignored on {RuntimeInformation.OSDescription}";
{
if (SkipOnWindows && RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
return "Ignored on Windows";
if (SkipOnOSX && RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
return "Ignored on MacOS";
return null;
}
set => throw new NotSupportedException(); set => throw new NotSupportedException();
} }
public bool SkipOnOSX { get; set; }
public bool SkipOnWindows { get; set; } private bool IsSupported()
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
return Platforms.HasAnyFlag(TestPlatforms.Windows);
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
return Platforms.HasAnyFlag(TestPlatforms.MacOS);
return false;
}
} }
} }

14
tests/Avalonia.IntegrationTests.Appium/WindowTests.cs

@ -54,7 +54,7 @@ namespace Avalonia.IntegrationTests.Appium
} }
} }
[PlatformFact(SkipOnWindows = true)] [PlatformFact(TestPlatforms.MacOS)]
public void OSX_WindowOrder_Modal_Dialog_Stays_InFront_Of_Parent() public void OSX_WindowOrder_Modal_Dialog_Stays_InFront_Of_Parent()
{ {
var mainWindow = _session.FindElementByAccessibilityId("MainWindow"); var mainWindow = _session.FindElementByAccessibilityId("MainWindow");
@ -73,7 +73,7 @@ namespace Avalonia.IntegrationTests.Appium
} }
} }
[PlatformFact(SkipOnWindows = true)] [PlatformFact(TestPlatforms.MacOS)]
public void OSX_WindowOrder_Modal_Dialog_Stays_InFront_Of_Parent_When_Clicking_Resize_Grip() public void OSX_WindowOrder_Modal_Dialog_Stays_InFront_Of_Parent_When_Clicking_Resize_Grip()
{ {
var mainWindow = _session.FindWindowOuter("MainWindow"); var mainWindow = _session.FindWindowOuter("MainWindow");
@ -100,7 +100,7 @@ namespace Avalonia.IntegrationTests.Appium
} }
} }
[PlatformFact(SkipOnWindows = true)] [PlatformFact(TestPlatforms.MacOS)]
public void OSX_WindowOrder_Modal_Dialog_Stays_InFront_Of_Parent_When_In_Fullscreen() public void OSX_WindowOrder_Modal_Dialog_Stays_InFront_Of_Parent_When_In_Fullscreen()
{ {
var mainWindow = _session.FindWindowOuter("MainWindow"); var mainWindow = _session.FindWindowOuter("MainWindow");
@ -129,7 +129,7 @@ namespace Avalonia.IntegrationTests.Appium
} }
} }
[PlatformFact(SkipOnWindows = true)] [PlatformFact(TestPlatforms.MacOS)]
public void OSX_WindowOrder_Owned_Dialog_Stays_InFront_Of_Parent() public void OSX_WindowOrder_Owned_Dialog_Stays_InFront_Of_Parent()
{ {
var mainWindow = _session.FindElementByAccessibilityId("MainWindow"); var mainWindow = _session.FindElementByAccessibilityId("MainWindow");
@ -148,7 +148,7 @@ namespace Avalonia.IntegrationTests.Appium
} }
} }
[PlatformFact(SkipOnWindows = true)] [PlatformFact(TestPlatforms.MacOS)]
public void OSX_WindowOrder_NonOwned_Window_Does_Not_Stay_InFront_Of_Parent() public void OSX_WindowOrder_NonOwned_Window_Does_Not_Stay_InFront_Of_Parent()
{ {
var mainWindow = _session.FindElementByAccessibilityId("MainWindow"); var mainWindow = _session.FindElementByAccessibilityId("MainWindow");
@ -173,7 +173,7 @@ namespace Avalonia.IntegrationTests.Appium
} }
} }
[PlatformFact(SkipOnWindows = true)] [PlatformFact(TestPlatforms.MacOS)]
public void OSX_Parent_Window_Has_Disabled_ChromeButtons_When_Modal_Dialog_Shown() public void OSX_Parent_Window_Has_Disabled_ChromeButtons_When_Modal_Dialog_Shown()
{ {
var mainWindowHandle = GetCurrentWindowHandleHack(); var mainWindowHandle = GetCurrentWindowHandleHack();
@ -196,7 +196,7 @@ namespace Avalonia.IntegrationTests.Appium
} }
} }
[PlatformFact(SkipOnWindows = true)] [PlatformFact(TestPlatforms.MacOS)]
public void OSX_Minimize_Button_Disabled_Modal_Dialog() public void OSX_Minimize_Button_Disabled_Modal_Dialog()
{ {
var mainWindowHandle = GetCurrentWindowHandleHack(); var mainWindowHandle = GetCurrentWindowHandleHack();

Loading…
Cancel
Save