TransparentTests.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #nullable enable
  2. using UnitTests;
  3. using Xunit.Abstractions;
  4. namespace Terminal.Gui.ViewTests;
  5. [Trait ("Category", "Output")]
  6. public class TransparentTests (ITestOutputHelper output)
  7. {
  8. [Fact]
  9. [SetupFakeDriver]
  10. public void Transparent_Text_Occludes ()
  11. {
  12. var super = new View
  13. {
  14. Id = "super",
  15. Width = 20,
  16. Height = 5,
  17. };
  18. super.DrawingContent += (sender, args) =>
  19. {
  20. var s = sender as View;
  21. s!.FillRect(s!.Viewport, Glyphs.Stipple);
  22. args.Cancel = true;
  23. };
  24. var sub = new View
  25. {
  26. X = 1,
  27. Y = 1,
  28. Width = 15,
  29. Height = 3,
  30. Id = "sub",
  31. Text = "Sub",
  32. ViewportSettings = ViewportSettings.Transparent,
  33. BorderStyle = LineStyle.Single
  34. };
  35. super.Add (sub);
  36. super.Layout ();
  37. super.Draw ();
  38. _ = DriverAssert.AssertDriverContentsWithFrameAre (
  39. @"
  40. ░░░░░░░░░░░░░░░░░░░░
  41. ░┌─────────────┐░░░░
  42. ░│Sub░░░░░░░░░░│░░░░
  43. ░└─────────────┘░░░░
  44. ░░░░░░░░░░░░░░░░░░░░", output);
  45. }
  46. [Fact]
  47. [SetupFakeDriver]
  48. public void Transparent_SubView_Occludes ()
  49. {
  50. var super = new View
  51. {
  52. Id = "super",
  53. Width = 20,
  54. Height = 5,
  55. };
  56. super.DrawingContent += (sender, args) =>
  57. {
  58. var s = sender as View;
  59. s!.FillRect (s!.Viewport, Glyphs.Stipple);
  60. args.Cancel = true;
  61. };
  62. var sub = new View
  63. {
  64. X = 1,
  65. Y = 1,
  66. Width = 15,
  67. Height = 3,
  68. Id = "sub",
  69. ViewportSettings = ViewportSettings.Transparent,
  70. BorderStyle = LineStyle.Single
  71. };
  72. var subSub = new View
  73. {
  74. X = Pos.Center(),
  75. Y = Pos.Center(),
  76. Width = Dim.Auto(),
  77. Height = Dim.Auto(),
  78. Id = "subSub",
  79. Text = "subSub",
  80. };
  81. sub.Add (subSub);
  82. super.Add (sub);
  83. super.Layout ();
  84. super.Draw ();
  85. _ = DriverAssert.AssertDriverContentsWithFrameAre (
  86. @"
  87. ░░░░░░░░░░░░░░░░░░░░
  88. ░┌─────────────┐░░░░
  89. ░│░░░subSub░░░░│░░░░
  90. ░└─────────────┘░░░░
  91. ░░░░░░░░░░░░░░░░░░░░", output);
  92. }
  93. }