63 lines
2.2 KiB
C#
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());
|
|
}
|
|
} |