InputTests.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using System;
  2. using System.Reactive.Disposables;
  3. using System.Threading;
  4. using System.Threading.Tasks;
  5. using Avalonia.Controls;
  6. using Avalonia.Input;
  7. using Avalonia.Layout;
  8. using Avalonia.Threading;
  9. namespace Avalonia.Headless.UnitTests;
  10. public class InputTests
  11. #if XUNIT
  12. : IDisposable
  13. #endif
  14. {
  15. private Window _window;
  16. private Application _setupApp;
  17. #if NUNIT
  18. [SetUp]
  19. public void SetUp()
  20. #elif XUNIT
  21. public InputTests()
  22. #endif
  23. {
  24. _setupApp = Application.Current;
  25. Dispatcher.UIThread.VerifyAccess();
  26. _window = new Window
  27. {
  28. Width = 100,
  29. Height = 100
  30. };
  31. }
  32. #if NUNIT
  33. [AvaloniaTest, Timeout(10000)]
  34. #elif XUNIT
  35. [AvaloniaFact]
  36. #endif
  37. public void Should_Click_Button_On_Window()
  38. {
  39. Assert.True(_setupApp == Application.Current);
  40. var buttonClicked = false;
  41. var button = new Button
  42. {
  43. HorizontalAlignment = HorizontalAlignment.Stretch,
  44. VerticalAlignment = VerticalAlignment.Stretch
  45. };
  46. button.Click += (_, _) => buttonClicked = true;
  47. _window.Content = button;
  48. _window.Show();
  49. _window.MouseDown(new Point(50, 50), MouseButton.Left);
  50. _window.MouseUp(new Point(50, 50), MouseButton.Left);
  51. Assert.True(buttonClicked);
  52. }
  53. #if NUNIT
  54. [AvaloniaTest, Timeout(10000)]
  55. #elif XUNIT
  56. [AvaloniaFact]
  57. #endif
  58. public void Change_Window_Position()
  59. {
  60. var newWindowPosition = new PixelPoint(100, 150);
  61. _window.Position = newWindowPosition;
  62. _window.Show();
  63. Assert.True(_window.Position == newWindowPosition);
  64. }
  65. #if NUNIT
  66. [TearDown]
  67. public void TearDown()
  68. #elif XUNIT
  69. public void Dispose()
  70. #endif
  71. {
  72. Assert.True(_setupApp == Application.Current);
  73. Dispatcher.UIThread.VerifyAccess();
  74. _window.Close();
  75. }
  76. }