diff --git a/tests/HeadlessTest.Ursa/Controls/DrawerTests/CloseEventTest/DrawerCloseTestPopupControl.axaml b/tests/HeadlessTest.Ursa/Controls/DrawerTests/CloseEventTest/DrawerCloseTestPopupControl.axaml new file mode 100644 index 0000000..bcedc99 --- /dev/null +++ b/tests/HeadlessTest.Ursa/Controls/DrawerTests/CloseEventTest/DrawerCloseTestPopupControl.axaml @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/tests/HeadlessTest.Ursa/Controls/DrawerTests/CloseEventTest/DrawerCloseTestPopupControl.axaml.cs b/tests/HeadlessTest.Ursa/Controls/DrawerTests/CloseEventTest/DrawerCloseTestPopupControl.axaml.cs new file mode 100644 index 0000000..7f9bec4 --- /dev/null +++ b/tests/HeadlessTest.Ursa/Controls/DrawerTests/CloseEventTest/DrawerCloseTestPopupControl.axaml.cs @@ -0,0 +1,43 @@ +using System; +using System.ComponentModel; +using System.IO; +using System.Runtime.CompilerServices; +using Avalonia; +using Avalonia.Controls; +using Avalonia.Interactivity; +using Avalonia.Markup.Xaml; +using Ursa.Controls; + +namespace HeadlessTest.Ursa.Controls; + +public partial class DrawerCloseTestPopupControl : UserControl +{ + public DrawerCloseTestPopupControl() + { + InitializeComponent(); + _overlayDialogHost.HostId = _hostid; + } + + private readonly string _hostid = Path.GetRandomFileName(); + public DrawerCloseTestPopupControl Popup { get; set; } + public int LResult { get; set; } + public int RResult { get; set; } + + public async void OpenPopup() + { + var vm = new DrawerCloseTestPopupControlVM(); + LResult = vm.Result; + RResult = await Drawer.ShowCustomModal(Popup = new(), vm, _hostid); + } + + public void ClosePopup() + { + (Popup.DataContext as DrawerCloseTestPopupControlVM)?.Close(); + } + + + public void Close() + { + (DataContext as DrawerCloseTestPopupControlVM)?.Close(); + } +} \ No newline at end of file diff --git a/tests/HeadlessTest.Ursa/Controls/DrawerTests/CloseEventTest/DrawerCloseTestPopupControlVM.cs b/tests/HeadlessTest.Ursa/Controls/DrawerTests/CloseEventTest/DrawerCloseTestPopupControlVM.cs new file mode 100644 index 0000000..33e8eac --- /dev/null +++ b/tests/HeadlessTest.Ursa/Controls/DrawerTests/CloseEventTest/DrawerCloseTestPopupControlVM.cs @@ -0,0 +1,15 @@ +using Irihi.Avalonia.Shared.Contracts; + +namespace HeadlessTest.Ursa.Controls; + +public class DrawerCloseTestPopupControlVM : IDialogContext +{ + public void Close() + { + RequestClose?.Invoke(this, Result); + } + + public int Result { get; } = Random.Shared.Next(); + + public event EventHandler? RequestClose; +} \ No newline at end of file