From 74e190b6a40560a65229da4699c7d844b4a1d4b0 Mon Sep 17 00:00:00 2001 From: rabbitism Date: Sun, 3 Nov 2024 23:48:13 +0800 Subject: [PATCH] feat: add headless test. --- .../StyleClassTests/StyleClassTests.cs | 30 +++++++++++++++++++ .../StyleClassTests/TestViewModel.cs | 17 +++++++++++ .../StyleClassTests/TestWindow.axaml | 19 ++++++++++++ .../StyleClassTests/TestWindow.axaml.cs | 14 +++++++++ .../HeadlessTest.Ursa.csproj | 1 + 5 files changed, 81 insertions(+) create mode 100644 tests/HeadlessTest.Ursa/Controls/DialogTests/StyleClassTests/StyleClassTests.cs create mode 100644 tests/HeadlessTest.Ursa/Controls/DialogTests/StyleClassTests/TestViewModel.cs create mode 100644 tests/HeadlessTest.Ursa/Controls/DialogTests/StyleClassTests/TestWindow.axaml create mode 100644 tests/HeadlessTest.Ursa/Controls/DialogTests/StyleClassTests/TestWindow.axaml.cs diff --git a/tests/HeadlessTest.Ursa/Controls/DialogTests/StyleClassTests/StyleClassTests.cs b/tests/HeadlessTest.Ursa/Controls/DialogTests/StyleClassTests/StyleClassTests.cs new file mode 100644 index 0000000..bfcc733 --- /dev/null +++ b/tests/HeadlessTest.Ursa/Controls/DialogTests/StyleClassTests/StyleClassTests.cs @@ -0,0 +1,30 @@ +using Avalonia.Controls; +using Avalonia.Headless.XUnit; +using Avalonia.VisualTree; +using Ursa.Controls; + +namespace HeadlessTest.Ursa.Controls.DialogTests.StyleClassTests; + +public class StyleClassTests +{ + [AvaloniaFact] + public void StyleClass_Changes_Button_Content() + { + var vm = new TestViewModel(); + var ursaWindow = new TestWindow() + { + DataContext = vm, + }; + ursaWindow.Show(); + vm.InvokeDialog(); + var dialog = ursaWindow.GetVisualDescendants().OfType().SingleOrDefault(); + Assert.NotNull(dialog); + Assert.Contains("Custom", dialog.Classes); + var okButton = dialog.GetVisualDescendants().OfType