12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- using System.Windows.Input;
- using PixiEditor.Helpers;
- using PixiEditor.Models.Controllers.Shortcuts;
- using Xunit;
- namespace PixiEditorTests.ModelsTests.ControllersTests
- {
- public class ShortcutControllerTests
- {
- [StaTheory]
- [InlineData(Key.A, ModifierKeys.None, Key.A, ModifierKeys.None)]
- [InlineData(Key.A, ModifierKeys.Alt, Key.A, ModifierKeys.Alt)]
- [InlineData(Key.B, ModifierKeys.Alt | ModifierKeys.Control, Key.B, ModifierKeys.Alt | ModifierKeys.Control)]
- public void TestThatShortcutControllerExecutesShortcut(Key shortcutKey, ModifierKeys shortcutModifiers, Key clickedKey, ModifierKeys clickedModifiers)
- {
- int result = -1;
- RelayCommand shortcutCommand = new RelayCommand(arg => { result = (int)arg; });
- ShortcutController controller = GenerateStandardShortcutController(shortcutKey, shortcutModifiers, shortcutCommand);
- controller.KeyPressed(clickedKey, clickedModifiers);
- Assert.Equal(0, result);
- }
- [StaTheory]
- [InlineData(Key.B, ModifierKeys.None, Key.A, ModifierKeys.None)]
- [InlineData(Key.A, ModifierKeys.Alt, Key.A, ModifierKeys.None)]
- [InlineData(Key.C, ModifierKeys.Alt | ModifierKeys.Control, Key.C, ModifierKeys.Alt | ModifierKeys.Windows)]
- public void TestThatShortcutControllerNotExecutesShortcut(Key shortcutKey, ModifierKeys shortcutModifiers, Key clickedKey, ModifierKeys clickedModifiers)
- {
- int result = -1;
- RelayCommand shortcutCommand = new RelayCommand(arg => { result = (int)arg; });
- ShortcutController controller = GenerateStandardShortcutController(shortcutKey, shortcutModifiers, shortcutCommand);
- controller.KeyPressed(clickedKey, clickedModifiers);
- Assert.Equal(-1, result);
- }
- [StaFact]
- public void TestThatShortcutControllerIsBlocked()
- {
- int result = -1;
- RelayCommand shortcutCommand = new RelayCommand(arg => { result = (int)arg; });
- ShortcutController controller = GenerateStandardShortcutController(Key.A, ModifierKeys.None, shortcutCommand);
- ShortcutController.BlockShortcutExecution = true;
- controller.KeyPressed(Key.A, ModifierKeys.None);
- Assert.Equal(-1, result);
- }
- [StaFact]
- public void TestThatShortcutControllerPicksCorrectShortcut()
- {
- int result = -1;
- RelayCommand shortcutCommand = new RelayCommand(arg => { result = (int)arg; });
- ShortcutController controller = GenerateStandardShortcutController(Key.A, ModifierKeys.None, shortcutCommand);
- controller.ShortcutGroups.Add(new ShortcutGroup(string.Empty, new Shortcut(Key.A, shortcutCommand, 1, ModifierKeys.Control)));
- controller.KeyPressed(Key.A, ModifierKeys.Control);
- Assert.Equal(1, result);
- }
- [StaFact]
- public void TestThatKeyPressedSetsLastShortcut()
- {
- ShortcutController controller = GenerateStandardShortcutController(Key.A, ModifierKeys.None, new RelayCommand(parameter => { }));
- Assert.Null(controller.LastShortcut);
- controller.KeyPressed(Key.A, ModifierKeys.None);
- Assert.Equal(controller.ShortcutGroups[0].Shortcuts[0], controller.LastShortcut);
- }
- private static ShortcutController GenerateStandardShortcutController(Key shortcutKey, ModifierKeys modifiers, RelayCommand shortcutCommand)
- {
- ShortcutController controller = new ShortcutController();
- controller.ShortcutGroups.Add(new ShortcutGroup(string.Empty, new Shortcut(shortcutKey, shortcutCommand, 0, modifiers)));
- ShortcutController.BlockShortcutExecution = false;
- return controller;
- }
- }
- }
|