Pos.CenterTests.cs 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. using UnitTests;
  2. using Xunit.Abstractions;
  3. using static Terminal.Gui.ViewBase.Dim;
  4. using static Terminal.Gui.ViewBase.Pos;
  5. namespace UnitTests.LayoutTests;
  6. public class PosCenterTests (ITestOutputHelper output)
  7. {
  8. private readonly ITestOutputHelper _output = output;
  9. [Theory]
  10. [AutoInitShutdown]
  11. [InlineData (1)]
  12. [InlineData (2)]
  13. [InlineData (3)]
  14. [InlineData (4)]
  15. [InlineData (5)]
  16. [InlineData (6)]
  17. [InlineData (7)]
  18. [InlineData (8)]
  19. [InlineData (9)]
  20. [InlineData (10)]
  21. public void PosCenter_SubView_85_Percent_Height (int height)
  22. {
  23. var win = new Window { Width = Fill (), Height = Fill () };
  24. var subview = new Window
  25. {
  26. X = Center (), Y = Center (), Width = Dim.Percent (85), Height = Dim.Percent (85)
  27. };
  28. win.Add (subview);
  29. SessionToken rs = Application.Begin (win);
  30. Application.Driver!.SetScreenSize (20, height);
  31. AutoInitShutdownAttribute.RunIteration ();
  32. var expected = string.Empty;
  33. switch (height)
  34. {
  35. case 1:
  36. //Assert.Equal (new (0, 0, 17, 0), subview.Frame);
  37. expected = @"
  38. ────────────────────";
  39. break;
  40. case 2:
  41. //Assert.Equal (new (0, 0, 17, 1), subview.Frame);
  42. expected = @"
  43. ┌──────────────────┐
  44. └──────────────────┘
  45. ";
  46. break;
  47. case 3:
  48. //Assert.Equal (new (0, 0, 17, 2), subview.Frame);
  49. expected = @"
  50. ┌──────────────────┐
  51. │ │
  52. └──────────────────┘
  53. ";
  54. break;
  55. case 4:
  56. //Assert.Equal (new (0, 0, 17, 3), subview.Frame);
  57. expected = @"
  58. ┌──────────────────┐
  59. │ ─────────────── │
  60. │ │
  61. └──────────────────┘";
  62. break;
  63. case 5:
  64. //Assert.Equal (new (0, 0, 17, 3), subview.Frame);
  65. expected = @"
  66. ┌──────────────────┐
  67. │ ┌─────────────┐ │
  68. │ └─────────────┘ │
  69. │ │
  70. └──────────────────┘";
  71. break;
  72. case 6:
  73. //Assert.Equal (new (0, 0, 17, 3), subview.Frame);
  74. expected = @"
  75. ┌──────────────────┐
  76. │ ┌─────────────┐ │
  77. │ │ │ │
  78. │ └─────────────┘ │
  79. │ │
  80. └──────────────────┘";
  81. break;
  82. case 7:
  83. //Assert.Equal (new (0, 0, 17, 3), subview.Frame);
  84. expected = @"
  85. ┌──────────────────┐
  86. │ ┌─────────────┐ │
  87. │ │ │ │
  88. │ │ │ │
  89. │ └─────────────┘ │
  90. │ │
  91. └──────────────────┘";
  92. break;
  93. case 8:
  94. //Assert.Equal (new (0, 0, 17, 3), subview.Frame);
  95. expected = @"
  96. ┌──────────────────┐
  97. │ ┌─────────────┐ │
  98. │ │ │ │
  99. │ │ │ │
  100. │ │ │ │
  101. │ └─────────────┘ │
  102. │ │
  103. └──────────────────┘";
  104. break;
  105. case 9:
  106. //Assert.Equal (new (0, 0, 17, 3), subview.Frame);
  107. expected = @"
  108. ┌──────────────────┐
  109. │ │
  110. │ ┌─────────────┐ │
  111. │ │ │ │
  112. │ │ │ │
  113. │ │ │ │
  114. │ └─────────────┘ │
  115. │ │
  116. └──────────────────┘";
  117. break;
  118. case 10:
  119. //Assert.Equal (new (0, 0, 17, 3), subview.Frame);
  120. expected = @"
  121. ┌──────────────────┐
  122. │ │
  123. │ ┌─────────────┐ │
  124. │ │ │ │
  125. │ │ │ │
  126. │ │ │ │
  127. │ │ │ │
  128. │ └─────────────┘ │
  129. │ │
  130. └──────────────────┘"
  131. ;
  132. break;
  133. }
  134. _ = DriverAssert.AssertDriverContentsWithFrameAre (expected, _output);
  135. Application.End (rs);
  136. win.Dispose ();
  137. }
  138. [Theory]
  139. [AutoInitShutdown]
  140. [InlineData (1)]
  141. [InlineData (2)]
  142. [InlineData (3)]
  143. [InlineData (4)]
  144. [InlineData (5)]
  145. [InlineData (6)]
  146. [InlineData (7)]
  147. [InlineData (8)]
  148. [InlineData (9)]
  149. [InlineData (10)]
  150. public void PosCenter_SubView_85_Percent_Width (int width)
  151. {
  152. var win = new Window { Width = Fill (), Height = Fill () };
  153. var subview = new Window
  154. {
  155. X = Center (), Y = Center (), Width = Dim.Percent (85), Height = Dim.Percent (85)
  156. };
  157. win.Add (subview);
  158. SessionToken rs = Application.Begin (win);
  159. Application.Driver!.SetScreenSize (width, 7);
  160. AutoInitShutdownAttribute.RunIteration ();
  161. var expected = string.Empty;
  162. switch (width)
  163. {
  164. case 1:
  165. Assert.Equal (new (0, 0, 0, 4), subview.Frame);
  166. expected = @"
  167. │";
  168. break;
  169. case 2:
  170. Assert.Equal (new (0, 0, 0, 4), subview.Frame);
  171. expected = @"
  172. ┌┐
  173. ││
  174. ││
  175. ││
  176. ││
  177. ││
  178. └┘";
  179. break;
  180. case 3:
  181. Assert.Equal (new (0, 0, 0, 4), subview.Frame);
  182. expected = @"
  183. ┌─┐
  184. │ │
  185. │ │
  186. │ │
  187. │ │
  188. │ │
  189. └─┘";
  190. break;
  191. case 4:
  192. Assert.Equal (new (0, 0, 1, 4), subview.Frame);
  193. expected = @"
  194. ┌──┐
  195. ││ │
  196. ││ │
  197. ││ │
  198. ││ │
  199. │ │
  200. └──┘";
  201. break;
  202. case 5:
  203. Assert.Equal (new (0, 0, 2, 4), subview.Frame);
  204. expected = @"
  205. ┌───┐
  206. │┌┐ │
  207. │││ │
  208. │││ │
  209. │└┘ │
  210. │ │
  211. └───┘";
  212. break;
  213. case 6:
  214. Assert.Equal (new (0, 0, 3, 4), subview.Frame);
  215. expected = @"
  216. ┌────┐
  217. │┌─┐ │
  218. ││ │ │
  219. ││ │ │
  220. │└─┘ │
  221. │ │
  222. └────┘";
  223. break;
  224. case 7:
  225. Assert.Equal (new (0, 0, 4, 4), subview.Frame);
  226. expected = @"
  227. ┌─────┐
  228. │┌──┐ │
  229. ││ │ │
  230. ││ │ │
  231. │└──┘ │
  232. │ │
  233. └─────┘";
  234. break;
  235. case 8:
  236. Assert.Equal (new (0, 0, 5, 4), subview.Frame);
  237. expected = @"
  238. ┌──────┐
  239. │┌───┐ │
  240. ││ │ │
  241. ││ │ │
  242. │└───┘ │
  243. │ │
  244. └──────┘";
  245. break;
  246. case 9:
  247. Assert.Equal (new (1, 0, 5, 4), subview.Frame);
  248. expected = @"
  249. ┌───────┐
  250. │ ┌───┐ │
  251. │ │ │ │
  252. │ │ │ │
  253. │ └───┘ │
  254. │ │
  255. └───────┘";
  256. break;
  257. case 10:
  258. Assert.Equal (new (1, 0, 6, 4), subview.Frame);
  259. expected = @"
  260. ┌────────┐
  261. │ ┌────┐ │
  262. │ │ │ │
  263. │ │ │ │
  264. │ └────┘ │
  265. │ │
  266. └────────┘"
  267. ;
  268. break;
  269. }
  270. _ = DriverAssert.AssertDriverContentsWithFrameAre (expected, _output);
  271. Application.End (rs);
  272. win.Dispose ();
  273. }
  274. }