committed by
GitHub
16 changed files with 186 additions and 92 deletions
@ -0,0 +1,90 @@ |
|||
using Avalonia.Input.Raw; |
|||
using Avalonia.Interactivity; |
|||
using Moq; |
|||
using Xunit; |
|||
|
|||
namespace Avalonia.Input.UnitTests |
|||
{ |
|||
public class KeyboardDeviceTests |
|||
{ |
|||
[Fact] |
|||
public void Keypresses_Should_Be_Sent_To_Root_If_No_Focused_Element() |
|||
{ |
|||
var target = new KeyboardDevice(); |
|||
var root = new Mock<IInputRoot>(); |
|||
|
|||
target.ProcessRawEvent( |
|||
new RawKeyEventArgs( |
|||
target, |
|||
0, |
|||
root.Object, |
|||
RawKeyEventType.KeyDown, |
|||
Key.A, |
|||
RawInputModifiers.None)); |
|||
|
|||
root.Verify(x => x.RaiseEvent(It.IsAny<KeyEventArgs>())); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Keypresses_Should_Be_Sent_To_Focused_Element() |
|||
{ |
|||
var target = new KeyboardDevice(); |
|||
var focused = new Mock<IInputElement>(); |
|||
var root = Mock.Of<IInputRoot>(); |
|||
|
|||
target.SetFocusedElement( |
|||
focused.Object, |
|||
NavigationMethod.Unspecified, |
|||
InputModifiers.None); |
|||
|
|||
target.ProcessRawEvent( |
|||
new RawKeyEventArgs( |
|||
target, |
|||
0, |
|||
root, |
|||
RawKeyEventType.KeyDown, |
|||
Key.A, |
|||
RawInputModifiers.None)); |
|||
|
|||
focused.Verify(x => x.RaiseEvent(It.IsAny<KeyEventArgs>())); |
|||
} |
|||
|
|||
[Fact] |
|||
public void TextInput_Should_Be_Sent_To_Root_If_No_Focused_Element() |
|||
{ |
|||
var target = new KeyboardDevice(); |
|||
var root = new Mock<IInputRoot>(); |
|||
|
|||
target.ProcessRawEvent( |
|||
new RawTextInputEventArgs( |
|||
target, |
|||
0, |
|||
root.Object, |
|||
"Foo")); |
|||
|
|||
root.Verify(x => x.RaiseEvent(It.IsAny<TextInputEventArgs>())); |
|||
} |
|||
|
|||
[Fact] |
|||
public void TextInput_Should_Be_Sent_To_Focused_Element() |
|||
{ |
|||
var target = new KeyboardDevice(); |
|||
var focused = new Mock<IInputElement>(); |
|||
var root = Mock.Of<IInputRoot>(); |
|||
|
|||
target.SetFocusedElement( |
|||
focused.Object, |
|||
NavigationMethod.Unspecified, |
|||
InputModifiers.None); |
|||
|
|||
target.ProcessRawEvent( |
|||
new RawTextInputEventArgs( |
|||
target, |
|||
0, |
|||
root, |
|||
"Foo")); |
|||
|
|||
focused.Verify(x => x.RaiseEvent(It.IsAny<TextInputEventArgs>())); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue