Files
Ursa.Avalonia/tests/HeadlessTest.Ursa/Controls/DrawerTests/CloseEventTest/DrawerCloseEventTest.cs

63 lines
2.2 KiB
C#

using Avalonia.Controls;
using Avalonia.Headless.XUnit;
using Avalonia.Threading;
using Avalonia.VisualTree;
using Ursa.Controls;
namespace HeadlessTest.Ursa.Controls;
public class DrawerCloseEventTest
{
[AvaloniaFact]
public async void Test()
{
UrsaWindow testWindow = new()
{
Content = new OverlayDialogHost() { HostId = "root" }
};
testWindow.Show();
DrawerCloseTestPopupControl level1 = new();
OverlayDialog.ShowCustomModal<object>(level1, new DrawerCloseTestPopupControlVM(), "root");
level1.OpenPopup();
var level2 = level1.Popup;
level2.OpenPopup();
var level3 = level2.Popup;
level2.ClosePopup();
await Task.Delay(TimeSpan.FromSeconds(1));
Dispatcher.UIThread.RunJobs();
Assert.True(level1.IsAttachedToVisualTree()
&& level2.IsAttachedToVisualTree()
&& level3.IsAttachedToVisualTree() is false);
level1.ClosePopup();
await Task.Delay(TimeSpan.FromSeconds(1));
Dispatcher.UIThread.RunJobs();
Assert.True(level1.IsAttachedToVisualTree()
&& level2.IsAttachedToVisualTree() is false
&& level3.IsAttachedToVisualTree() is false);
level1.Close();
await Task.Delay(TimeSpan.FromSeconds(1));
Dispatcher.UIThread.RunJobs();
Assert.False(level1.IsAttachedToVisualTree()
&& level2.IsAttachedToVisualTree()
&& level3.IsAttachedToVisualTree());
Assert.Equal(level1.LResult, level1.RResult);
Assert.Equal(level2.LResult, level2.RResult);
Assert.Equal(level3.LResult, level3.RResult);
OverlayDialog.ShowCustomModal<object>(level1, new DrawerCloseTestPopupControlVM(), "root");
level1.OpenPopup();
level2 = level1.Popup;
level2.OpenPopup();
level3 = level2.Popup;
level3.OpenPopup();
level1.Close();
await Task.Delay(TimeSpan.FromSeconds(1));
Dispatcher.UIThread.RunJobs();
Assert.False(level1.IsAttachedToVisualTree()
&& level2.IsAttachedToVisualTree()
&& level3.IsAttachedToVisualTree());
}
}