|
@@ -4,110 +4,7 @@ namespace Terminal.Gui.InputTests;
|
|
|
|
|
|
public class ResponderTests
|
|
|
{
|
|
|
- // Generic lifetime (IDisposable) tests
|
|
|
- [Fact]
|
|
|
- [TestRespondersDisposed]
|
|
|
- public void Dispose_Works ()
|
|
|
- {
|
|
|
- var r = new Responder ();
|
|
|
-#if DEBUG_IDISPOSABLE
|
|
|
- Assert.Single (Responder.Instances);
|
|
|
-#endif
|
|
|
-
|
|
|
- r.Dispose ();
|
|
|
-#if DEBUG_IDISPOSABLE
|
|
|
- Assert.Empty (Responder.Instances);
|
|
|
-#endif
|
|
|
- }
|
|
|
-
|
|
|
- [Fact]
|
|
|
- public void Disposing_Event_Notify_All_Subscribers_On_The_First_Container ()
|
|
|
- {
|
|
|
- #if DEBUG_IDISPOSABLE
|
|
|
- // Only clear before because need to test after assert
|
|
|
- Responder.Instances.Clear ();
|
|
|
- #endif
|
|
|
-
|
|
|
- var container1 = new View { Id = "Container1" };
|
|
|
- var count = 0;
|
|
|
-
|
|
|
- var view = new View { Id = "View" };
|
|
|
- view.Disposing += View_Disposing;
|
|
|
- container1.Add (view);
|
|
|
- Assert.Equal (container1, view.SuperView);
|
|
|
-
|
|
|
- void View_Disposing (object sender, EventArgs e)
|
|
|
- {
|
|
|
- count++;
|
|
|
- Assert.Equal (view, sender);
|
|
|
- container1.Remove ((View)sender);
|
|
|
- }
|
|
|
-
|
|
|
- Assert.Single (container1.Subviews);
|
|
|
-
|
|
|
- var container2 = new View { Id = "Container2" };
|
|
|
-
|
|
|
- container2.Add (view);
|
|
|
- Assert.Equal (container2, view.SuperView);
|
|
|
- Assert.Equal (container1.Subviews.Count, container2.Subviews.Count);
|
|
|
- container2.Dispose ();
|
|
|
-
|
|
|
- Assert.Empty (container1.Subviews);
|
|
|
- Assert.Empty (container2.Subviews);
|
|
|
- Assert.Equal (1, count);
|
|
|
- Assert.Null (view.SuperView);
|
|
|
-
|
|
|
- container1.Dispose ();
|
|
|
-
|
|
|
- #if DEBUG_IDISPOSABLE
|
|
|
- Assert.Empty (Responder.Instances);
|
|
|
- #endif
|
|
|
- }
|
|
|
-
|
|
|
- [Fact]
|
|
|
- public void Disposing_Event_Notify_All_Subscribers_On_The_Second_Container ()
|
|
|
- {
|
|
|
- #if DEBUG_IDISPOSABLE
|
|
|
- // Only clear before because need to test after assert
|
|
|
- Responder.Instances.Clear ();
|
|
|
- #endif
|
|
|
-
|
|
|
- var container1 = new View { Id = "Container1" };
|
|
|
-
|
|
|
- var view = new View { Id = "View" };
|
|
|
- container1.Add (view);
|
|
|
- Assert.Equal (container1, view.SuperView);
|
|
|
- Assert.Single (container1.Subviews);
|
|
|
-
|
|
|
- var container2 = new View { Id = "Container2" };
|
|
|
- var count = 0;
|
|
|
-
|
|
|
- view.Disposing += View_Disposing;
|
|
|
- container2.Add (view);
|
|
|
- Assert.Equal (container2, view.SuperView);
|
|
|
-
|
|
|
- void View_Disposing (object sender, EventArgs e)
|
|
|
- {
|
|
|
- count++;
|
|
|
- Assert.Equal (view, sender);
|
|
|
- container2.Remove ((View)sender);
|
|
|
- }
|
|
|
-
|
|
|
- Assert.Equal (container1.Subviews.Count, container2.Subviews.Count);
|
|
|
- container1.Dispose ();
|
|
|
-
|
|
|
- Assert.Empty (container1.Subviews);
|
|
|
- Assert.Empty (container2.Subviews);
|
|
|
- Assert.Equal (1, count);
|
|
|
- Assert.Null (view.SuperView);
|
|
|
-
|
|
|
- container2.Dispose ();
|
|
|
-
|
|
|
- #if DEBUG_IDISPOSABLE
|
|
|
- Assert.Empty (Responder.Instances);
|
|
|
- #endif
|
|
|
- }
|
|
|
-
|
|
|
+
|
|
|
|
|
|
[Fact]
|
|
|
public void KeyPressed_Handled_True_Cancels_KeyPress ()
|
|
@@ -125,82 +22,6 @@ public class ResponderTests
|
|
|
r.Dispose ();
|
|
|
}
|
|
|
|
|
|
- [Fact]
|
|
|
- [TestRespondersDisposed]
|
|
|
- public void New_Initializes ()
|
|
|
- {
|
|
|
- var r = new Responder ();
|
|
|
- Assert.NotNull (r);
|
|
|
- Assert.Equal ("Terminal.Gui.Responder", r.ToString ());
|
|
|
- r.Dispose ();
|
|
|
- }
|
|
|
-
|
|
|
- [Fact]
|
|
|
- [TestRespondersDisposed]
|
|
|
- public void New_Methods_Return_False ()
|
|
|
- {
|
|
|
- var r = new View ();
|
|
|
-
|
|
|
- //Assert.False (r.OnKeyDown (new KeyEventArgs () { Key = Key.Unknown }));
|
|
|
- Assert.False (r.NewKeyDownEvent (new Key { KeyCode = KeyCode.Null }));
|
|
|
- Assert.False (r.NewKeyDownEvent (new Key { KeyCode = KeyCode.Null }));
|
|
|
- Assert.False (r.NewMouseEvent (new MouseEventArgs { Flags = MouseFlags.AllEvents }));
|
|
|
-
|
|
|
- var v = new View ();
|
|
|
- //Assert.False (r.OnEnter (v));
|
|
|
- v.Dispose ();
|
|
|
-
|
|
|
- v = new View ();
|
|
|
- //Assert.False (r.OnLeave (v));
|
|
|
- v.Dispose ();
|
|
|
-
|
|
|
- r.Dispose ();
|
|
|
- }
|
|
|
-
|
|
|
- [Fact]
|
|
|
- public void Responder_Not_Notifying_Dispose ()
|
|
|
- {
|
|
|
- // Only clear before because need to test after assert
|
|
|
- #if DEBUG_IDISPOSABLE
|
|
|
- Responder.Instances.Clear ();
|
|
|
- #endif
|
|
|
- var container1 = new View { Id = "Container1" };
|
|
|
-
|
|
|
- var view = new View { Id = "View" };
|
|
|
- container1.Add (view);
|
|
|
- Assert.Equal (container1, view.SuperView);
|
|
|
-
|
|
|
- Assert.Single (container1.Subviews);
|
|
|
-
|
|
|
- var container2 = new View { Id = "Container2" };
|
|
|
-
|
|
|
- container2.Add (view);
|
|
|
- Assert.Equal (container2, view.SuperView);
|
|
|
- Assert.Equal (container1.Subviews.Count, container2.Subviews.Count);
|
|
|
- container1.Dispose ();
|
|
|
-
|
|
|
- Assert.Empty (container1.Subviews);
|
|
|
- Assert.NotEmpty (container2.Subviews);
|
|
|
- Assert.Single (container2.Subviews);
|
|
|
- Assert.Null (view.SuperView);
|
|
|
-
|
|
|
- // Trying access disposed properties
|
|
|
- #if DEBUG_IDISPOSABLE
|
|
|
- Assert.True (container2.Subviews [0].WasDisposed);
|
|
|
- #endif
|
|
|
- Assert.False (container2.Subviews [0].CanFocus);
|
|
|
- Assert.Null (container2.Subviews [0].Margin);
|
|
|
- Assert.Null (container2.Subviews [0].Border);
|
|
|
- Assert.Null (container2.Subviews [0].Padding);
|
|
|
- Assert.Null (view.SuperView);
|
|
|
-
|
|
|
- container2.Dispose ();
|
|
|
-
|
|
|
- #if DEBUG_IDISPOSABLE
|
|
|
- Assert.Empty (Responder.Instances);
|
|
|
- #endif
|
|
|
- }
|
|
|
-
|
|
|
public class DerivedView : View
|
|
|
{
|
|
|
protected override bool OnKeyDown (Key keyEvent) { return true; }
|