FrameTests.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using Xunit.Abstractions;
  2. namespace Terminal.Gui.LayoutTests;
  3. public class FrameTests (ITestOutputHelper output)
  4. {
  5. private readonly ITestOutputHelper _output = output;
  6. [Fact]
  7. public void Frame_Empty_Default ()
  8. {
  9. View view = new ();
  10. Assert.Equal(Rectangle.Empty, view.Frame);
  11. view.BeginInit();
  12. view.EndInit();
  13. Assert.Equal (Rectangle.Empty, view.Frame);
  14. }
  15. [Fact]
  16. public void Frame_Set_Sets ()
  17. {
  18. Rectangle frame = new (1, 2, 3, 4);
  19. View view = new ();
  20. Assert.Equal (Rectangle.Empty, view.Frame);
  21. view.BeginInit ();
  22. view.EndInit ();
  23. view.Frame = frame;
  24. Assert.Equal (frame, view.Frame);
  25. }
  26. // Moved this test from AbsoluteLayoutTests
  27. // TODO: Refactor as Theory
  28. [Fact]
  29. [TestRespondersDisposed]
  30. public void Frame_Set ()
  31. {
  32. var frame = new Rectangle (1, 2, 3, 4);
  33. var newFrame = new Rectangle (1, 2, 30, 40);
  34. var v = new View ();
  35. v.Dispose ();
  36. v = new View { Frame = frame };
  37. v.Frame = newFrame;
  38. Assert.Equal (newFrame, v.Frame);
  39. Assert.Equal (
  40. new Rectangle (0, 0, newFrame.Width, newFrame.Height),
  41. v.Viewport
  42. ); // With Absolute Viewport *is* deterministic before Layout
  43. Assert.Equal (Pos.Absolute (1), v.X);
  44. Assert.Equal (Pos.Absolute (2), v.Y);
  45. Assert.Equal (Dim.Absolute (30), v.Width);
  46. Assert.Equal (Dim.Absolute (40), v.Height);
  47. v.Dispose ();
  48. v = new View { X = frame.X, Y = frame.Y, Text = "v" };
  49. v.Frame = newFrame;
  50. Assert.Equal (newFrame, v.Frame);
  51. Assert.Equal (
  52. new Rectangle (0, 0, newFrame.Width, newFrame.Height),
  53. v.Viewport
  54. ); // With Absolute Viewport *is* deterministic before Layout
  55. Assert.Equal (Pos.Absolute (1), v.X);
  56. Assert.Equal (Pos.Absolute (2), v.Y);
  57. Assert.Equal (Dim.Absolute (30), v.Width);
  58. Assert.Equal (Dim.Absolute (40), v.Height);
  59. v.Dispose ();
  60. newFrame = new Rectangle (10, 20, 30, 40);
  61. v = new View { Frame = frame };
  62. v.Frame = newFrame;
  63. Assert.Equal (newFrame, v.Frame);
  64. Assert.Equal (
  65. new Rectangle (0, 0, newFrame.Width, newFrame.Height),
  66. v.Viewport
  67. ); // With Absolute Viewport *is* deterministic before Layout
  68. Assert.Equal (Pos.Absolute (10), v.X);
  69. Assert.Equal (Pos.Absolute (20), v.Y);
  70. Assert.Equal (Dim.Absolute (30), v.Width);
  71. Assert.Equal (Dim.Absolute (40), v.Height);
  72. v.Dispose ();
  73. v = new View { X = frame.X, Y = frame.Y, Text = "v" };
  74. v.Frame = newFrame;
  75. Assert.Equal (newFrame, v.Frame);
  76. Assert.Equal (
  77. new Rectangle (0, 0, newFrame.Width, newFrame.Height),
  78. v.Viewport
  79. ); // With Absolute Viewport *is* deterministic before Layout
  80. Assert.Equal (Pos.Absolute (10), v.X);
  81. Assert.Equal (Pos.Absolute (20), v.Y);
  82. Assert.Equal (Dim.Absolute (30), v.Width);
  83. Assert.Equal (Dim.Absolute (40), v.Height);
  84. v.Dispose ();
  85. }
  86. }