1 changed files with 90 additions and 0 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