mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2026-01-01 08:50:25 +01:00
REMOVED RESPONDER!
This commit is contained in:
@@ -13,7 +13,7 @@ public class ApplicationTests
|
||||
ConfigurationManager.Locations = ConfigurationManager.ConfigLocations.None;
|
||||
|
||||
#if DEBUG_IDISPOSABLE
|
||||
Responder.Instances.Clear ();
|
||||
View.Instances.Clear ();
|
||||
RunState.Instances.Clear ();
|
||||
#endif
|
||||
}
|
||||
@@ -66,7 +66,7 @@ public class ApplicationTests
|
||||
Assert.True (shutdown);
|
||||
|
||||
#if DEBUG_IDISPOSABLE
|
||||
Assert.Empty (Responder.Instances);
|
||||
Assert.Empty (View.Instances);
|
||||
#endif
|
||||
lock (_timeoutLock)
|
||||
{
|
||||
@@ -393,7 +393,7 @@ public class ApplicationTests
|
||||
// Validate there are no outstanding Responder-based instances
|
||||
// after a scenario was selected to run. This proves the main UI Catalog
|
||||
// 'app' closed cleanly.
|
||||
Assert.Empty (Responder.Instances);
|
||||
Assert.Empty (View.Instances);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ public class KeyboardTests
|
||||
{
|
||||
_output = output;
|
||||
#if DEBUG_IDISPOSABLE
|
||||
Responder.Instances.Clear ();
|
||||
View.Instances.Clear ();
|
||||
RunState.Instances.Clear ();
|
||||
#endif
|
||||
}
|
||||
@@ -671,7 +671,7 @@ public class KeyboardTests
|
||||
Assert.True (shutdown);
|
||||
|
||||
#if DEBUG_IDISPOSABLE
|
||||
Assert.Empty (Responder.Instances);
|
||||
Assert.Empty (View.Instances);
|
||||
#endif
|
||||
lock (_timeoutLock)
|
||||
{
|
||||
|
||||
@@ -13,7 +13,7 @@ public class ApplicationMouseTests
|
||||
{
|
||||
_output = output;
|
||||
#if DEBUG_IDISPOSABLE
|
||||
Responder.Instances.Clear ();
|
||||
View.Instances.Clear ();
|
||||
RunState.Instances.Clear ();
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ public class RunStateTests
|
||||
public RunStateTests ()
|
||||
{
|
||||
#if DEBUG_IDISPOSABLE
|
||||
Responder.Instances.Clear ();
|
||||
View.Instances.Clear ();
|
||||
RunState.Instances.Clear ();
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -86,13 +86,13 @@ public class AutoInitShutdownAttribute : BeforeAfterTestAttribute
|
||||
|
||||
Application.Shutdown ();
|
||||
#if DEBUG_IDISPOSABLE
|
||||
if (Responder.Instances.Count == 0)
|
||||
if (View.Instances.Count == 0)
|
||||
{
|
||||
Assert.Empty (Responder.Instances);
|
||||
Assert.Empty (View.Instances);
|
||||
}
|
||||
else
|
||||
{
|
||||
Responder.Instances.Clear ();
|
||||
View.Instances.Clear ();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -103,7 +103,7 @@ public class AutoInitShutdownAttribute : BeforeAfterTestAttribute
|
||||
//finally
|
||||
{
|
||||
#if DEBUG_IDISPOSABLE
|
||||
Responder.Instances.Clear ();
|
||||
View.Instances.Clear ();
|
||||
Application.ResetState (true);
|
||||
#endif
|
||||
}
|
||||
@@ -126,13 +126,13 @@ public class AutoInitShutdownAttribute : BeforeAfterTestAttribute
|
||||
#if DEBUG_IDISPOSABLE
|
||||
|
||||
// Clear out any lingering Responder instances from previous tests
|
||||
if (Responder.Instances.Count == 0)
|
||||
if (View.Instances.Count == 0)
|
||||
{
|
||||
Assert.Empty (Responder.Instances);
|
||||
Assert.Empty (View.Instances);
|
||||
}
|
||||
else
|
||||
{
|
||||
Responder.Instances.Clear ();
|
||||
View.Instances.Clear ();
|
||||
}
|
||||
#endif
|
||||
Application.Init ((ConsoleDriver)Activator.CreateInstance (_driverType));
|
||||
@@ -160,7 +160,7 @@ public class TestRespondersDisposed : BeforeAfterTestAttribute
|
||||
base.After (methodUnderTest);
|
||||
|
||||
#if DEBUG_IDISPOSABLE
|
||||
Assert.Empty (Responder.Instances);
|
||||
Assert.Empty (View.Instances);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -172,8 +172,8 @@ public class TestRespondersDisposed : BeforeAfterTestAttribute
|
||||
#if DEBUG_IDISPOSABLE
|
||||
|
||||
// Clear out any lingering Responder instances from previous tests
|
||||
Responder.Instances.Clear ();
|
||||
Assert.Empty (Responder.Instances);
|
||||
View.Instances.Clear ();
|
||||
Assert.Empty (View.Instances);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ public class ScenarioTests : TestsAllViews
|
||||
public ScenarioTests (ITestOutputHelper output)
|
||||
{
|
||||
#if DEBUG_IDISPOSABLE
|
||||
Responder.Instances.Clear ();
|
||||
View.Instances.Clear ();
|
||||
#endif
|
||||
_output = output;
|
||||
}
|
||||
@@ -68,7 +68,7 @@ public class ScenarioTests : TestsAllViews
|
||||
Assert.True (shutdown);
|
||||
|
||||
#if DEBUG_IDISPOSABLE
|
||||
Assert.Empty (Responder.Instances);
|
||||
Assert.Empty (View.Instances);
|
||||
#endif
|
||||
|
||||
lock (_timeoutLock)
|
||||
@@ -836,7 +836,7 @@ public class ScenarioTests : TestsAllViews
|
||||
ConfigurationManager.Reset ();
|
||||
|
||||
#if DEBUG_IDISPOSABLE
|
||||
Assert.Empty (Responder.Instances);
|
||||
Assert.Empty (View.Instances);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -470,8 +470,8 @@ public class DimTests
|
||||
#if DEBUG_IDISPOSABLE
|
||||
|
||||
// HACK: Force clean up of Responders to avoid having to Dispose all the Views created above.
|
||||
Responder.Instances.Clear ();
|
||||
Assert.Empty (Responder.Instances);
|
||||
View.Instances.Clear ();
|
||||
Assert.Empty (View.Instances);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -249,7 +249,7 @@ public class PosViewTests (ITestOutputHelper output)
|
||||
#if DEBUG_IDISPOSABLE
|
||||
|
||||
// HACK: Force clean up of Responders to avoid having to Dispose all the Views created above.
|
||||
Responder.Instances.Clear ();
|
||||
View.Instances.Clear ();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,155 @@ namespace Terminal.Gui.ViewTests;
|
||||
|
||||
public class ViewTests (ITestOutputHelper output)
|
||||
{
|
||||
// Generic lifetime (IDisposable) tests
|
||||
[Fact]
|
||||
[TestRespondersDisposed]
|
||||
public void Dispose_Works ()
|
||||
{
|
||||
var r = new View ();
|
||||
#if DEBUG_IDISPOSABLE
|
||||
Assert.Single (View.Instances);
|
||||
#endif
|
||||
|
||||
r.Dispose ();
|
||||
#if DEBUG_IDISPOSABLE
|
||||
Assert.Empty (View.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
|
||||
View.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 (View.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
|
||||
View.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 (View.Instances);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
[Fact]
|
||||
public void Not_Notifying_Dispose ()
|
||||
{
|
||||
// Only clear before because need to test after assert
|
||||
#if DEBUG_IDISPOSABLE
|
||||
View.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 (View.Instances);
|
||||
#endif
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[AutoInitShutdown]
|
||||
public void Clear_Viewport_Can_Use_Driver_AddRune_Or_AddStr_Methods ()
|
||||
@@ -428,7 +577,7 @@ At 0,0
|
||||
Assert.NotNull (view.Padding);
|
||||
|
||||
#if DEBUG_IDISPOSABLE
|
||||
Assert.Equal (4, Responder.Instances.Count);
|
||||
Assert.Equal (4, View.Instances.Count);
|
||||
#endif
|
||||
|
||||
view.Dispose ();
|
||||
@@ -948,7 +1097,7 @@ At 0,0
|
||||
super.Dispose ();
|
||||
|
||||
#if DEBUG_IDISPOSABLE
|
||||
Assert.Empty (Responder.Instances);
|
||||
Assert.Empty (View.Instances);
|
||||
#endif
|
||||
|
||||
// Default Constructor
|
||||
|
||||
Reference in New Issue
Block a user