diff --git a/tests/HeadlessTest.Ursa/Controls/DateTimePicker/DatePickerTests.cs b/tests/HeadlessTest.Ursa/Controls/DateTimePicker/DatePickerTests.cs new file mode 100644 index 0000000..1b3df59 --- /dev/null +++ b/tests/HeadlessTest.Ursa/Controls/DateTimePicker/DatePickerTests.cs @@ -0,0 +1,313 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Controls.Primitives; +using Avalonia.Headless; +using Avalonia.Headless.XUnit; +using Avalonia.Input; +using Avalonia.Layout; +using Avalonia.LogicalTree; +using Avalonia.Threading; +using HeadlessTest.Ursa.TestHelpers; +using Ursa.Controls; +using DatePicker = Ursa.Controls.DatePicker; + +namespace HeadlessTest.Ursa.Controls.DateTimePicker; + +public class DatePickerTests +{ + [AvaloniaFact] + public void Click_Opens_Popup() + { + var window = new Window(); + var picker = new DatePicker() + { + Width = 300, + HorizontalAlignment = HorizontalAlignment.Left, + VerticalAlignment = VerticalAlignment.Top + }; + window.Content = picker; + window.Show(); + Assert.False(picker.IsDropdownOpen); + Dispatcher.UIThread.RunJobs(); + window.MouseDown(new Point(10, 10), MouseButton.Left); + Dispatcher.UIThread.RunJobs(); + Assert.True(picker.IsDropdownOpen); + + window.MouseDown(new Point(10, 10), MouseButton.Left); + Dispatcher.UIThread.RunJobs(); + Assert.True(picker.IsDropdownOpen); + + } + + [AvaloniaFact] + public void Click_Button_Toggles_Popup() + { + var window = new Window(); + var picker = new DatePicker() + { + Width = 300, + HorizontalAlignment = HorizontalAlignment.Left, + VerticalAlignment = VerticalAlignment.Top + }; + window.Content = picker; + window.Show(); + + var button = picker.GetTemplateChildOfType