From a9ce9fab0ea7c0de048ff6d382e968cac9d7537e Mon Sep 17 00:00:00 2001 From: rabbitism Date: Thu, 31 Oct 2024 12:01:52 +0800 Subject: [PATCH] feat: add headless test. --- .../Test.cs | 27 ++++++++++++++++ .../TestWindow.axaml | 11 +++++++ .../TestWindow.axaml.cs | 32 +++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 tests/HeadlessTest.Ursa/Controls/OverlayShared/Case_Close_Dialog_Clear_Content_Parent/Test.cs create mode 100644 tests/HeadlessTest.Ursa/Controls/OverlayShared/Case_Close_Dialog_Clear_Content_Parent/TestWindow.axaml create mode 100644 tests/HeadlessTest.Ursa/Controls/OverlayShared/Case_Close_Dialog_Clear_Content_Parent/TestWindow.axaml.cs diff --git a/tests/HeadlessTest.Ursa/Controls/OverlayShared/Case_Close_Dialog_Clear_Content_Parent/Test.cs b/tests/HeadlessTest.Ursa/Controls/OverlayShared/Case_Close_Dialog_Clear_Content_Parent/Test.cs new file mode 100644 index 0000000..548e400 --- /dev/null +++ b/tests/HeadlessTest.Ursa/Controls/OverlayShared/Case_Close_Dialog_Clear_Content_Parent/Test.cs @@ -0,0 +1,27 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Headless; +using Avalonia.Headless.XUnit; +using Avalonia.Input; +using Avalonia.Threading; + +namespace HeadlessTest.Ursa.Controls.OverlayShared.Case_Close_Dialog_Clear_Content_Parent; + +public class Test +{ + [AvaloniaFact] + public void Dialog_Parent_Is_Cleared_After_Close() + { + var ursaWindow = new TestWindow(); + ursaWindow.Show(); + var button = ursaWindow.FindControl + diff --git a/tests/HeadlessTest.Ursa/Controls/OverlayShared/Case_Close_Dialog_Clear_Content_Parent/TestWindow.axaml.cs b/tests/HeadlessTest.Ursa/Controls/OverlayShared/Case_Close_Dialog_Clear_Content_Parent/TestWindow.axaml.cs new file mode 100644 index 0000000..ee54018 --- /dev/null +++ b/tests/HeadlessTest.Ursa/Controls/OverlayShared/Case_Close_Dialog_Clear_Content_Parent/TestWindow.axaml.cs @@ -0,0 +1,32 @@ +using Avalonia.Controls; +using Avalonia.Interactivity; +using Irihi.Avalonia.Shared.Contracts; +using Ursa.Controls; + +namespace HeadlessTest.Ursa.Controls.OverlayShared.Case_Close_Dialog_Clear_Content_Parent; + +public partial class TestWindow : UrsaWindow +{ + public TestWindow() + { + InitializeComponent(); + } + + internal TextBox TextBox = new TextBox(); + internal DialogViewModel DialogViewModel = new DialogViewModel(); + + private void Button_OnClick(object? sender, RoutedEventArgs e) + { + OverlayDialog.Show(TextBox, DialogViewModel); + } +} + +class DialogViewModel : IDialogContext +{ + public void Close() + { + RequestClose?.Invoke(this, null); + } + + public event EventHandler? RequestClose; +} \ No newline at end of file