ShadowStyletests.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using Xunit.Abstractions;
  2. namespace Terminal.Gui.ViewTests;
  3. public class ShadowStyleTests (ITestOutputHelper _output)
  4. {
  5. [Fact]
  6. public void Default_None ()
  7. {
  8. var view = new View ();
  9. Assert.Equal (ShadowStyle.None, view.ShadowStyle);
  10. Assert.Equal (ShadowStyle.None, view.Margin.ShadowStyle);
  11. view.Dispose ();
  12. }
  13. [Theory]
  14. [InlineData (ShadowStyle.None)]
  15. [InlineData (ShadowStyle.Opaque)]
  16. [InlineData (ShadowStyle.Transparent)]
  17. public void Set_View_Sets_Margin (ShadowStyle style)
  18. {
  19. var view = new View ();
  20. view.ShadowStyle = style;
  21. Assert.Equal (style, view.ShadowStyle);
  22. Assert.Equal (style, view.Margin.ShadowStyle);
  23. view.Dispose ();
  24. }
  25. [Theory]
  26. [InlineData (ShadowStyle.None, 3)]
  27. [InlineData (ShadowStyle.Opaque, 4)]
  28. [InlineData (ShadowStyle.Transparent, 4)]
  29. public void Style_Changes_Magin_Thickness (ShadowStyle style, int expected)
  30. {
  31. var view = new View ();
  32. view.Margin.Thickness = new (3);
  33. view.ShadowStyle = style;
  34. Assert.Equal (new (3, 3, expected, expected), view.Margin.Thickness);
  35. view.ShadowStyle = ShadowStyle.None;
  36. Assert.Equal (new (3), view.Margin.Thickness);
  37. view.Dispose ();
  38. }
  39. // Visual tests
  40. [Theory]
  41. [InlineData (
  42. ShadowStyle.None,
  43. """
  44. 01#$
  45. AB#$
  46. !@#$
  47. !@#$
  48. """)]
  49. [InlineData (
  50. ShadowStyle.Opaque,
  51. """
  52. 01#$
  53. AB▌$
  54. !▀▘$
  55. !@#$
  56. """)]
  57. [InlineData (
  58. ShadowStyle.Transparent,
  59. """
  60. 01#$
  61. AB#$
  62. !@#$
  63. !@#$
  64. """)]
  65. [SetupFakeDriver]
  66. public void Visual_Test (ShadowStyle style, string expected)
  67. {
  68. var superView = new View
  69. {
  70. Width = 4,
  71. Height = 4,
  72. Text = "!@#$".Repeat (4)
  73. };
  74. superView.TextFormatter.WordWrap = true;
  75. var view = new View
  76. {
  77. Text = "01\nAB",
  78. Width = Dim.Auto (),
  79. Height = Dim.Auto ()
  80. };
  81. view.ShadowStyle = style;
  82. superView.Add (view);
  83. superView.BeginInit ();
  84. superView.EndInit ();
  85. superView.Draw ();
  86. TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
  87. view.Dispose ();
  88. }
  89. }