From d46eb22f4e646b7d5576074e21e2f1a3f163353d Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 13 Mar 2023 21:37:20 +0100 Subject: [PATCH] Don't use a tuple for window chrome buttons. Return a record so that we can add extra elements more easily. --- .../ElementExtensions.cs | 9 +++++++-- .../WindowTests_MacOS.cs | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs b/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs index 2184c5c155..a31981bd2f 100644 --- a/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs +++ b/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs @@ -11,19 +11,24 @@ using Xunit; namespace Avalonia.IntegrationTests.Appium { + public record class WindowChrome( + AppiumWebElement Close, + AppiumWebElement Minimize, + AppiumWebElement Maximize); + internal static class ElementExtensions { public static IReadOnlyList GetChildren(this AppiumWebElement element) => element.FindElementsByXPath("*/*"); - public static (AppiumWebElement close, AppiumWebElement minimize, AppiumWebElement maximize) GetChromeButtons(this AppiumWebElement window) + public static WindowChrome GetChromeButtons(this AppiumWebElement window) { if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) { var closeButton = window.FindElementByXPath("//XCUIElementTypeButton[1]"); var fullscreenButton = window.FindElementByXPath("//XCUIElementTypeButton[2]"); var minimizeButton = window.FindElementByXPath("//XCUIElementTypeButton[3]"); - return (closeButton, minimizeButton, fullscreenButton); + return new(closeButton, minimizeButton, fullscreenButton); } throw new NotSupportedException("GetChromeButtons not supported on this platform."); diff --git a/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs b/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs index 039d30bbc1..c5f664b0ba 100644 --- a/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs +++ b/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs @@ -85,7 +85,7 @@ namespace Avalonia.IntegrationTests.Appium var mainWindow = GetWindow("MainWindow"); var buttons = mainWindow.GetChromeButtons(); - buttons.maximize.Click(); + buttons.Maximize.Click(); Thread.Sleep(500); @@ -332,7 +332,7 @@ namespace Avalonia.IntegrationTests.Appium // Close the window manually. secondaryWindow = GetWindow("SecondaryWindow"); - secondaryWindow.GetChromeButtons().close.Click(); + secondaryWindow.GetChromeButtons().Close.Click(); } [PlatformTheory(TestPlatforms.MacOS)]