Files
Terminal.Gui/Tests/UnitTests/View/Navigation/EnabledTests.cs
Tig acb5979e6c Cleans up/Refactors View.Subviews (#3962)
* Subview clean up

* New Add/Remove event pattern

* Using Logging

* cleanup

* Subview -> SubView

* Test code cleanup. Killed many warnings.

* Fix tznind feedback

* Refactored AllViewTest helpers

* Moved keyboard tests to parallel

* Moved mouse tests to parallel

* Moved view tests to parallel

* Test code cleanup. Killed many warnings.

* dupe test

* Some mouse tests can't run in parallel because MouseGrabView

* Made SpinnerView more testable

* Moved more tests

* SubViews to IReadOnlyCollection<View>

* SubViews to IReadOnlyCollection<View> 2

* scrollbar tests

* shortcut tests

* Use InternalSubViews vs. _subviews

* Nuked View.IsAdded.
Added View.SuperViewChanged.

* API doc updats

* Unit Test tweak

* Unit Test tweak
2025-03-08 15:42:17 -07:00

72 lines
3.1 KiB
C#

using UnitTests;
namespace Terminal.Gui.ViewTests;
public class EnabledTests
{
[Fact]
[AutoInitShutdown]
public void _Enabled_Sets_Also_Sets_SubViews ()
{
var wasClicked = false;
var button = new Button { Text = "Click Me" };
button.IsDefault = true;
button.Accepting += (s, e) => wasClicked = !wasClicked;
var win = new Window { Width = Dim.Fill (), Height = Dim.Fill () };
win.Add (button);
var top = new Toplevel ();
top.Add (win);
var iterations = 0;
Application.Iteration += (s, a) =>
{
iterations++;
win.NewKeyDownEvent (Key.Enter);
Assert.True (wasClicked);
button.NewMouseEvent (new () { Flags = MouseFlags.Button1Clicked });
Assert.False (wasClicked);
Assert.True (button.Enabled);
Assert.True (button.CanFocus);
Assert.True (button.HasFocus);
Assert.True (win.Enabled);
Assert.True (win.CanFocus);
Assert.True (win.HasFocus);
Assert.True (button.HasFocus);
win.Enabled = false;
Assert.False (button.HasFocus);
button.NewKeyDownEvent (Key.Enter);
Assert.False (wasClicked);
button.NewMouseEvent (new () { Flags = MouseFlags.Button1Clicked });
Assert.False (wasClicked);
Assert.False (button.Enabled);
Assert.True (button.CanFocus);
Assert.False (button.HasFocus);
Assert.False (win.Enabled);
Assert.True (win.CanFocus);
Assert.False (win.HasFocus);
button.SetFocus ();
Assert.False (button.HasFocus);
Assert.False (win.HasFocus);
win.SetFocus ();
Assert.False (button.HasFocus);
Assert.False (win.HasFocus);
win.Enabled = true;
win.FocusDeepest (NavigationDirection.Forward, null);
Assert.True (button.HasFocus);
Assert.True (win.HasFocus);
Application.RequestStop ();
};
Application.Run (top);
Assert.Equal (1, iterations);
top.Dispose ();
}
}