Browse Source

Added statusbar test

Tig 1 year ago
parent
commit
c0f7af4bd9
1 changed files with 51 additions and 0 deletions
  1. 51 0
      UnitTests/Views/StatusBarTests.cs

+ 51 - 0
UnitTests/Views/StatusBarTests.cs

@@ -152,4 +152,55 @@ public class StatusBarTests (ITestOutputHelper output)
         Assert.Equal (1, sb.Frame.Height);
     }
 
+    [Fact]
+    public void RemoveAndThenAddStatusBar_ShouldNotChangeWidth ()
+    {
+        StatusBar statusBar;
+        StatusBar statusBar2;
+
+        var w = new Window ();
+        statusBar2 = new StatusBar () { Id = "statusBar2" };
+        statusBar = new StatusBar () { Id = "statusBar" };
+        w.Width = Dim.Fill (0);
+        w.Height = Dim.Fill (0);
+        w.X = 0;
+        w.Y = 0;
+
+        w.Visible = true;
+        w.Modal = false;
+        w.Title = "";
+        statusBar.Width = Dim.Fill (0);
+        statusBar.Height = 1;
+        statusBar.X = 0;
+        statusBar.Y = 0;
+        statusBar.Visible = true;
+        w.Add (statusBar);
+        Assert.Equal (w.StatusBar, statusBar);
+
+        statusBar2.Width = Dim.Fill (0);
+        statusBar2.Height = 1;
+        statusBar2.X = 0;
+        statusBar2.Y = 4;
+        statusBar2.Visible = true;
+        w.Add (statusBar2);
+        Assert.Equal (w.StatusBar, statusBar2);
+
+        var menuBars = w.Subviews.OfType<StatusBar> ().ToArray ();
+        Assert.Equal (2, menuBars.Length);
+
+        Assert.Equal (Dim.Fill (0), menuBars [0].Width);
+        Assert.Equal (Dim.Fill (0), menuBars [1].Width);
+
+        // Goes wrong here
+        w.Remove (statusBar);
+        w.Remove (statusBar2);
+
+        w.Add (statusBar);
+        w.Add (statusBar2);
+
+        // These assertions fail
+        Assert.Equal (Dim.Fill (0), menuBars [0].Width);
+        Assert.Equal (Dim.Fill (0), menuBars [1].Width);
+    }
+
 }