feat: add drawer and dialog headless test.

This commit is contained in:
rabbitism
2024-11-13 01:11:59 +08:00
parent 05cc27e308
commit 9835fe0ba4
2 changed files with 51 additions and 4 deletions

View File

@@ -9,12 +9,45 @@ namespace HeadlessTest.Ursa.Controls.OverlayShared.Dialog_Primary_Focus;
public class Test public class Test
{ {
[AvaloniaFact] [AvaloniaFact]
public void Normal_Dialog_Focus_On_Border() public async Task Normal_Drawer_Focus_On_Border()
{
var ursaWindow = new TestWindow();
ursaWindow.Show();
ursaWindow.InvokeNormalDrawer();
Dispatcher.UIThread.RunJobs();
await Task.Delay(500);
var dialog = ursaWindow.GetVisualDescendants().OfType<DefaultDrawerControl>().FirstOrDefault();
Assert.NotNull(dialog);
var border = dialog.GetVisualDescendants().OfType<Border>().FirstOrDefault(a=>a.Name == "PART_Root");
var text = dialog.GetVisualDescendants().OfType<TextBox>().FirstOrDefault();
Assert.True(border?.IsFocused);
Assert.False(text?.IsFocused);
}
[AvaloniaFact]
public async Task Focus_Drawer_Focus_On_Primary()
{
var ursaWindow = new TestWindow();
ursaWindow.Show();
ursaWindow.InvokeFocusDrawer();
Dispatcher.UIThread.RunJobs();
await Task.Delay(500);
var dialog = ursaWindow.GetVisualDescendants().OfType<DefaultDrawerControl>().FirstOrDefault();
Assert.NotNull(dialog);
var border = dialog.GetVisualDescendants().OfType<Border>().FirstOrDefault(a=>a.Name == "PART_Root");
var text = dialog.GetVisualDescendants().OfType<TextBox>().FirstOrDefault();
Assert.False(border?.IsFocused);
Assert.True(text?.IsFocused);
}
[AvaloniaFact]
public async Task Normal_Dialog_Focus_On_Border()
{ {
var ursaWindow = new TestWindow(); var ursaWindow = new TestWindow();
ursaWindow.Show(); ursaWindow.Show();
ursaWindow.InvokeNormalDialog(); ursaWindow.InvokeNormalDialog();
Dispatcher.UIThread.RunJobs(); Dispatcher.UIThread.RunJobs();
await Task.Delay(100);
var dialog = ursaWindow.GetVisualDescendants().OfType<DefaultDialogControl>().FirstOrDefault(); var dialog = ursaWindow.GetVisualDescendants().OfType<DefaultDialogControl>().FirstOrDefault();
Assert.NotNull(dialog); Assert.NotNull(dialog);
var border = dialog.GetVisualDescendants().OfType<Border>().FirstOrDefault(a=>a.Name == "PART_Border"); var border = dialog.GetVisualDescendants().OfType<Border>().FirstOrDefault(a=>a.Name == "PART_Border");
@@ -24,12 +57,13 @@ public class Test
} }
[AvaloniaFact] [AvaloniaFact]
public void Focus_Dialog_Focus_On_Primary() public async Task Focus_Dialog_Focus_On_Primary()
{ {
var ursaWindow = new TestWindow(); var ursaWindow = new TestWindow();
ursaWindow.Show(); ursaWindow.Show();
ursaWindow.InvokeFocusDialog(); ursaWindow.InvokeFocusDialog();
Dispatcher.UIThread.RunJobs(); Dispatcher.UIThread.RunJobs();
await Task.Delay(100);
var dialog = ursaWindow.GetVisualDescendants().OfType<DefaultDialogControl>().FirstOrDefault(); var dialog = ursaWindow.GetVisualDescendants().OfType<DefaultDialogControl>().FirstOrDefault();
Assert.NotNull(dialog); Assert.NotNull(dialog);
var border = dialog.GetVisualDescendants().OfType<Border>().FirstOrDefault(a=>a.Name == "PART_Border"); var border = dialog.GetVisualDescendants().OfType<Border>().FirstOrDefault(a=>a.Name == "PART_Border");

View File

@@ -1,4 +1,5 @@
using Ursa.Controls; using Ursa.Controls;
using Ursa.Controls.Options;
namespace HeadlessTest.Ursa.Controls.OverlayShared.Dialog_Primary_Focus; namespace HeadlessTest.Ursa.Controls.OverlayShared.Dialog_Primary_Focus;
@@ -9,15 +10,27 @@ public partial class TestWindow : UrsaWindow
InitializeComponent(); InitializeComponent();
} }
public void InvokeNormalDrawer()
{
Drawer.ShowModal<NormalDialog, object>("Hello World",
options: new DrawerOptions() { TopLevelHashCode = GetHashCode() });
}
public void InvokeFocusDrawer()
{
Drawer.ShowModal<FocusDialog, object>("Hello World",
options: new DrawerOptions() { TopLevelHashCode = GetHashCode() });
}
public void InvokeNormalDialog() public void InvokeNormalDialog()
{ {
OverlayDialog.ShowModal<NormalDialog, object>("Hello World", OverlayDialog.ShowModal<NormalDialog, object>("Hello World",
options: new OverlayDialogOptions { TopLevelHashCode = GetHashCode() }); options: new OverlayDialogOptions() { TopLevelHashCode = GetHashCode() });
} }
public void InvokeFocusDialog() public void InvokeFocusDialog()
{ {
OverlayDialog.ShowModal<FocusDialog, object>("Hello World", OverlayDialog.ShowModal<FocusDialog, object>("Hello World",
options: new OverlayDialogOptions { TopLevelHashCode = GetHashCode() }); options: new OverlayDialogOptions() { TopLevelHashCode = GetHashCode() });
} }
} }