diff --git a/Terminal.Gui/Core/Application.cs b/Terminal.Gui/Core/Application.cs index f7b096df7..a24e9c79d 100644 --- a/Terminal.Gui/Core/Application.cs +++ b/Terminal.Gui/Core/Application.cs @@ -546,8 +546,12 @@ namespace Terminal.Gui { throw new ArgumentException ("The view that you end with must be balanced"); toplevels.Pop (); - if (toplevels.Count > 0) { + if (toplevels.Count == 0) { + Current = null; + CurrentView = null; + } else { Current = toplevels.Peek (); + CurrentView = Current; Refresh (); } } diff --git a/UnitTests/ApplicationTests.cs b/UnitTests/ApplicationTests.cs index 4e98ad1b5..2c73ed370 100644 --- a/UnitTests/ApplicationTests.cs +++ b/UnitTests/ApplicationTests.cs @@ -39,7 +39,7 @@ namespace Terminal.Gui { Assert.Equal (80, Application.Driver.Cols); Assert.Equal (25, Application.Driver.Rows); - Application.Shutdown (true); + Application.Shutdown (); Assert.Null (Application.Current); Assert.Null (Application.CurrentView); Assert.Null (Application.Top); @@ -73,7 +73,7 @@ namespace Terminal.Gui { void Shutdown () { - Application.Shutdown (true); + Application.Shutdown (); } [Fact] @@ -89,15 +89,19 @@ namespace Terminal.Gui { var rs = Application.Begin (top); Assert.NotNull (rs); Assert.Equal (top, Application.Current); - Application.End (rs, true); + Application.End (rs); Assert.Null (Application.Current); Assert.Null (Application.CurrentView); + Assert.NotNull (Application.Top); + Assert.NotNull (Application.MainLoop); + Assert.NotNull (Application.Driver); + + Shutdown (); + Assert.Null (Application.Top); Assert.Null (Application.MainLoop); Assert.Null (Application.Driver); - - Shutdown (); } [Fact] @@ -115,9 +119,9 @@ namespace Terminal.Gui { Application.RequestStop (); }; - Application.Run (top, true); + Application.Run (top); - Application.Shutdown (true); + Application.Shutdown (); Assert.Null (Application.Current); Assert.Null (Application.CurrentView); Assert.Null (Application.Top); @@ -140,9 +144,9 @@ namespace Terminal.Gui { top.Running = false; }; - Application.Run (top, true); + Application.Run (top); - Application.Shutdown (true); + Application.Shutdown (); Assert.Null (Application.Current); Assert.Null (Application.CurrentView); Assert.Null (Application.Top); @@ -190,7 +194,7 @@ namespace Terminal.Gui { keyUps++; }; - Application.Run (Application.Top, true); + Application.Run (Application.Top); // Input string should match output Assert.Equal (input, output); @@ -201,7 +205,7 @@ namespace Terminal.Gui { // # of key up events should match # of iterations Assert.Equal (stackSize, iterations); - Application.Shutdown (true); + Application.Shutdown (); Assert.Null (Application.Current); Assert.Null (Application.CurrentView); Assert.Null (Application.Top); diff --git a/UnitTests/PosTests.cs b/UnitTests/PosTests.cs index f91174400..ba7bf64fb 100644 --- a/UnitTests/PosTests.cs +++ b/UnitTests/PosTests.cs @@ -283,42 +283,50 @@ namespace Terminal.Gui { return (win, button); } - void cleanup () + Application.RunState rs; + + void cleanup (Application.RunState rs) { // Cleanup - Application.Shutdown (); + Application.End (rs); } // Test cases: var app = setup (); app.button.Y = Pos.Left (app.win); + rs = Application.Begin (Application.Top); Application.Run (); - cleanup (); + cleanup (rs); app = setup (); app.button.Y = Pos.X (app.win); + rs = Application.Begin (Application.Top); Application.Run (); - cleanup (); + cleanup (rs); app = setup (); app.button.Y = Pos.Top (app.win); + rs = Application.Begin (Application.Top); Application.Run (); - cleanup (); + cleanup (rs); app = setup (); app.button.Y = Pos.Y (app.win); + rs = Application.Begin (Application.Top); Application.Run (); - cleanup (); + cleanup (rs); app = setup (); app.button.Y = Pos.Bottom (app.win); + rs = Application.Begin (Application.Top); Application.Run (); - cleanup (); + cleanup (rs); app = setup (); app.button.Y = Pos.Right (app.win); + rs = Application.Begin (Application.Top); Application.Run (); - cleanup (); + cleanup (rs); } diff --git a/UnitTests/ScenarioTests.cs b/UnitTests/ScenarioTests.cs index c2d8365cb..ad80c68e5 100644 --- a/UnitTests/ScenarioTests.cs +++ b/UnitTests/ScenarioTests.cs @@ -69,9 +69,10 @@ namespace Terminal.Gui { var scenario = (Scenario)Activator.CreateInstance (scenarioClass); scenario.Init (Application.Top, Colors.Base); scenario.Setup (); + var rs = Application.Begin (Application.Top); scenario.Run (); - Application.Shutdown (); + Application.End (rs); Assert.Equal (0, abortCount); // # of key up events should match # of iterations @@ -124,9 +125,10 @@ namespace Terminal.Gui { var scenario = (Scenario)Activator.CreateInstance (scenarioClass); scenario.Init (Application.Top, Colors.Base); scenario.Setup (); + var rs = Application.Begin (Application.Top); scenario.Run (); - Application.Shutdown (); + Application.End (rs); Assert.Equal (0, abortCount); // # of key up events should match # of iterations diff --git a/UnitTests/ViewTests.cs b/UnitTests/ViewTests.cs index fec7fd00f..25d3d789e 100644 --- a/UnitTests/ViewTests.cs +++ b/UnitTests/ViewTests.cs @@ -624,8 +624,8 @@ namespace Terminal.Gui { t.Running = false; }; - Application.Run (t, true); - Application.Shutdown (true); + Application.Run (t); + Application.Shutdown (); Assert.Equal (1, tc); Assert.Equal (1, wc); @@ -704,8 +704,8 @@ namespace Terminal.Gui { t.Running = false; }; - Application.Run (t, true); - Application.Shutdown (true); + Application.Run (t); + Application.Shutdown (); Assert.Equal (1, tc); Assert.Equal (1, wc);