mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-27 08:17:53 +01:00
Add unit test for Leave event changing focus
This commit is contained in:
@@ -4062,5 +4062,38 @@ This is a tes
|
||||
Assert.False (view.IsKeyPress);
|
||||
Assert.True (view.IsKeyUp);
|
||||
}
|
||||
|
||||
[Fact, AutoInitShutdown]
|
||||
public void SetHasFocus_Do_Not_Throws_If_OnLeave_Remove_Focused_Changing_To_Null ()
|
||||
{
|
||||
var view1Leave = false;
|
||||
var subView1Leave = false;
|
||||
var subView1subView1Leave = false;
|
||||
var top = Application.Top;
|
||||
var view1 = new View { CanFocus = true };
|
||||
var subView1 = new View { CanFocus = true };
|
||||
var subView1subView1 = new View { CanFocus = true };
|
||||
view1.Leave += (e) => {
|
||||
view1Leave = true;
|
||||
};
|
||||
subView1.Leave += (e) => {
|
||||
subView1.Remove (subView1subView1);
|
||||
subView1Leave = true;
|
||||
};
|
||||
view1.Add (subView1);
|
||||
subView1subView1.Leave += (e) => {
|
||||
// This is never invoked
|
||||
subView1subView1Leave = true;
|
||||
};
|
||||
subView1.Add (subView1subView1);
|
||||
var view2 = new View { CanFocus = true };
|
||||
top.Add (view1, view2);
|
||||
Application.Begin (top);
|
||||
|
||||
view2.SetFocus ();
|
||||
Assert.True (view1Leave);
|
||||
Assert.True (subView1Leave);
|
||||
Assert.False (subView1subView1Leave);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user