ScreenTests.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System;
  2. using System.Globalization;
  3. using Avalonia.Platform;
  4. using Xunit;
  5. namespace Avalonia.IntegrationTests.Appium;
  6. [Collection("Default")]
  7. public class ScreenTests : TestBase
  8. {
  9. public ScreenTests(DefaultAppFixture fixture)
  10. : base(fixture, "Screens")
  11. {
  12. }
  13. [Fact]
  14. public void Can_Read_Current_Screen_Info()
  15. {
  16. var refreshButton = Session.FindElementByAccessibilityId("ScreenRefresh");
  17. refreshButton.SendClick();
  18. var screenName = Session.FindElementByAccessibilityId("ScreenName").Text;
  19. var screenHandle = Session.FindElementByAccessibilityId("ScreenHandle").Text;
  20. var screenBounds = Rect.Parse(Session.FindElementByAccessibilityId("ScreenBounds").Text);
  21. var screenWorkArea = Rect.Parse(Session.FindElementByAccessibilityId("ScreenWorkArea").Text);
  22. var screenScaling = double.Parse(Session.FindElementByAccessibilityId("ScreenScaling").Text, NumberStyles.Float, CultureInfo.InvariantCulture);
  23. var screenOrientation = Enum.Parse<ScreenOrientation>(Session.FindElementByAccessibilityId("ScreenOrientation").Text);
  24. Assert.NotNull(screenName);
  25. Assert.NotNull(screenHandle);
  26. Assert.True(screenBounds.Size is { Width: > 0, Height: > 0 });
  27. Assert.True(screenWorkArea.Size is { Width: > 0, Height: > 0 });
  28. Assert.True(screenBounds.Size.Width >= screenWorkArea.Size.Width);
  29. Assert.True(screenBounds.Size.Height >= screenWorkArea.Size.Height);
  30. Assert.True(screenScaling > 0);
  31. Assert.True(screenOrientation != ScreenOrientation.None);
  32. }
  33. [Fact]
  34. public void Returns_The_Same_Screen_Instance()
  35. {
  36. var refreshButton = Session.FindElementByAccessibilityId("ScreenRefresh");
  37. refreshButton.SendClick();
  38. var screenName1 = Session.FindElementByAccessibilityId("ScreenName").Text;
  39. var screenHandle1 = Session.FindElementByAccessibilityId("ScreenHandle").Text;
  40. refreshButton.SendClick();
  41. var screenName2 = Session.FindElementByAccessibilityId("ScreenName").Text;
  42. var screenHandle2 = Session.FindElementByAccessibilityId("ScreenHandle").Text;
  43. var screenSameReference = bool.Parse(Session.FindElementByAccessibilityId("ScreenSameReference").Text);
  44. Assert.Equal(screenName1, screenName2);
  45. Assert.Equal(screenHandle1, screenHandle2);
  46. Assert.True(screenSameReference);
  47. }
  48. }