From d4d322654e025ac5c10fc88c34a0a400a407d179 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Thu, 27 Jun 2024 20:41:49 -0700 Subject: [PATCH] [Windows] WindowDecorations related integration tests (#15561) * Enable IncludeAvaloniaGenerators on integartion tests app * Implement basic TitleBarAutomationPeer * Add WindowDecorationsTests (windows only for now) * Implement window decoration tests on macOS * Fix build on appium 1 * Fix some windows tests * Extract WindowDecorationsTests into a separated collection, so it won't conflict * Fix build * Fix build --- .../IntegrationTestApp.csproj | 2 + samples/IntegrationTestApp/MainWindow.axaml | 18 +- .../IntegrationTestApp/MainWindow.axaml.cs | 147 +++++++---- .../IntegrationTestApp/ShowWindowTest.axaml | 2 +- .../ShowWindowTest.axaml.cs | 22 +- .../TopmostWindowTest.axaml.cs | 8 +- .../Peers/TitleBarAutomationPeer.cs | 26 ++ src/Avalonia.Controls/Chrome/TitleBar.cs | 5 + .../AppiumDriverEx.cs | 6 + .../CollectionDefinitions.cs | 5 + .../ElementExtensions.cs | 72 +++++- .../WindowDecorationsTests.cs | 243 ++++++++++++++++++ .../WindowTests.cs | 19 +- .../WindowTests_MacOS.cs | 8 +- 14 files changed, 480 insertions(+), 103 deletions(-) create mode 100644 src/Avalonia.Controls/Automation/Peers/TitleBarAutomationPeer.cs create mode 100644 tests/Avalonia.IntegrationTests.Appium/WindowDecorationsTests.cs diff --git a/samples/IntegrationTestApp/IntegrationTestApp.csproj b/samples/IntegrationTestApp/IntegrationTestApp.csproj index e1bfd6e7b1..7f8c45533a 100644 --- a/samples/IntegrationTestApp/IntegrationTestApp.csproj +++ b/samples/IntegrationTestApp/IntegrationTestApp.csproj @@ -4,6 +4,7 @@ $(AvsCurrentTargetFramework) enable $(NoWarn);AVP1012 + true @@ -37,5 +38,6 @@ + diff --git a/samples/IntegrationTestApp/MainWindow.axaml b/samples/IntegrationTestApp/MainWindow.axaml index 64c94ad9fa..c70d6b7ca0 100644 --- a/samples/IntegrationTestApp/MainWindow.axaml +++ b/samples/IntegrationTestApp/MainWindow.axaml @@ -5,7 +5,6 @@ xmlns:integrationTestApp="using:IntegrationTestApp" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="IntegrationTestApp.MainWindow" - Name="MainWindow" Icon="/Assets/icon.ico" Title="IntegrationTestApp" x:DataType="integrationTestApp:MainWindow"> @@ -24,7 +23,7 @@ - + WindowState: @@ -178,7 +177,20 @@ - + + + + + + + + +