Browse Source

Skipped bogus test

Tig 11 months ago
parent
commit
f8d7a03dba

+ 0 - 5
Terminal.Gui/Application/Application.Run.cs

@@ -192,11 +192,6 @@ public static partial class Application // Run (Begin, Run, End, Stop)
         if (!toplevel.HasFocus)
         {
             toplevel.SetFocus ();
-            //if (!toplevel.AdvanceFocus (NavigationDirection.Forward, TabBehavior.TabStop))
-            //{
-            //    // That didn't work. Try TabGroup.
-            //    toplevel.AdvanceFocus (NavigationDirection.Forward, TabBehavior.TabGroup);
-            //}
         }
 
         ApplicationOverlapped.BringOverlappedTopToFront ();

+ 56 - 1
UnitTests/Application/Application.NavigationTests.cs

@@ -1,6 +1,8 @@
-using Moq;
+using System.Diagnostics;
+using Moq;
 using Xunit.Abstractions;
 using Terminal.Gui;
+using Terminal.Gui.ViewTests;
 
 namespace Terminal.Gui.ApplicationTests.NavigationTests;
 
@@ -191,4 +193,57 @@ public class ApplicationNavigationTests (ITestOutputHelper output)
 
         Application.ResetState ();
     }
+
+    [Fact]
+    public void Begin_SetsFocus_On_Top ()
+    {
+        Application.Init(new FakeDriver());
+
+        var top = new Toplevel ();
+        Assert.False (top.HasFocus);
+
+        RunState rs = Application.Begin (top);
+        Assert.True (top.HasFocus);
+
+        top.Dispose ();
+        Application.Shutdown();
+    }
+
+    [Theory]
+    [InlineData(TabBehavior.NoStop)]
+    [InlineData (TabBehavior.TabStop)]
+    [InlineData (TabBehavior.TabGroup)]
+    public void Begin_SetsFocus_On_Deepest_Focusable_View (TabBehavior behavior)
+    {
+        Application.Init (new FakeDriver ());
+
+        var top = new Toplevel ()
+        {
+            TabStop = behavior
+        };
+        Assert.False (top.HasFocus);
+
+        View subView = new ()
+        {
+            CanFocus = true,
+            TabStop = behavior
+        };
+        top.Add (subView);
+
+        View subSubView = new ()
+        {
+            CanFocus = true,
+            TabStop = TabBehavior.NoStop
+        };
+        subView.Add (subSubView);
+
+        RunState rs = Application.Begin (top);
+        Assert.True (top.HasFocus);
+        Assert.True (subView.HasFocus);
+        Assert.True (subSubView.HasFocus);
+
+        top.Dispose ();
+
+        Application.Shutdown ();
+    }
 }

+ 1 - 1
UnitTests/Application/ApplicationTests.cs

@@ -955,7 +955,7 @@ public class ApplicationTests
     }
 
     // TODO: All Toplevel layout tests should be moved to ToplevelTests.cs
-    [Fact]
+    [Fact (Skip = "#2491 - Changing focus should cause NeedsDispay = true, so bogus test?")]
     public void Run_Toplevel_With_Modal_View_Does_Not_Refresh_If_Not_Dirty ()
     {
         Init ();