Skip to content

Commit

Permalink
add failing unit tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
Dan Walmsley committed Jul 30, 2021
1 parent fdcb744 commit 3d63c08
Showing 1 changed file with 101 additions and 0 deletions.
101 changes: 101 additions & 0 deletions tests/Avalonia.Input.UnitTests/InputElement_Focus.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,107 @@ public void Focus_Should_Set_FocusManager_Current()
Assert.Same(target, FocusManager.Instance.Current);
}
}

[Fact]
public void Non_Visible_Controls_Should_Not_Get_KeyboardFocus()
{
Button target;

using (UnitTestApplication.Start(TestServices.RealFocus))
{
var root = new TestRoot
{
Child = target = new Button() { IsVisible = false}
};

Assert.Null(FocusManager.Instance.Current);

target.Focus();

Assert.True(target.IsFocused);
Assert.False(target.IsKeyboardFocusWithin);

Assert.Null(FocusManager.Instance.Current);
}
}

[Fact]
public void Non_EffectivelyVisible_Controls_Should_Not_Get_KeyboardFocus()
{
var target = new Button();
Panel container;

using (UnitTestApplication.Start(TestServices.RealFocus))
{
var root = new TestRoot
{
Child = container = new Panel
{
IsVisible = false,
Children = { target }
}
};

Assert.Null(FocusManager.Instance.Current);

target.Focus();

Assert.True(target.IsFocused);
Assert.False(target.IsKeyboardFocusWithin);

Assert.Null(FocusManager.Instance.Current);
}
}

[Fact]
public void Visible_Controls_Should_Get_KeyboardFocus()
{
Button target;

using (UnitTestApplication.Start(TestServices.RealFocus))
{
var root = new TestRoot
{
Child = target = new Button()
};

Assert.Null(FocusManager.Instance.Current);

target.Focus();

Assert.True(target.IsFocused);
Assert.True(target.IsKeyboardFocusWithin);

Assert.Same(target, FocusManager.Instance.Current);
}
}

[Fact]
public void EffectivelyVisible_Controls_Should_Get_KeyboardFocus()
{
var target = new Button();
Panel container;

using (UnitTestApplication.Start(TestServices.RealFocus))
{
var root = new TestRoot
{
Child = container = new Panel
{
Children = { target }
}
};

Assert.Null(FocusManager.Instance.Current);

target.Focus();

Assert.True(target.IsFocused);
Assert.True(target.IsKeyboardFocusWithin);

Assert.Same(target, FocusManager.Instance.Current);
}
}

[Fact]
public void Focus_Should_Be_Cleared_When_Control_Is_Removed_From_VisualTree()
Expand Down

0 comments on commit 3d63c08

Please sign in to comment.