SubviewTests.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. using Xunit.Abstractions;
  2. namespace Terminal.Gui.ViewTests;
  3. public class SubViewTests
  4. {
  5. private readonly ITestOutputHelper _output;
  6. public SubViewTests (ITestOutputHelper output) { _output = output; }
  7. // TODO: This is a poor unit tests. Not clear what it's testing. Refactor.
  8. [Fact]
  9. public void Initialized_Event_Will_Be_Invoked_When_Added_Dynamically ()
  10. {
  11. Application.Init (new FakeDriver ());
  12. var t = new Toplevel { Id = "0" };
  13. var w = new Window { Id = "t", Width = Dim.Fill (), Height = Dim.Fill () };
  14. var v1 = new View { Id = "v1", Width = Dim.Fill (), Height = Dim.Fill () };
  15. var v2 = new View { Id = "v2", Width = Dim.Fill (), Height = Dim.Fill () };
  16. int tc = 0, wc = 0, v1c = 0, v2c = 0, sv1c = 0;
  17. t.Initialized += (s, e) =>
  18. {
  19. tc++;
  20. Assert.Equal (1, tc);
  21. Assert.Equal (1, wc);
  22. Assert.Equal (1, v1c);
  23. Assert.Equal (1, v2c);
  24. Assert.Equal (0, sv1c); // Added after t in the Application.Iteration.
  25. Assert.True (t.CanFocus);
  26. Assert.True (w.CanFocus);
  27. Assert.False (v1.CanFocus);
  28. Assert.False (v2.CanFocus);
  29. Application.LayoutAndDraw ();
  30. };
  31. w.Initialized += (s, e) =>
  32. {
  33. wc++;
  34. Assert.Equal (t.Viewport.Width, w.Frame.Width);
  35. Assert.Equal (t.Viewport.Height, w.Frame.Height);
  36. };
  37. v1.Initialized += (s, e) =>
  38. {
  39. v1c++;
  40. //Assert.Equal (t.Viewport.Width, v1.Frame.Width);
  41. //Assert.Equal (t.Viewport.Height, v1.Frame.Height);
  42. };
  43. v2.Initialized += (s, e) =>
  44. {
  45. v2c++;
  46. //Assert.Equal (t.Viewport.Width, v2.Frame.Width);
  47. //Assert.Equal (t.Viewport.Height, v2.Frame.Height);
  48. };
  49. w.Add (v1, v2);
  50. t.Add (w);
  51. Application.Iteration += (s, a) =>
  52. {
  53. var sv1 = new View { Id = "sv1", Width = Dim.Fill (), Height = Dim.Fill () };
  54. sv1.Initialized += (s, e) =>
  55. {
  56. sv1c++;
  57. Assert.NotEqual (t.Frame.Width, sv1.Frame.Width);
  58. Assert.NotEqual (t.Frame.Height, sv1.Frame.Height);
  59. Assert.False (sv1.CanFocus);
  60. //Assert.Throws<InvalidOperationException> (() => sv1.CanFocus = true);
  61. Assert.False (sv1.CanFocus);
  62. };
  63. v1.Add (sv1);
  64. Application.LayoutAndDraw ();
  65. t.Running = false;
  66. };
  67. Application.Run (t);
  68. t.Dispose ();
  69. Application.Shutdown ();
  70. Assert.Equal (1, tc);
  71. Assert.Equal (1, wc);
  72. Assert.Equal (1, v1c);
  73. Assert.Equal (1, v2c);
  74. Assert.Equal (1, sv1c);
  75. Assert.True (t.CanFocus);
  76. Assert.True (w.CanFocus);
  77. Assert.False (v1.CanFocus);
  78. Assert.False (v2.CanFocus);
  79. }
  80. }