SetRelativeLayoutTests.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. using System;
  2. using System.Text;
  3. using Xunit;
  4. using Xunit.Abstractions;
  5. namespace Terminal.Gui.ViewTests;
  6. public class SetRelativeLayoutTests {
  7. readonly ITestOutputHelper _output;
  8. public SetRelativeLayoutTests (ITestOutputHelper output) => _output = output;
  9. [Fact] [TestRespondersDisposed]
  10. public void SetRelativeLayout_PosCombine_Center_Plus_Absolute ()
  11. {
  12. var superView = new View () {
  13. AutoSize = false,
  14. Width = 10,
  15. Height = 10
  16. };
  17. var testView = new View () {
  18. AutoSize = false,
  19. X = Pos.Center (),
  20. Y = Pos.Center (),
  21. Width = 1,
  22. Height = 1
  23. };
  24. superView.Add (testView);
  25. testView.SetRelativeLayout (superView.Frame);
  26. Assert.Equal (4, testView.Frame.X);
  27. Assert.Equal (4, testView.Frame.Y);
  28. testView = new View () {
  29. AutoSize = false,
  30. X = Pos.Center () + 1,
  31. Y = Pos.Center () + 1,
  32. Width = 1,
  33. Height = 1
  34. };
  35. superView.Add (testView);
  36. testView.SetRelativeLayout (superView.Frame);
  37. Assert.Equal (5, testView.Frame.X);
  38. Assert.Equal (5, testView.Frame.Y);
  39. testView = new View () {
  40. AutoSize = false,
  41. X = 1 + Pos.Center (),
  42. Y = 1 + Pos.Center (),
  43. Width = 1,
  44. Height = 1
  45. };
  46. superView.Add (testView);
  47. testView.SetRelativeLayout (superView.Frame);
  48. Assert.Equal (5, testView.Frame.X);
  49. Assert.Equal (5, testView.Frame.Y);
  50. testView = new View () {
  51. AutoSize = false,
  52. X = 1 + Pos.Percent (50),
  53. Y = Pos.Percent (50) + 1,
  54. Width = 1,
  55. Height = 1
  56. };
  57. superView.Add (testView);
  58. testView.SetRelativeLayout (superView.Frame);
  59. Assert.Equal (6, testView.Frame.X);
  60. Assert.Equal (6, testView.Frame.Y);
  61. testView = new View () {
  62. AutoSize = false,
  63. X = Pos.Percent (10) + Pos.Percent (40),
  64. Y = Pos.Percent (10) + Pos.Percent (40),
  65. Width = 1,
  66. Height = 1
  67. };
  68. superView.Add (testView);
  69. testView.SetRelativeLayout (superView.Frame);
  70. Assert.Equal (5, testView.Frame.X);
  71. Assert.Equal (5, testView.Frame.Y);
  72. testView = new View () {
  73. AutoSize = false,
  74. X = 1 + Pos.Percent (10) + Pos.Percent (40) - 1,
  75. Y = 5 + Pos.Percent (10) + Pos.Percent (40) - 5,
  76. Width = 1,
  77. Height = 1
  78. };
  79. superView.Add (testView);
  80. testView.SetRelativeLayout (superView.Frame);
  81. Assert.Equal (5, testView.Frame.X);
  82. Assert.Equal (5, testView.Frame.Y);
  83. testView = new View () {
  84. AutoSize = false,
  85. X = Pos.Left (testView),
  86. Y = Pos.Left (testView),
  87. Width = 1,
  88. Height = 1
  89. };
  90. superView.Add (testView);
  91. testView.SetRelativeLayout (superView.Frame);
  92. Assert.Equal (5, testView.Frame.X);
  93. Assert.Equal (5, testView.Frame.Y);
  94. testView = new View () {
  95. AutoSize = false,
  96. X = 1 + Pos.Left (testView),
  97. Y = Pos.Top (testView) + 1,
  98. Width = 1,
  99. Height = 1
  100. };
  101. superView.Add (testView);
  102. testView.SetRelativeLayout (superView.Frame);
  103. Assert.Equal (6, testView.Frame.X);
  104. Assert.Equal (6, testView.Frame.Y);
  105. superView.Dispose ();
  106. }
  107. }