ThicknessTests.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. using System.Text;
  2. using UnitTests;
  3. using Xunit.Abstractions;
  4. namespace Terminal.Gui.DrawingTests;
  5. public class ThicknessTests (ITestOutputHelper output)
  6. {
  7. [Fact]
  8. [AutoInitShutdown]
  9. public void DrawTests ()
  10. {
  11. ((FakeDriver)Application.Driver!).SetBufferSize (60, 60);
  12. var t = new Thickness (0, 0, 0, 0);
  13. var r = new Rectangle (5, 5, 40, 15);
  14. Application.Driver?.FillRect (
  15. new (0, 0, Application.Driver!.Cols, Application.Driver!.Rows),
  16. (Rune)' '
  17. );
  18. t.Draw (r, ViewDiagnosticFlags.Thickness, "Test");
  19. DriverAssert.AssertDriverContentsWithFrameAre (
  20. @"
  21. Test (Left=0,Top=0,Right=0,Bottom=0)",
  22. output
  23. );
  24. t = new (1, 1, 1, 1);
  25. r = new (5, 5, 40, 15);
  26. Application.Driver?.FillRect (
  27. new (0, 0, Application.Driver!.Cols, Application.Driver!.Rows),
  28. (Rune)' '
  29. );
  30. t.Draw (r, ViewDiagnosticFlags.Thickness, "Test");
  31. DriverAssert.AssertDriverContentsWithFrameAre (
  32. @"
  33. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  34. T T
  35. T T
  36. T T
  37. T T
  38. T T
  39. T T
  40. T T
  41. T T
  42. T T
  43. T T
  44. T T
  45. T T
  46. T T
  47. TTTest (Left=1,Top=1,Right=1,Bottom=1)TT",
  48. output
  49. );
  50. t = new (1, 2, 3, 4);
  51. r = new (5, 5, 40, 15);
  52. Application.Driver?.FillRect (
  53. new (0, 0, Application.Driver!.Cols, Application.Driver!.Rows),
  54. (Rune)' '
  55. );
  56. t.Draw (r, ViewDiagnosticFlags.Thickness, "Test");
  57. DriverAssert.AssertDriverContentsWithFrameAre (
  58. @"
  59. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  60. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  61. T TTT
  62. T TTT
  63. T TTT
  64. T TTT
  65. T TTT
  66. T TTT
  67. T TTT
  68. T TTT
  69. T TTT
  70. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  71. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  72. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  73. TTTest (Left=1,Top=2,Right=3,Bottom=4)TT",
  74. output
  75. );
  76. t = new (-1, 1, 1, 1);
  77. r = new (5, 5, 40, 15);
  78. Application.Driver?.FillRect (
  79. new (0, 0, Application.Driver!.Cols, Application.Driver!.Rows),
  80. (Rune)' '
  81. );
  82. t.Draw (r, ViewDiagnosticFlags.Thickness, "Test");
  83. DriverAssert.AssertDriverContentsWithFrameAre (
  84. @"
  85. TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
  86. T
  87. T
  88. T
  89. T
  90. T
  91. T
  92. T
  93. T
  94. T
  95. T
  96. T
  97. T
  98. T
  99. TTest (Left=-1,Top=1,Right=1,Bottom=1)TT",
  100. output
  101. );
  102. }
  103. [Fact]
  104. [AutoInitShutdown]
  105. public void DrawTests_Ruler ()
  106. {
  107. // Add a frame so we can see the ruler
  108. var f = new FrameView { X = 0, Y = 0, Width = Dim.Fill (), Height = Dim.Fill () };
  109. var top = new Toplevel ();
  110. top.Add (f);
  111. RunState rs = Application.Begin (top);
  112. ((FakeDriver)Application.Driver!).SetBufferSize (45, 20);
  113. var t = new Thickness (0, 0, 0, 0);
  114. var r = new Rectangle (2, 2, 40, 15);
  115. Application.RunIteration (ref rs);
  116. t.Draw (r, ViewDiagnosticFlags.Ruler, "Test");
  117. DriverAssert.AssertDriverContentsAre (
  118. @"
  119. ┌───────────────────────────────────────────┐
  120. │ │
  121. │ │
  122. │ │
  123. │ │
  124. │ │
  125. │ │
  126. │ │
  127. │ │
  128. │ │
  129. │ │
  130. │ │
  131. │ │
  132. │ │
  133. │ │
  134. │ │
  135. │ │
  136. │ │
  137. │ │
  138. └───────────────────────────────────────────┘",
  139. output
  140. );
  141. t = new (1, 1, 1, 1);
  142. r = new (1, 1, 40, 15);
  143. top.SetNeedsDraw ();
  144. Application.RunIteration (ref rs);
  145. t.Draw (r, ViewDiagnosticFlags.Ruler, "Test");
  146. DriverAssert.AssertDriverContentsAre (
  147. @"
  148. ┌───────────────────────────────────────────┐
  149. │|123456789|123456789|123456789|123456789 │
  150. │1 1 │
  151. │2 2 │
  152. │3 3 │
  153. │4 4 │
  154. │5 5 │
  155. │6 6 │
  156. │7 7 │
  157. │8 8 │
  158. │9 9 │
  159. │- - │
  160. │1 1 │
  161. │2 2 │
  162. │3 3 │
  163. │|123456789|123456789|123456789|123456789 │
  164. │ │
  165. │ │
  166. │ │
  167. └───────────────────────────────────────────┘",
  168. output
  169. );
  170. t = new (1, 2, 3, 4);
  171. r = new (2, 2, 40, 15);
  172. top.SetNeedsDraw ();
  173. Application.RunIteration (ref rs);
  174. t.Draw (r, ViewDiagnosticFlags.Ruler, "Test");
  175. DriverAssert.AssertDriverContentsWithFrameAre (
  176. @"
  177. ┌───────────────────────────────────────────┐
  178. │ │
  179. │ |123456789|123456789|123456789|123456789 │
  180. │ 1 1 │
  181. │ 2 2 │
  182. │ 3 3 │
  183. │ 4 4 │
  184. │ 5 5 │
  185. │ 6 6 │
  186. │ 7 7 │
  187. │ 8 8 │
  188. │ 9 9 │
  189. │ - - │
  190. │ 1 1 │
  191. │ 2 2 │
  192. │ 3 3 │
  193. │ |123456789|123456789|123456789|123456789 │
  194. │ │
  195. │ │
  196. └───────────────────────────────────────────┘",
  197. output
  198. );
  199. t = new (-1, 1, 1, 1);
  200. r = new (5, 5, 40, 15);
  201. top.SetNeedsDraw ();
  202. Application.RunIteration (ref rs);
  203. t.Draw (r, ViewDiagnosticFlags.Ruler, "Test");
  204. DriverAssert.AssertDriverContentsWithFrameAre (
  205. @"
  206. ┌───────────────────────────────────────────┐
  207. │ │
  208. │ │
  209. │ │
  210. │ │
  211. │ |123456789|123456789|123456789|123456789
  212. │ 1
  213. │ 2
  214. │ 3
  215. │ 4
  216. │ 5
  217. │ 6
  218. │ 7
  219. │ 8
  220. │ 9
  221. │ -
  222. │ 1
  223. │ 2
  224. │ 3
  225. └────|123456789|123456789|123456789|123456789",
  226. output
  227. );
  228. top.Dispose ();
  229. }
  230. }