2
0
Tig 1 жил өмнө
parent
commit
94ce28012e

+ 58 - 53
UnitTests/View/Adornment/BorderTests.cs

@@ -2,11 +2,8 @@
 
 
 namespace Terminal.Gui.ViewTests;
 namespace Terminal.Gui.ViewTests;
 
 
-public class BorderTests
+public class BorderTests (ITestOutputHelper output)
 {
 {
-    private readonly ITestOutputHelper _output;
-    public BorderTests (ITestOutputHelper output) { _output = output; }
-
     [Fact]
     [Fact]
     [SetupFakeDriver]
     [SetupFakeDriver]
     public void Border_Parent_HasFocus_Title_Uses_FocusAttribute ()
     public void Border_Parent_HasFocus_Title_Uses_FocusAttribute ()
@@ -18,13 +15,13 @@ public class BorderTests
         var view = new View { Title = "A", Height = 2, Width = 5 };
         var view = new View { Title = "A", Height = 2, Width = 5 };
         superView.Add (view);
         superView.Add (view);
 
 
-        view.Border.Thickness = new Thickness (0, 1, 0, 0);
+        view.Border.Thickness = new (0, 1, 0, 0);
         view.Border.LineStyle = LineStyle.Single;
         view.Border.LineStyle = LineStyle.Single;
 
 
-        view.ColorScheme = new ColorScheme
+        view.ColorScheme = new()
         {
         {
-            Normal = new Attribute (Color.Red, Color.Green), 
-            Focus = new Attribute (Color.Green, Color.Red)
+            Normal = new (Color.Red, Color.Green),
+            Focus = new (Color.Green, Color.Red)
         };
         };
         Assert.NotEqual (view.ColorScheme.Normal.Foreground, view.ColorScheme.Focus.Foreground);
         Assert.NotEqual (view.ColorScheme.Normal.Foreground, view.ColorScheme.Focus.Foreground);
         Assert.Equal (ColorName.Red, view.Border.GetNormalColor ().Foreground.GetClosestNamedColor ());
         Assert.Equal (ColorName.Red, view.Border.GetNormalColor ().Foreground.GetClosestNamedColor ());
@@ -36,7 +33,7 @@ public class BorderTests
         superView.Draw ();
         superView.Draw ();
 
 
         var expected = @"─┤A├─";
         var expected = @"─┤A├─";
-        TestHelpers.AssertDriverContentsAre (expected, _output);
+        TestHelpers.AssertDriverContentsAre (expected, output);
         TestHelpers.AssertDriverAttributesAre ("00000", null, view.ColorScheme.Normal);
         TestHelpers.AssertDriverAttributesAre ("00000", null, view.ColorScheme.Normal);
 
 
         view.CanFocus = true;
         view.CanFocus = true;
@@ -53,12 +50,12 @@ public class BorderTests
     public void Border_Uses_Parent_ColorScheme ()
     public void Border_Uses_Parent_ColorScheme ()
     {
     {
         var view = new View { Title = "A", Height = 2, Width = 5 };
         var view = new View { Title = "A", Height = 2, Width = 5 };
-        view.Border.Thickness = new Thickness (0, 1, 0, 0);
+        view.Border.Thickness = new (0, 1, 0, 0);
         view.Border.LineStyle = LineStyle.Single;
         view.Border.LineStyle = LineStyle.Single;
 
 
-        view.ColorScheme = new ColorScheme
+        view.ColorScheme = new()
         {
         {
-            Normal = new Attribute (Color.Red, Color.Green), Focus = new Attribute (Color.Green, Color.Red)
+            Normal = new (Color.Red, Color.Green), Focus = new (Color.Green, Color.Red)
         };
         };
         Assert.Equal (ColorName.Red, view.Border.GetNormalColor ().Foreground.GetClosestNamedColor ());
         Assert.Equal (ColorName.Red, view.Border.GetNormalColor ().Foreground.GetClosestNamedColor ());
         Assert.Equal (ColorName.Green, view.Border.GetFocusColor ().Foreground.GetClosestNamedColor ());
         Assert.Equal (ColorName.Green, view.Border.GetFocusColor ().Foreground.GetClosestNamedColor ());
@@ -70,7 +67,7 @@ public class BorderTests
         view.Draw ();
         view.Draw ();
 
 
         var expected = @"─┤A├─";
         var expected = @"─┤A├─";
-        TestHelpers.AssertDriverContentsAre (expected, _output);
+        TestHelpers.AssertDriverContentsAre (expected, output);
         TestHelpers.AssertDriverAttributesAre ("00000", null, view.ColorScheme.Normal);
         TestHelpers.AssertDriverAttributesAre ("00000", null, view.ColorScheme.Normal);
     }
     }
 
 
@@ -105,7 +102,7 @@ public class BorderTests
         switch (width)
         switch (width)
         {
         {
             case 1:
             case 1:
-                Assert.Equal (new Rectangle (0, 0, 1, 5), win.Frame);
+                Assert.Equal (new (0, 0, 1, 5), win.Frame);
 
 
                 expected = @"
                 expected = @"
@@ -114,7 +111,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 2:
             case 2:
-                Assert.Equal (new Rectangle (0, 0, 2, 5), win.Frame);
+                Assert.Equal (new (0, 0, 2, 5), win.Frame);
 
 
                 expected = @"
                 expected = @"
 ╔╗
 ╔╗
@@ -123,7 +120,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 3:
             case 3:
-                Assert.Equal (new Rectangle (0, 0, 3, 5), win.Frame);
+                Assert.Equal (new (0, 0, 3, 5), win.Frame);
 
 
                 expected = @"
                 expected = @"
 ╔═╗
 ╔═╗
@@ -132,7 +129,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 4:
             case 4:
-                Assert.Equal (new Rectangle (0, 0, 4, 5), win.Frame);
+                Assert.Equal (new (0, 0, 4, 5), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒╕ 
  ╒╕ 
@@ -142,7 +139,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 5:
             case 5:
-                Assert.Equal (new Rectangle (0, 0, 5, 5), win.Frame);
+                Assert.Equal (new (0, 0, 5, 5), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒═╕ 
  ╒═╕ 
@@ -152,7 +149,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 6:
             case 6:
-                Assert.Equal (new Rectangle (0, 0, 6, 5), win.Frame);
+                Assert.Equal (new (0, 0, 6, 5), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒══╕ 
  ╒══╕ 
@@ -162,7 +159,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 7:
             case 7:
-                Assert.Equal (new Rectangle (0, 0, 7, 5), win.Frame);
+                Assert.Equal (new (0, 0, 7, 5), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒═══╕ 
  ╒═══╕ 
@@ -172,7 +169,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 8:
             case 8:
-                Assert.Equal (new Rectangle (0, 0, 8, 5), win.Frame);
+                Assert.Equal (new (0, 0, 8, 5), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒════╕ 
  ╒════╕ 
@@ -182,7 +179,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 9:
             case 9:
-                Assert.Equal (new Rectangle (0, 0, 9, 5), win.Frame);
+                Assert.Equal (new (0, 0, 9, 5), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒════╕  
  ╒════╕  
@@ -192,7 +189,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 10:
             case 10:
-                Assert.Equal (new Rectangle (0, 0, 10, 5), win.Frame);
+                Assert.Equal (new (0, 0, 10, 5), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒════╕   
  ╒════╕   
@@ -203,8 +200,9 @@ public class BorderTests
                 break;
                 break;
         }
         }
 
 
-        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
+        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
         Application.End (rs);
         Application.End (rs);
+        win.Dispose ();
     }
     }
 
 
     [Theory]
     [Theory]
@@ -238,7 +236,7 @@ public class BorderTests
         switch (width)
         switch (width)
         {
         {
             case 1:
             case 1:
-                Assert.Equal (new Rectangle (0, 0, 1, 4), win.Frame);
+                Assert.Equal (new (0, 0, 1, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
@@ -247,7 +245,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 2:
             case 2:
-                Assert.Equal (new Rectangle (0, 0, 2, 4), win.Frame);
+                Assert.Equal (new (0, 0, 2, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
 ╔╗
 ╔╗
@@ -256,7 +254,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 3:
             case 3:
-                Assert.Equal (new Rectangle (0, 0, 3, 4), win.Frame);
+                Assert.Equal (new (0, 0, 3, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
 ╔═╗
 ╔═╗
@@ -265,7 +263,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 4:
             case 4:
-                Assert.Equal (new Rectangle (0, 0, 4, 4), win.Frame);
+                Assert.Equal (new (0, 0, 4, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒╕ 
  ╒╕ 
@@ -275,7 +273,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 5:
             case 5:
-                Assert.Equal (new Rectangle (0, 0, 5, 4), win.Frame);
+                Assert.Equal (new (0, 0, 5, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒═╕ 
  ╒═╕ 
@@ -285,7 +283,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 6:
             case 6:
-                Assert.Equal (new Rectangle (0, 0, 6, 4), win.Frame);
+                Assert.Equal (new (0, 0, 6, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒══╕ 
  ╒══╕ 
@@ -295,7 +293,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 7:
             case 7:
-                Assert.Equal (new Rectangle (0, 0, 7, 4), win.Frame);
+                Assert.Equal (new (0, 0, 7, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒═══╕ 
  ╒═══╕ 
@@ -305,7 +303,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 8:
             case 8:
-                Assert.Equal (new Rectangle (0, 0, 8, 4), win.Frame);
+                Assert.Equal (new (0, 0, 8, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒════╕ 
  ╒════╕ 
@@ -315,7 +313,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 9:
             case 9:
-                Assert.Equal (new Rectangle (0, 0, 9, 4), win.Frame);
+                Assert.Equal (new (0, 0, 9, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒════╕  
  ╒════╕  
@@ -325,7 +323,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 10:
             case 10:
-                Assert.Equal (new Rectangle (0, 0, 10, 4), win.Frame);
+                Assert.Equal (new (0, 0, 10, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒════╕   
  ╒════╕   
@@ -336,8 +334,9 @@ public class BorderTests
                 break;
                 break;
         }
         }
 
 
-        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
+        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
         Application.End (rs);
         Application.End (rs);
+        win.Dispose ();
     }
     }
 
 
     [Theory]
     [Theory]
@@ -371,7 +370,7 @@ public class BorderTests
         switch (width)
         switch (width)
         {
         {
             case 1:
             case 1:
-                Assert.Equal (new Rectangle (0, 0, 1, 4), win.Frame);
+                Assert.Equal (new (0, 0, 1, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
@@ -380,7 +379,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 2:
             case 2:
-                Assert.Equal (new Rectangle (0, 0, 2, 4), win.Frame);
+                Assert.Equal (new (0, 0, 2, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
 ╔╗
 ╔╗
@@ -389,7 +388,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 3:
             case 3:
-                Assert.Equal (new Rectangle (0, 0, 3, 4), win.Frame);
+                Assert.Equal (new (0, 0, 3, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
 ╔═╗
 ╔═╗
@@ -398,7 +397,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 4:
             case 4:
-                Assert.Equal (new Rectangle (0, 0, 4, 4), win.Frame);
+                Assert.Equal (new (0, 0, 4, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒╕ 
  ╒╕ 
@@ -408,7 +407,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 5:
             case 5:
-                Assert.Equal (new Rectangle (0, 0, 5, 4), win.Frame);
+                Assert.Equal (new (0, 0, 5, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒═╕ 
  ╒═╕ 
@@ -418,7 +417,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 6:
             case 6:
-                Assert.Equal (new Rectangle (0, 0, 6, 4), win.Frame);
+                Assert.Equal (new (0, 0, 6, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒══╕ 
  ╒══╕ 
@@ -428,7 +427,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 7:
             case 7:
-                Assert.Equal (new Rectangle (0, 0, 7, 4), win.Frame);
+                Assert.Equal (new (0, 0, 7, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒═══╕ 
  ╒═══╕ 
@@ -438,7 +437,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 8:
             case 8:
-                Assert.Equal (new Rectangle (0, 0, 8, 4), win.Frame);
+                Assert.Equal (new (0, 0, 8, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒════╕ 
  ╒════╕ 
@@ -448,7 +447,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 9:
             case 9:
-                Assert.Equal (new Rectangle (0, 0, 9, 4), win.Frame);
+                Assert.Equal (new (0, 0, 9, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒════╕  
  ╒════╕  
@@ -458,7 +457,7 @@ public class BorderTests
 
 
                 break;
                 break;
             case 10:
             case 10:
-                Assert.Equal (new Rectangle (0, 0, 10, 4), win.Frame);
+                Assert.Equal (new (0, 0, 10, 4), win.Frame);
 
 
                 expected = @"
                 expected = @"
  ╒════╕   
  ╒════╕   
@@ -469,8 +468,9 @@ public class BorderTests
                 break;
                 break;
         }
         }
 
 
-        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
+        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
         Application.End (rs);
         Application.End (rs);
+        win.Dispose ();
     }
     }
 
 
     [Theory]
     [Theory]
@@ -523,8 +523,9 @@ public class BorderTests
                 break;
                 break;
         }
         }
 
 
-        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
+        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
         Application.End (rs);
         Application.End (rs);
+        win.Dispose ();
     }
     }
 
 
     [Theory]
     [Theory]
@@ -636,7 +637,8 @@ public class BorderTests
                 break;
                 break;
         }
         }
 
 
-        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
+        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
+        win.Dispose ();
     }
     }
 
 
     [Theory]
     [Theory]
@@ -736,8 +738,9 @@ public class BorderTests
 ║└─┘║
 ║└─┘║
 ╚═══╝";
 ╚═══╝";
 
 
-        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
+        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
         Application.End (rs);
         Application.End (rs);
+        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
@@ -762,8 +765,9 @@ public class BorderTests
 ║└──────┘║
 ║└──────┘║
 ╚════════╝";
 ╚════════╝";
 
 
-        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
+        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
         Application.End (rs);
         Application.End (rs);
+        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
@@ -783,7 +787,8 @@ public class BorderTests
 │ │
 │ │
 └─┘";
 └─┘";
 
 
-        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
+        _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
+        win.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
@@ -801,11 +806,11 @@ public class BorderTests
         var view = new View ();
         var view = new View ();
         view.BorderStyle = LineStyle.Single;
         view.BorderStyle = LineStyle.Single;
         Assert.Equal (LineStyle.Single, view.BorderStyle);
         Assert.Equal (LineStyle.Single, view.BorderStyle);
-        Assert.Equal (new Thickness (1), view.Border.Thickness);
+        Assert.Equal (new (1), view.Border.Thickness);
 
 
         view.BorderStyle = LineStyle.Double;
         view.BorderStyle = LineStyle.Double;
         Assert.Equal (LineStyle.Double, view.BorderStyle);
         Assert.Equal (LineStyle.Double, view.BorderStyle);
-        Assert.Equal (new Thickness (1), view.Border.Thickness);
+        Assert.Equal (new (1), view.Border.Thickness);
 
 
         view.BorderStyle = LineStyle.None;
         view.BorderStyle = LineStyle.None;
         Assert.Equal (LineStyle.None, view.BorderStyle);
         Assert.Equal (LineStyle.None, view.BorderStyle);

+ 118 - 107
UnitTests/View/ViewTests.cs

@@ -4,11 +4,8 @@ using Xunit.Abstractions;
 
 
 namespace Terminal.Gui.ViewTests;
 namespace Terminal.Gui.ViewTests;
 
 
-public class ViewTests
+public class ViewTests (ITestOutputHelper output)
 {
 {
-    private readonly ITestOutputHelper _output;
-    public ViewTests (ITestOutputHelper output) { _output = output; }
-
     [Fact]
     [Fact]
     [AutoInitShutdown]
     [AutoInitShutdown]
     public void Clear_Viewport_Can_Use_Driver_AddRune_Or_AddStr_Methods ()
     public void Clear_Viewport_Can_Use_Driver_AddRune_Or_AddStr_Methods ()
@@ -18,7 +15,7 @@ public class ViewTests
         view.DrawContent += (s, e) =>
         view.DrawContent += (s, e) =>
                             {
                             {
                                 Rectangle savedClip = Application.Driver.Clip;
                                 Rectangle savedClip = Application.Driver.Clip;
-                                Application.Driver.Clip = new Rectangle (1, 1, view.Viewport.Width, view.Viewport.Height);
+                                Application.Driver.Clip = new (1, 1, view.Viewport.Width, view.Viewport.Height);
 
 
                                 for (var row = 0; row < view.Viewport.Height; row++)
                                 for (var row = 0; row < view.Viewport.Height; row++)
                                 {
                                 {
@@ -51,8 +48,8 @@ public class ViewTests
 └──────────────────┘
 └──────────────────┘
 ";
 ";
 
 
-        Rectangle pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
-        Assert.Equal (new Rectangle (0, 0, 20, 10), pos);
+        Rectangle pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
+        Assert.Equal (new (0, 0, 20, 10), pos);
 
 
         view.FillRect (view.Viewport);
         view.FillRect (view.Viewport);
 
 
@@ -69,7 +66,7 @@ public class ViewTests
 └──────────────────┘
 └──────────────────┘
 ";
 ";
 
 
-        pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
+        pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
         top.Dispose ();
         top.Dispose ();
     }
     }
 
 
@@ -82,7 +79,7 @@ public class ViewTests
         view.DrawContent += (s, e) =>
         view.DrawContent += (s, e) =>
                             {
                             {
                                 Rectangle savedClip = Application.Driver.Clip;
                                 Rectangle savedClip = Application.Driver.Clip;
-                                Application.Driver.Clip = new Rectangle (1, 1, view.Viewport.Width, view.Viewport.Height);
+                                Application.Driver.Clip = new (1, 1, view.Viewport.Width, view.Viewport.Height);
 
 
                                 for (var row = 0; row < view.Viewport.Height; row++)
                                 for (var row = 0; row < view.Viewport.Height; row++)
                                 {
                                 {
@@ -115,8 +112,8 @@ public class ViewTests
 └──────────────────┘
 └──────────────────┘
 ";
 ";
 
 
-        Rectangle pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
-        Assert.Equal (new Rectangle (0, 0, 20, 10), pos);
+        Rectangle pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
+        Assert.Equal (new (0, 0, 20, 10), pos);
 
 
         view.FillRect (view.Viewport);
         view.FillRect (view.Viewport);
 
 
@@ -133,7 +130,7 @@ public class ViewTests
 └──────────────────┘
 └──────────────────┘
 ";
 ";
 
 
-        pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
+        pos = TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
 
 
         top.Dispose ();
         top.Dispose ();
     }
     }
@@ -147,8 +144,8 @@ public class ViewTests
         var root = new View { Width = 20, Height = 10, ColorScheme = Colors.ColorSchemes ["Base"] };
         var root = new View { Width = 20, Height = 10, ColorScheme = Colors.ColorSchemes ["Base"] };
 
 
         View v = label
         View v = label
-                     ? new Label { Text = new string ('c', 100) }
-                     : new TextView { Height = 1, Text = new string ('c', 100), Width = Dim.Fill () };
+                     ? new Label { Text = new ('c', 100) }
+                     : new TextView { Height = 1, Text = new ('c', 100), Width = Dim.Fill () };
 
 
         root.Add (v);
         root.Add (v);
 
 
@@ -159,18 +156,19 @@ public class ViewTests
         if (label)
         if (label)
         {
         {
             Assert.False (v.CanFocus);
             Assert.False (v.CanFocus);
+
             //Assert.Equal (new Rectangle (0, 0, 20, 1), v.Frame);
             //Assert.Equal (new Rectangle (0, 0, 20, 1), v.Frame);
         }
         }
         else
         else
         {
         {
             Assert.True (v.CanFocus);
             Assert.True (v.CanFocus);
-            Assert.Equal (new Rectangle (0, 0, 20, 1), v.Frame);
+            Assert.Equal (new (0, 0, 20, 1), v.Frame);
         }
         }
 
 
         TestHelpers.AssertDriverContentsWithFrameAre (
         TestHelpers.AssertDriverContentsWithFrameAre (
                                                       @"
                                                       @"
 cccccccccccccccccccc",
 cccccccccccccccccccc",
-                                                      _output
+                                                      output
                                                      );
                                                      );
 
 
         Attribute [] attributes =
         Attribute [] attributes =
@@ -220,6 +218,7 @@ cccccccccccccccccccc",
         }
         }
 
 
         Application.End (runState);
         Application.End (runState);
+        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
@@ -246,13 +245,13 @@ At 0,0
                              
                              
   A text with some long width
   A text with some long width
    and also with two lines.  ",
    and also with two lines.  ",
-                                                      _output
+                                                      output
                                                      );
                                                      );
 
 
-        view.Frame = new Rectangle (3, 3, 10, 1);
-        Assert.Equal (new Rectangle (3, 3, 10, 1), view.Frame);
-        Assert.Equal (new Rectangle (0, 0, 10, 1), view.Viewport);
-        Assert.Equal (new Rectangle (0, 0, 10, 1), view._needsDisplayRect);
+        view.Frame = new (3, 3, 10, 1);
+        Assert.Equal (new (3, 3, 10, 1), view.Frame);
+        Assert.Equal (new (0, 0, 10, 1), view.Viewport);
+        Assert.Equal (new (0, 0, 10, 1), view._needsDisplayRect);
         top.Draw ();
         top.Draw ();
 
 
         TestHelpers.AssertDriverContentsWithFrameAre (
         TestHelpers.AssertDriverContentsWithFrameAre (
@@ -261,9 +260,10 @@ At 0,0
              
              
              
              
    A text wit",
    A text wit",
-                                                      _output
+                                                      output
                                                      );
                                                      );
         Application.End (runState);
         Application.End (runState);
+        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
@@ -292,16 +292,16 @@ At 0,0
                              
                              
   A text with some long width
   A text with some long width
    and also with two lines.  ",
    and also with two lines.  ",
-                                                      _output
+                                                      output
                                                      );
                                                      );
 
 
         view.X = 3;
         view.X = 3;
         view.Y = 3;
         view.Y = 3;
         view.Width = 10;
         view.Width = 10;
         view.Height = 1;
         view.Height = 1;
-        Assert.Equal (new Rectangle (3, 3, 10, 1), view.Frame);
-        Assert.Equal (new Rectangle (0, 0, 10, 1), view.Viewport);
-        Assert.Equal (new Rectangle (0, 0, 30, 2), view._needsDisplayRect);
+        Assert.Equal (new (3, 3, 10, 1), view.Frame);
+        Assert.Equal (new (0, 0, 10, 1), view.Viewport);
+        Assert.Equal (new (0, 0, 30, 2), view._needsDisplayRect);
         top.Draw ();
         top.Draw ();
 
 
         TestHelpers.AssertDriverContentsWithFrameAre (
         TestHelpers.AssertDriverContentsWithFrameAre (
@@ -310,9 +310,10 @@ At 0,0
              
              
              
              
    A text wit",
    A text wit",
-                                                      _output
+                                                      output
                                                      );
                                                      );
         Application.End (runState);
         Application.End (runState);
+        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
@@ -341,22 +342,23 @@ At 0,0
                              
                              
   A text with some long width
   A text with some long width
    and also with two lines.  ",
    and also with two lines.  ",
-                                                      _output
+                                                      output
                                                      );
                                                      );
 
 
-        view.Frame = new Rectangle (1, 1, 10, 1);
-        Assert.Equal (new Rectangle (1, 1, 10, 1), view.Frame);
-        Assert.Equal (new Rectangle (0, 0, 10, 1), view.Viewport);
-        Assert.Equal (new Rectangle (0, 0, 10, 1), view._needsDisplayRect);
+        view.Frame = new (1, 1, 10, 1);
+        Assert.Equal (new (1, 1, 10, 1), view.Frame);
+        Assert.Equal (new (0, 0, 10, 1), view.Viewport);
+        Assert.Equal (new (0, 0, 10, 1), view._needsDisplayRect);
         top.Draw ();
         top.Draw ();
 
 
         TestHelpers.AssertDriverContentsWithFrameAre (
         TestHelpers.AssertDriverContentsWithFrameAre (
                                                       @"
                                                       @"
 At 0,0     
 At 0,0     
  A text wit",
  A text wit",
-                                                      _output
+                                                      output
                                                      );
                                                      );
         Application.End (runState);
         Application.End (runState);
+        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
@@ -385,25 +387,26 @@ At 0,0
                              
                              
   A text with some long width
   A text with some long width
    and also with two lines.  ",
    and also with two lines.  ",
-                                                      _output
+                                                      output
                                                      );
                                                      );
 
 
         view.X = 1;
         view.X = 1;
         view.Y = 1;
         view.Y = 1;
         view.Width = 10;
         view.Width = 10;
         view.Height = 1;
         view.Height = 1;
-        Assert.Equal (new Rectangle (1, 1, 10, 1), view.Frame);
-        Assert.Equal (new Rectangle (0, 0, 10, 1), view.Viewport);
-        Assert.Equal (new Rectangle (0, 0, 30, 2), view._needsDisplayRect);
+        Assert.Equal (new (1, 1, 10, 1), view.Frame);
+        Assert.Equal (new (0, 0, 10, 1), view.Viewport);
+        Assert.Equal (new (0, 0, 30, 2), view._needsDisplayRect);
         top.Draw ();
         top.Draw ();
 
 
         TestHelpers.AssertDriverContentsWithFrameAre (
         TestHelpers.AssertDriverContentsWithFrameAre (
                                                       @"
                                                       @"
 At 0,0     
 At 0,0     
  A text wit",
  A text wit",
-                                                      _output
+                                                      output
                                                      );
                                                      );
         Application.End (runState);
         Application.End (runState);
+        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
@@ -443,6 +446,7 @@ At 0,0
 
 
         Assert.True (viewCalled);
         Assert.True (viewCalled);
         Assert.True (tvCalled);
         Assert.True (tvCalled);
+        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
@@ -476,33 +480,33 @@ At 0,0
 
 
         RunState runState = Application.Begin (top);
         RunState runState = Application.Begin (top);
 
 
-        top.LayoutComplete += (s, e) => { Assert.Equal (new Rectangle (0, 0, 80, 25), top._needsDisplayRect); };
+        top.LayoutComplete += (s, e) => { Assert.Equal (new (0, 0, 80, 25), top._needsDisplayRect); };
 
 
-        frame.LayoutComplete += (s, e) => { Assert.Equal (new Rectangle (0, 0, 40, 8), frame._needsDisplayRect); };
+        frame.LayoutComplete += (s, e) => { Assert.Equal (new (0, 0, 40, 8), frame._needsDisplayRect); };
 
 
-        label.LayoutComplete += (s, e) => { Assert.Equal (new Rectangle (0, 0, 38, 1), label._needsDisplayRect); };
+        label.LayoutComplete += (s, e) => { Assert.Equal (new (0, 0, 38, 1), label._needsDisplayRect); };
 
 
-        button.LayoutComplete += (s, e) => { Assert.Equal (new Rectangle (0, 0, 13, 1), button._needsDisplayRect); };
+        button.LayoutComplete += (s, e) => { Assert.Equal (new (0, 0, 13, 1), button._needsDisplayRect); };
 
 
-        Assert.Equal (new Rectangle (0, 0, 80, 25), top.Frame);
-        Assert.Equal (new Rectangle (20, 8, 40, 8), frame.Frame);
+        Assert.Equal (new (0, 0, 80, 25), top.Frame);
+        Assert.Equal (new (20, 8, 40, 8), frame.Frame);
 
 
         Assert.Equal (
         Assert.Equal (
-                      new Rectangle (20, 8, 60, 16),
+                      new (20, 8, 60, 16),
                       new Rectangle (
                       new Rectangle (
-                                frame.Frame.Left,
-                                frame.Frame.Top,
-                                frame.Frame.Right,
-                                frame.Frame.Bottom
-                               )
+                                     frame.Frame.Left,
+                                     frame.Frame.Top,
+                                     frame.Frame.Right,
+                                     frame.Frame.Bottom
+                                    )
                      );
                      );
-        Assert.Equal (new Rectangle (0, 0, 30, 1), label.Frame);
-        Assert.Equal (new Rectangle (0, 1, 13, 1), button.Frame); // this proves frame was set
+        Assert.Equal (new (0, 0, 30, 1), label.Frame);
+        Assert.Equal (new (0, 1, 13, 1), button.Frame); // this proves frame was set
         Application.End (runState);
         Application.End (runState);
+        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
-    [AutoInitShutdown]
     public void GetHotNormalColor_ColorScheme ()
     public void GetHotNormalColor_ColorScheme ()
     {
     {
         var view = new View { ColorScheme = Colors.ColorSchemes ["Base"] };
         var view = new View { ColorScheme = Colors.ColorSchemes ["Base"] };
@@ -515,7 +519,6 @@ At 0,0
     }
     }
 
 
     [Fact]
     [Fact]
-    [AutoInitShutdown]
     public void GetNormalColor_ColorScheme ()
     public void GetNormalColor_ColorScheme ()
     {
     {
         var view = new View { ColorScheme = Colors.ColorSchemes ["Base"] };
         var view = new View { ColorScheme = Colors.ColorSchemes ["Base"] };
@@ -553,12 +556,12 @@ At 0,0
                              
                              
   A text with some long width
   A text with some long width
    and also with two lines.  ",
    and also with two lines.  ",
-                                                      _output
+                                                      output
                                                      );
                                                      );
 
 
-        view.Frame = new Rectangle (3, 3, 10, 1);
-        Assert.Equal (new Rectangle (0, 0, 10, 1), view.Viewport);
-        Assert.Equal (new Rectangle (0, 0, 10, 1), view._needsDisplayRect);
+        view.Frame = new (3, 3, 10, 1);
+        Assert.Equal (new (0, 0, 10, 1), view.Viewport);
+        Assert.Equal (new (0, 0, 10, 1), view._needsDisplayRect);
         view.Draw ();
         view.Draw ();
 
 
         TestHelpers.AssertDriverContentsWithFrameAre (
         TestHelpers.AssertDriverContentsWithFrameAre (
@@ -567,9 +570,10 @@ At 0,0
                              
                              
   A text with some long width
   A text with some long width
    A text witith two lines.  ",
    A text witith two lines.  ",
-                                                      _output
+                                                      output
                                                      );
                                                      );
         Application.End (runState);
         Application.End (runState);
+        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
@@ -598,16 +602,16 @@ At 0,0
                              
                              
   A text with some long width
   A text with some long width
    and also with two lines.  ",
    and also with two lines.  ",
-                                                      _output
+                                                      output
                                                      );
                                                      );
 
 
         view.X = 3;
         view.X = 3;
         view.Y = 3;
         view.Y = 3;
         view.Width = 10;
         view.Width = 10;
         view.Height = 1;
         view.Height = 1;
-        Assert.Equal (new Rectangle (3, 3, 10, 1), view.Frame);
-        Assert.Equal (new Rectangle (0, 0, 10, 1), view.Viewport);
-        Assert.Equal (new Rectangle (0, 0, 30, 2), view._needsDisplayRect);
+        Assert.Equal (new (3, 3, 10, 1), view.Frame);
+        Assert.Equal (new (0, 0, 10, 1), view.Viewport);
+        Assert.Equal (new (0, 0, 30, 2), view._needsDisplayRect);
         view.Draw ();
         view.Draw ();
 
 
         TestHelpers.AssertDriverContentsWithFrameAre (
         TestHelpers.AssertDriverContentsWithFrameAre (
@@ -616,9 +620,10 @@ At 0,0
                              
                              
   A text with some long width
   A text with some long width
    A text witith two lines.  ",
    A text witith two lines.  ",
-                                                      _output
+                                                      output
                                                      );
                                                      );
         Application.End (runState);
         Application.End (runState);
+        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
@@ -647,13 +652,13 @@ At 0,0
                              
                              
   A text with some long width
   A text with some long width
    and also with two lines.  ",
    and also with two lines.  ",
-                                                      _output
+                                                      output
                                                      );
                                                      );
 
 
-        view.Frame = new Rectangle (1, 1, 10, 1);
-        Assert.Equal (new Rectangle (1, 1, 10, 1), view.Frame);
-        Assert.Equal (new Rectangle (0, 0, 10, 1), view.Viewport);
-        Assert.Equal (new Rectangle (0, 0, 10, 1), view._needsDisplayRect);
+        view.Frame = new (1, 1, 10, 1);
+        Assert.Equal (new (1, 1, 10, 1), view.Frame);
+        Assert.Equal (new (0, 0, 10, 1), view.Viewport);
+        Assert.Equal (new (0, 0, 10, 1), view._needsDisplayRect);
         view.Draw ();
         view.Draw ();
 
 
         TestHelpers.AssertDriverContentsWithFrameAre (
         TestHelpers.AssertDriverContentsWithFrameAre (
@@ -662,9 +667,10 @@ At 0,0
  A text wit                  
  A text wit                  
   A text with some long width
   A text with some long width
    and also with two lines.  ",
    and also with two lines.  ",
-                                                      _output
+                                                      output
                                                      );
                                                      );
         Application.End (runState);
         Application.End (runState);
+        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
@@ -693,16 +699,16 @@ At 0,0
                              
                              
   A text with some long width
   A text with some long width
    and also with two lines.  ",
    and also with two lines.  ",
-                                                      _output
+                                                      output
                                                      );
                                                      );
 
 
         view.X = 1;
         view.X = 1;
         view.Y = 1;
         view.Y = 1;
         view.Width = 10;
         view.Width = 10;
         view.Height = 1;
         view.Height = 1;
-        Assert.Equal (new Rectangle (1, 1, 10, 1), view.Frame);
-        Assert.Equal (new Rectangle (0, 0, 10, 1), view.Viewport);
-        Assert.Equal (new Rectangle (0, 0, 30, 2), view._needsDisplayRect);
+        Assert.Equal (new (1, 1, 10, 1), view.Frame);
+        Assert.Equal (new (0, 0, 10, 1), view.Viewport);
+        Assert.Equal (new (0, 0, 30, 2), view._needsDisplayRect);
         view.Draw ();
         view.Draw ();
 
 
         TestHelpers.AssertDriverContentsWithFrameAre (
         TestHelpers.AssertDriverContentsWithFrameAre (
@@ -711,9 +717,10 @@ At 0,0
  A text wit                  
  A text wit                  
   A text with some long width
   A text with some long width
    and also with two lines.  ",
    and also with two lines.  ",
-                                                      _output
+                                                      output
                                                      );
                                                      );
         Application.End (runState);
         Application.End (runState);
+        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
@@ -735,7 +742,7 @@ At 0,0
         view.EndInit ();
         view.EndInit ();
         view.Draw ();
         view.Draw ();
 
 
-        TestHelpers.AssertDriverContentsWithFrameAre (text, _output);
+        TestHelpers.AssertDriverContentsWithFrameAre (text, output);
     }
     }
 
 
     [Fact]
     [Fact]
@@ -751,8 +758,8 @@ At 0,0
         Assert.Equal ($"View(){r.Viewport}", r.ToString ());
         Assert.Equal ($"View(){r.Viewport}", r.ToString ());
         Assert.False (r.CanFocus);
         Assert.False (r.CanFocus);
         Assert.False (r.HasFocus);
         Assert.False (r.HasFocus);
-        Assert.Equal (new Rectangle (0, 0, 0, 0), r.Viewport);
-        Assert.Equal (new Rectangle (0, 0, 0, 0), r.Frame);
+        Assert.Equal (new (0, 0, 0, 0), r.Viewport);
+        Assert.Equal (new (0, 0, 0, 0), r.Frame);
         Assert.Null (r.Focused);
         Assert.Null (r.Focused);
         Assert.Null (r.ColorScheme);
         Assert.Null (r.ColorScheme);
         Assert.Equal (0, r.Width);
         Assert.Equal (0, r.Width);
@@ -770,13 +777,13 @@ At 0,0
         r.Dispose ();
         r.Dispose ();
 
 
         // Empty Rect
         // Empty Rect
-        r = new View { Frame = Rectangle.Empty };
+        r = new() { Frame = Rectangle.Empty };
         Assert.NotNull (r);
         Assert.NotNull (r);
         Assert.Equal ($"View(){r.Viewport}", r.ToString ());
         Assert.Equal ($"View(){r.Viewport}", r.ToString ());
         Assert.False (r.CanFocus);
         Assert.False (r.CanFocus);
         Assert.False (r.HasFocus);
         Assert.False (r.HasFocus);
-        Assert.Equal (new Rectangle (0, 0, 0, 0), r.Viewport);
-        Assert.Equal (new Rectangle (0, 0, 0, 0), r.Frame);
+        Assert.Equal (new (0, 0, 0, 0), r.Viewport);
+        Assert.Equal (new (0, 0, 0, 0), r.Frame);
         Assert.Null (r.Focused);
         Assert.Null (r.Focused);
         Assert.Null (r.ColorScheme);
         Assert.Null (r.ColorScheme);
         Assert.Equal (0, r.Width);
         Assert.Equal (0, r.Width);
@@ -794,13 +801,13 @@ At 0,0
         r.Dispose ();
         r.Dispose ();
 
 
         // Rect with values
         // Rect with values
-        r = new View { Frame = new Rectangle (1, 2, 3, 4) };
+        r = new() { Frame = new (1, 2, 3, 4) };
         Assert.NotNull (r);
         Assert.NotNull (r);
         Assert.Equal ($"View(){r.Frame}", r.ToString ());
         Assert.Equal ($"View(){r.Frame}", r.ToString ());
         Assert.False (r.CanFocus);
         Assert.False (r.CanFocus);
         Assert.False (r.HasFocus);
         Assert.False (r.HasFocus);
-        Assert.Equal (new Rectangle (0, 0, 3, 4), r.Viewport);
-        Assert.Equal (new Rectangle (1, 2, 3, 4), r.Frame);
+        Assert.Equal (new (0, 0, 3, 4), r.Viewport);
+        Assert.Equal (new (1, 2, 3, 4), r.Frame);
         Assert.Null (r.Focused);
         Assert.Null (r.Focused);
         Assert.Null (r.ColorScheme);
         Assert.Null (r.ColorScheme);
         Assert.Equal (3, r.Width);
         Assert.Equal (3, r.Width);
@@ -818,7 +825,7 @@ At 0,0
         r.Dispose ();
         r.Dispose ();
 
 
         // Initializes a view with a vertical direction
         // Initializes a view with a vertical direction
-        r = new View
+        r = new()
         {
         {
             Text = "Vertical View",
             Text = "Vertical View",
             TextDirection = TextDirection.TopBottom_LeftRight,
             TextDirection = TextDirection.TopBottom_LeftRight,
@@ -832,8 +839,8 @@ At 0,0
         r.EndInit ();
         r.EndInit ();
         Assert.False (r.CanFocus);
         Assert.False (r.CanFocus);
         Assert.False (r.HasFocus);
         Assert.False (r.HasFocus);
-        Assert.Equal (new Rectangle (0, 0, 1, 13), r.Viewport);
-        Assert.Equal (new Rectangle (0, 0, 1, 13), r.Frame);
+        Assert.Equal (new (0, 0, 1, 13), r.Viewport);
+        Assert.Equal (new (0, 0, 1, 13), r.Frame);
         Assert.Null (r.Focused);
         Assert.Null (r.Focused);
         Assert.Null (r.ColorScheme);
         Assert.Null (r.ColorScheme);
         Assert.False (r.IsCurrentTop);
         Assert.False (r.IsCurrentTop);
@@ -857,13 +864,13 @@ At 0,0
     {
     {
         var r = new View ();
         var r = new View ();
 
 
-        Assert.False (r.OnKeyDown (new Key { KeyCode = KeyCode.Null }));
+        Assert.False (r.OnKeyDown (new() { KeyCode = KeyCode.Null }));
 
 
         //Assert.False (r.OnKeyDown (new KeyEventArgs () { Key = Key.Unknown }));
         //Assert.False (r.OnKeyDown (new KeyEventArgs () { Key = Key.Unknown }));
-        Assert.False (r.OnKeyUp (new Key { KeyCode = KeyCode.Null }));
-        Assert.False (r.NewMouseEvent (new MouseEvent { Flags = MouseFlags.AllEvents }));
-        Assert.False (r.NewMouseEnterEvent (new MouseEvent { Flags = MouseFlags.AllEvents }));
-        Assert.False (r.NewMouseLeaveEvent (new MouseEvent { Flags = MouseFlags.AllEvents }));
+        Assert.False (r.OnKeyUp (new() { KeyCode = KeyCode.Null }));
+        Assert.False (r.NewMouseEvent (new() { Flags = MouseFlags.AllEvents }));
+        Assert.False (r.NewMouseEnterEvent (new() { Flags = MouseFlags.AllEvents }));
+        Assert.False (r.NewMouseLeaveEvent (new() { Flags = MouseFlags.AllEvents }));
 
 
         var v1 = new View ();
         var v1 = new View ();
         Assert.False (r.OnEnter (v1));
         Assert.False (r.OnEnter (v1));
@@ -882,7 +889,7 @@ At 0,0
     [AutoInitShutdown]
     [AutoInitShutdown]
     public void Test_Nested_Views_With_Height_Equal_To_One ()
     public void Test_Nested_Views_With_Height_Equal_To_One ()
     {
     {
-        var v = new View { Width = 11, Height = 3, ColorScheme = new ColorScheme () };
+        var v = new View { Width = 11, Height = 3, ColorScheme = new () };
 
 
         var top = new View { Width = Dim.Fill (), Height = 1 };
         var top = new View { Width = Dim.Fill (), Height = 1 };
         var bottom = new View { Width = Dim.Fill (), Height = 1, Y = 2 };
         var bottom = new View { Width = Dim.Fill (), Height = 1, Y = 2 };
@@ -903,7 +910,7 @@ At 0,0
 111
 111
 ───────────
 ───────────
 222";
 222";
-        TestHelpers.AssertDriverContentsAre (looksLike, _output);
+        TestHelpers.AssertDriverContentsAre (looksLike, output);
         v.Dispose ();
         v.Dispose ();
         top.Dispose ();
         top.Dispose ();
         bottom.Dispose ();
         bottom.Dispose ();
@@ -917,7 +924,7 @@ At 0,0
         var view = new View { X = 1, Y = 2, Width = 3, Height = 4 };
         var view = new View { X = 1, Y = 2, Width = 3, Height = 4 };
 
 
         // Object Initializer Absolute
         // Object Initializer Absolute
-        var super = new View { Frame = new Rectangle (0, 0, 10, 10) };
+        var super = new View { Frame = new (0, 0, 10, 10) };
         super.Add (view);
         super.Add (view);
         super.BeginInit ();
         super.BeginInit ();
         super.EndInit ();
         super.EndInit ();
@@ -928,9 +935,9 @@ At 0,0
         Assert.Equal (3, view.Width);
         Assert.Equal (3, view.Width);
         Assert.Equal (4, view.Height);
         Assert.Equal (4, view.Height);
         Assert.False (view.Frame.IsEmpty);
         Assert.False (view.Frame.IsEmpty);
-        Assert.Equal (new Rectangle (1, 2, 3, 4), view.Frame);
+        Assert.Equal (new (1, 2, 3, 4), view.Frame);
         Assert.False (view.Viewport.IsEmpty);
         Assert.False (view.Viewport.IsEmpty);
-        Assert.Equal (new Rectangle (0, 0, 3, 4), view.Viewport);
+        Assert.Equal (new (0, 0, 3, 4), view.Viewport);
 
 
         view.LayoutSubviews ();
         view.LayoutSubviews ();
 
 
@@ -947,7 +954,7 @@ At 0,0
 #endif
 #endif
 
 
         // Default Constructor
         // Default Constructor
-        view = new View ();
+        view = new ();
         Assert.Equal (0, view.X);
         Assert.Equal (0, view.X);
         Assert.Equal (0, view.Y);
         Assert.Equal (0, view.Y);
         Assert.Equal (0, view.Width);
         Assert.Equal (0, view.Width);
@@ -957,7 +964,7 @@ At 0,0
         view.Dispose ();
         view.Dispose ();
 
 
         // Object Initializer
         // Object Initializer
-        view = new View { X = 1, Y = 2, Text = "" };
+        view = new() { X = 1, Y = 2, Text = "" };
         Assert.Equal (1, view.X);
         Assert.Equal (1, view.X);
         Assert.Equal (2, view.Y);
         Assert.Equal (2, view.Y);
         Assert.Equal (0, view.Width);
         Assert.Equal (0, view.Width);
@@ -967,12 +974,12 @@ At 0,0
         view.Dispose ();
         view.Dispose ();
 
 
         // Default Constructor and post assignment equivalent to Object Initializer
         // Default Constructor and post assignment equivalent to Object Initializer
-        view = new View ();
+        view = new ();
         view.X = 1;
         view.X = 1;
         view.Y = 2;
         view.Y = 2;
         view.Width = 3;
         view.Width = 3;
         view.Height = 4;
         view.Height = 4;
-        super = new View { Frame = new Rectangle (0, 0, 10, 10) };
+        super = new() { Frame = new (0, 0, 10, 10) };
         super.Add (view);
         super.Add (view);
         super.BeginInit ();
         super.BeginInit ();
         super.EndInit ();
         super.EndInit ();
@@ -982,9 +989,9 @@ At 0,0
         Assert.Equal (3, view.Width);
         Assert.Equal (3, view.Width);
         Assert.Equal (4, view.Height);
         Assert.Equal (4, view.Height);
         Assert.False (view.Frame.IsEmpty);
         Assert.False (view.Frame.IsEmpty);
-        Assert.Equal (new Rectangle (1, 2, 3, 4), view.Frame);
+        Assert.Equal (new (1, 2, 3, 4), view.Frame);
         Assert.False (view.Viewport.IsEmpty);
         Assert.False (view.Viewport.IsEmpty);
-        Assert.Equal (new Rectangle (0, 0, 3, 4), view.Viewport);
+        Assert.Equal (new (0, 0, 3, 4), view.Viewport);
         super.Dispose ();
         super.Dispose ();
     }
     }
 
 
@@ -1017,7 +1024,7 @@ At 0,0
 │                            │
 │                            │
 └────────────────────────────┘
 └────────────────────────────┘
 ",
 ",
-                                                      _output
+                                                      output
                                                      );
                                                      );
 
 
         view.Visible = false;
         view.Visible = false;
@@ -1033,9 +1040,10 @@ At 0,0
 │                            │
 │                            │
 └────────────────────────────┘
 └────────────────────────────┘
 ",
 ",
-                                                      _output
+                                                      output
                                                      );
                                                      );
         Application.End (rs);
         Application.End (rs);
+        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
@@ -1089,7 +1097,7 @@ At 0,0
                                  };
                                  };
 
 
         Application.Run (top);
         Application.Run (top);
-
+        top.Dispose ();
         Assert.Equal (1, iterations);
         Assert.Equal (1, iterations);
 
 
         int RunesCount ()
         int RunesCount ()
@@ -1187,6 +1195,7 @@ At 0,0
         Assert.True (accepted);
         Assert.True (accepted);
 
 
         return;
         return;
+
         void ViewOnAccept (object sender, CancelEventArgs e) { accepted = true; }
         void ViewOnAccept (object sender, CancelEventArgs e) { accepted = true; }
     }
     }
 
 
@@ -1198,11 +1207,12 @@ At 0,0
 
 
         view.Accept += ViewOnAccept;
         view.Accept += ViewOnAccept;
 
 
-        var ret = view.InvokeCommand (Command.Accept);
+        bool? ret = view.InvokeCommand (Command.Accept);
         Assert.True (ret);
         Assert.True (ret);
         Assert.True (acceptInvoked);
         Assert.True (acceptInvoked);
 
 
         return;
         return;
+
         void ViewOnAccept (object sender, CancelEventArgs e)
         void ViewOnAccept (object sender, CancelEventArgs e)
         {
         {
             acceptInvoked = true;
             acceptInvoked = true;
@@ -1222,6 +1232,7 @@ At 0,0
         Assert.True (accepted);
         Assert.True (accepted);
 
 
         return;
         return;
+
         void ViewOnAccept (object sender, CancelEventArgs e) { accepted = true; }
         void ViewOnAccept (object sender, CancelEventArgs e) { accepted = true; }
     }
     }
 
 

+ 0 - 6
UnitTests/Views/ButtonTests.cs

@@ -91,7 +91,6 @@ public class ButtonTests (ITestOutputHelper output)
     }
     }
 
 
     [Fact]
     [Fact]
-    [AutoInitShutdown]
     public void Button_HotKeyChanged_EventFires ()
     public void Button_HotKeyChanged_EventFires ()
     {
     {
         var btn = new Button { Text = "_Yar" };
         var btn = new Button { Text = "_Yar" };
@@ -240,15 +239,11 @@ public class ButtonTests (ITestOutputHelper output)
     }
     }
 
 
     [Fact]
     [Fact]
-    [AutoInitShutdown]
     public void HotKeyChange_Works ()
     public void HotKeyChange_Works ()
     {
     {
         var clicked = false;
         var clicked = false;
         var btn = new Button { Text = "_Test" };
         var btn = new Button { Text = "_Test" };
         btn.Accept += (s, e) => clicked = true;
         btn.Accept += (s, e) => clicked = true;
-        var top = new Toplevel ();
-        top.Add (btn);
-        Application.Begin (top);
 
 
         Assert.Equal (KeyCode.T, btn.HotKey);
         Assert.Equal (KeyCode.T, btn.HotKey);
         Assert.True (btn.NewKeyDownEvent (Key.T));
         Assert.True (btn.NewKeyDownEvent (Key.T));
@@ -262,7 +257,6 @@ public class ButtonTests (ITestOutputHelper output)
         btn.HotKey = KeyCode.E;
         btn.HotKey = KeyCode.E;
         Assert.True (btn.NewKeyDownEvent (Key.E.WithAlt));
         Assert.True (btn.NewKeyDownEvent (Key.E.WithAlt));
         Assert.True (clicked);
         Assert.True (clicked);
-        top.Dispose ();
     }
     }
 
 
     /// <summary>
     /// <summary>

+ 2 - 6
UnitTests/Views/CheckBoxTests.cs

@@ -93,13 +93,10 @@ public class CheckBoxTests (ITestOutputHelper output)
     }
     }
 
 
     [Fact]
     [Fact]
-    [AutoInitShutdown]
+    [SetupFakeDriver]
     public void AllowNullChecked_Get_Set ()
     public void AllowNullChecked_Get_Set ()
     {
     {
         var checkBox = new CheckBox { Text = "Check this out 你" };
         var checkBox = new CheckBox { Text = "Check this out 你" };
-        Toplevel top = new ();
-        top.Add (checkBox);
-        Application.Begin (top);
 
 
         Assert.False (checkBox.Checked);
         Assert.False (checkBox.Checked);
         Assert.True (checkBox.NewKeyDownEvent (Key.Space));
         Assert.True (checkBox.NewKeyDownEvent (Key.Space));
@@ -110,7 +107,7 @@ public class CheckBoxTests (ITestOutputHelper output)
         checkBox.AllowNullChecked = true;
         checkBox.AllowNullChecked = true;
         Assert.True (checkBox.NewKeyDownEvent (Key.Space));
         Assert.True (checkBox.NewKeyDownEvent (Key.Space));
         Assert.Null (checkBox.Checked);
         Assert.Null (checkBox.Checked);
-        Application.Refresh ();
+        checkBox.Draw();
 
 
         TestHelpers.AssertDriverContentsWithFrameAre (
         TestHelpers.AssertDriverContentsWithFrameAre (
                                                       @$"
                                                       @$"
@@ -126,7 +123,6 @@ public class CheckBoxTests (ITestOutputHelper output)
 
 
         checkBox.AllowNullChecked = false;
         checkBox.AllowNullChecked = false;
         Assert.False (checkBox.Checked);
         Assert.False (checkBox.Checked);
-        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]

+ 0 - 3
UnitTests/Views/TileViewTests.cs

@@ -793,7 +793,6 @@ public class TileViewTests
     }
     }
 
 
     [Fact]
     [Fact]
-    [AutoInitShutdown]
     public void TestDisposal_NoEarlyDisposalsOfUsersViews_DuringInsertTile ()
     public void TestDisposal_NoEarlyDisposalsOfUsersViews_DuringInsertTile ()
     {
     {
         TileView tv = GetTileView (20, 10);
         TileView tv = GetTileView (20, 10);
@@ -822,7 +821,6 @@ public class TileViewTests
     }
     }
 
 
     [Fact]
     [Fact]
-    [AutoInitShutdown]
     public void TestDisposal_NoEarlyDisposalsOfUsersViews_DuringRebuildForTileCount ()
     public void TestDisposal_NoEarlyDisposalsOfUsersViews_DuringRebuildForTileCount ()
     {
     {
         TileView tv = GetTileView (20, 10);
         TileView tv = GetTileView (20, 10);
@@ -850,7 +848,6 @@ public class TileViewTests
     }
     }
 
 
     [Theory]
     [Theory]
-    [AutoInitShutdown]
     [InlineData (0)]
     [InlineData (0)]
     [InlineData (1)]
     [InlineData (1)]
     public void TestDisposal_NoEarlyDisposalsOfUsersViews_DuringRemoveTile (int idx)
     public void TestDisposal_NoEarlyDisposalsOfUsersViews_DuringRemoveTile (int idx)

+ 1 - 1
UnitTests/Views/TimeFieldTests.cs

@@ -36,7 +36,7 @@ public class TimeFieldTests
     }
     }
 
 
     [Fact]
     [Fact]
-    [AutoInitShutdown]
+    [AutoInitShutdown (useFakeClipboard:true)]
     public void Copy_Paste ()
     public void Copy_Paste ()
     {
     {
         var tf1 = new TimeField { Time = TimeSpan.Parse ("12:12:19") };
         var tf1 = new TimeField { Time = TimeSpan.Parse ("12:12:19") };

+ 2 - 8
UnitTests/Views/TreeViewTests.cs

@@ -24,7 +24,6 @@ public class TreeViewTests
     }
     }
 
 
     [Fact]
     [Fact]
-    [SetupFakeDriver]
     public void ContentWidth_BiggerAfterExpand ()
     public void ContentWidth_BiggerAfterExpand ()
     {
     {
         TreeView<object> tree = CreateTree (out Factory f, out Car car1, out _);
         TreeView<object> tree = CreateTree (out Factory f, out Car car1, out _);
@@ -51,7 +50,6 @@ public class TreeViewTests
     }
     }
 
 
     [Fact]
     [Fact]
-    [SetupFakeDriver]
     public void ContentWidth_VisibleVsAll ()
     public void ContentWidth_VisibleVsAll ()
     {
     {
         TreeView<object> tree = CreateTree (out Factory f, out Car car1, out Car car2);
         TreeView<object> tree = CreateTree (out Factory f, out Car car1, out Car car2);
@@ -95,7 +93,7 @@ public class TreeViewTests
     }
     }
 
 
     [Fact]
     [Fact]
-    [SetupFakeDriver]
+    [AutoInitShutdown]
     public void CursorVisibility_MultiSelect ()
     public void CursorVisibility_MultiSelect ()
     {
     {
         var tv = new TreeView { Width = 20, Height = 10 };
         var tv = new TreeView { Width = 20, Height = 10 };
@@ -119,6 +117,7 @@ public class TreeViewTests
         Application.Driver.GetCursorVisibility (out CursorVisibility visibility);
         Application.Driver.GetCursorVisibility (out CursorVisibility visibility);
         Assert.Equal (CursorVisibility.Default, tv.CursorVisibility);
         Assert.Equal (CursorVisibility.Default, tv.CursorVisibility);
         Assert.Equal (CursorVisibility.Default, visibility);
         Assert.Equal (CursorVisibility.Default, visibility);
+        top.Dispose ();
     }
     }
 
 
     [Fact]
     [Fact]
@@ -348,7 +347,6 @@ public class TreeViewTests
     }
     }
 
 
     [Fact]
     [Fact]
-    [SetupFakeDriver]
     public void ObjectActivated_Called ()
     public void ObjectActivated_Called ()
     {
     {
         TreeView<object> tree = CreateTree (out Factory f, out Car car1, out _);
         TreeView<object> tree = CreateTree (out Factory f, out Car car1, out _);
@@ -381,7 +379,6 @@ public class TreeViewTests
     }
     }
 
 
     [Fact]
     [Fact]
-    [SetupFakeDriver]
 
 
     public void ObjectActivated_CustomKey ()
     public void ObjectActivated_CustomKey ()
     {
     {
@@ -424,7 +421,6 @@ public class TreeViewTests
     }
     }
 
 
     [Fact]
     [Fact]
-    [SetupFakeDriver]
     public void ObjectActivationButton_DoubleClick ()
     public void ObjectActivationButton_DoubleClick ()
     {
     {
         TreeView<object> tree = CreateTree (out Factory f, out Car car1, out _);
         TreeView<object> tree = CreateTree (out Factory f, out Car car1, out _);
@@ -451,7 +447,6 @@ public class TreeViewTests
     }
     }
 
 
     [Fact]
     [Fact]
-    [SetupFakeDriver]
     public void ObjectActivationButton_RightClick ()
     public void ObjectActivationButton_RightClick ()
     {
     {
         TreeView<object> tree = CreateTree (out Factory f, out Car car1, out _);
         TreeView<object> tree = CreateTree (out Factory f, out Car car1, out _);
@@ -485,7 +480,6 @@ public class TreeViewTests
     }
     }
 
 
     [Fact]
     [Fact]
-    [SetupFakeDriver]
     public void ObjectActivationButton_SetToNull ()
     public void ObjectActivationButton_SetToNull ()
     {
     {
         TreeView<object> tree = CreateTree (out Factory f, out Car car1, out _);
         TreeView<object> tree = CreateTree (out Factory f, out Car car1, out _);

+ 10 - 12
UnitTests/Views/ViewDisposalTest.cs

@@ -3,13 +3,11 @@ using Xunit.Abstractions;
 
 
 namespace Terminal.Gui.ViewsTests;
 namespace Terminal.Gui.ViewsTests;
 
 
-public class ViewDisposalTest
+public class ViewDisposalTest (ITestOutputHelper output)
 {
 {
-    private readonly ITestOutputHelper _output;
 #nullable enable
 #nullable enable
     private readonly Dictionary<Type, object? []?> _special_params = new ();
     private readonly Dictionary<Type, object? []?> _special_params = new ();
 #nullable restore
 #nullable restore
-    public ViewDisposalTest (ITestOutputHelper output) { _output = output; }
 
 
     [Fact]
     [Fact]
     [AutoInitShutdown]
     [AutoInitShutdown]
@@ -34,7 +32,7 @@ public class ViewDisposalTest
     private WeakReference DoTest ()
     private WeakReference DoTest ()
     {
     {
         GetSpecialParams ();
         GetSpecialParams ();
-        var Container = new View ();
+        var container = new View ();
         Toplevel top = new ();
         Toplevel top = new ();
         List<Type> views = GetViews ();
         List<Type> views = GetViews ();
 
 
@@ -53,11 +51,11 @@ public class ViewDisposalTest
             }
             }
 
 
             Assert.NotNull (instance);
             Assert.NotNull (instance);
-            Container.Add (instance);
-            _output.WriteLine ($"Added instance of {view}!");
+            container.Add (instance);
+            output.WriteLine ($"Added instance of {view}!");
         }
         }
 
 
-        top.Add (Container);
+        top.Add (container);
 
 
         // make sure the application is doing to the views whatever its supposed to do to the views
         // make sure the application is doing to the views whatever its supposed to do to the views
         for (var i = 0; i < 100; i++)
         for (var i = 0; i < 100; i++)
@@ -65,9 +63,9 @@ public class ViewDisposalTest
             Application.Refresh ();
             Application.Refresh ();
         }
         }
 
 
-        top.Remove (Container);
-        WeakReference reference = new (Container, true);
-        Container.Dispose ();
+        top.Remove (container);
+        WeakReference reference = new (container, true);
+        container.Dispose ();
 
 
         return reference;
         return reference;
     }
     }
@@ -101,11 +99,11 @@ public class ViewDisposalTest
                                               }
                                               }
                                              )) //end of body of anonymous check function
                                              )) //end of body of anonymous check function
         { //body of the foreach loop
         { //body of the foreach loop
-            _output.WriteLine ($"Found Type {type.Name}");
+            output.WriteLine ($"Found Type {type.Name}");
             Assert.DoesNotContain (type, valid);
             Assert.DoesNotContain (type, valid);
             Assert.True (type.IsAssignableTo (typeof (IDisposable))); // Just to be safe
             Assert.True (type.IsAssignableTo (typeof (IDisposable))); // Just to be safe
             valid.Add (type);
             valid.Add (type);
-            _output.WriteLine ("	-Added!");
+            output.WriteLine ("	-Added!");
         } //end body of foreach loop
         } //end body of foreach loop
 
 
         return valid;
         return valid;