public void keeps_order_of_streams()
        {
            // arrange
            var keySequence = KeyStreams.CtrlU()
                              .Concat(KeyStreams.LetterL())
                              .Concat(KeyStreams.Number1())
                              .Concat(KeyStreams.LetterL())
                              .ToObservable();
            var sut = CreateMessageProvider(keySequence);

            shortcutProvider
            .GetShortcutsStartingWith(Arg.Any <KeyPress>())
            .Returns(new List <KeyShortcut> {
                new KeyShortcut("SomeShortcut",
                                new KeyPressDefinition(Keys.U, controlPressed: true),
                                new KeyPressDefinition(Keys.L))
            });

            // act
            var messages = sut.GetMessageStream().ToList().Single();

            // assert
            Assert.Equal(3, messages.Count);
            Assert.Equal("Ctrl + U, l [SomeShortcut]", string.Join("", messages[0].Text));
            Assert.Equal("SomeShortcut", messages[0].ShortcutName);
            Assert.Equal("1", string.Join("", messages[1].Text));
            Assert.Equal("1l", string.Join("", messages[2].Text));
        }
示例#2
0
        public void key_without_shift_is_lowercase()
        {
            // arrange
            var player   = KeyStreams.LetterL();
            var provider = new KeyProvider(player, passwordModeService, desktopLockEventService);

            // act
            var processedKeys = ToEnumerable(provider, player);

            // assert
            Assert.Equal(new[] { "l" }, processedKeys.Single().Input);
        }
示例#3
0
        public void key_with_modifiers_raises_a_new_message()
        {
            // arrange
            messageProvider.Subscribe(this);
            KeyStreams.LetterL().Play(interceptKeysSource);

            // act
            KeyStreams.CtrlShiftL().Play(interceptKeysSource);

            // assert
            Assert.Equal(2, messages.Count);
        }
示例#4
0
        public async Task key_without_shift_is_lowercase()
        {
            // arrange
            var player   = KeyStreams.LetterL();
            var provider = new KeyProvider(player, passwordModeService, desktopLockEventService, settingsProvider);

            // act
            var processedKeys = await provider.GetKeyStream().ToList();

            // assert
            Assert.Equal(new[] { "l" }, processedKeys.Single().Input);
        }
        public void key_with_modifiers_raises_a_new_message()
        {
            // arrange
            var keySequence = KeyStreams.LetterL()
                              .Concat(KeyStreams.CtrlShiftL())
                              .ToObservable();
            var sut = CreateMessageProvider(keySequence);

            // act
            var messages = sut.GetMessageStream().ToList().Single();

            // assert
            Assert.Equal(2, messages.Count);
        }
示例#6
0
        public async Task no_output_with_no_match_filter()
        {
            // arrange
            settingsProvider.GetSettings <PopupSettings>().Returns(new PopupSettings()
            {
                ProcessFilterExpression = "notepad"
            });
            var player   = KeyStreams.LetterL();
            var provider = new KeyProvider(player, passwordModeService, desktopLockEventService, settingsProvider);

            // act
            var processedKeys = await provider.GetKeyStream().ToList();

            // assert
            Assert.Equal(0, processedKeys.Count);
        }
示例#7
0
        public void does_show_shortcut_name_on_full_match()
        {
            // arrange
            messageProvider.Subscribe(this);
            shortcutProvider.GetShortcutsMatching(Arg.Any <IEnumerable <KeyPress> >())
            .Returns(new[] { new KeyShortcut("SomeShortcut",
                                             new KeyPressDefinition(Keys.U, controlPressed: true),
                                             new KeyPressDefinition(Keys.L)) });

            // act
            KeyStreams.CtrlU().Play(interceptKeysSource);
            KeyStreams.LetterL().Play(interceptKeysSource);

            // assert
            Assert.Equal(1, messages.Count);
            Assert.Equal("SomeShortcut", messages[0].ShortcutName);
        }
示例#8
0
        public async Task output_with_matching_filter()
        {
            // arrange
            string currentProcessName = AssociatedProcessUtilities.GetAssociatedProcess().ProcessName;

            settingsProvider.GetSettings <PopupSettings>().Returns(new PopupSettings()
            {
                ProcessFilterExpression = currentProcessName
            });
            var player   = KeyStreams.LetterL();
            var provider = new KeyProvider(player, passwordModeService, desktopLockEventService, settingsProvider);

            // act
            var processedKeys = await provider.GetKeyStream().ToList();

            // assert
            Assert.Equal(new[] { "l" }, processedKeys.Single().Input);
        }
示例#9
0
        public void does_show_shortcut_name_on_full_match()
        {
            // arrange
            messageProvider.GetMessageStream(keysStream).Subscribe(value => messages.Add(value));
            shortcutProvider.GetShortcutsStartingWith(Arg.Any <KeyPress>())
            .Returns(new List <KeyShortcut> {
                new KeyShortcut("SomeShortcut",
                                new KeyPressDefinition(Keys.U, controlPressed: true),
                                new KeyPressDefinition(Keys.L))
            });

            // act
            KeyStreams.CtrlU().Play(interceptKeysSource);
            KeyStreams.LetterL().Play(interceptKeysSource);

            // assert
            Assert.Equal(1, messages.Count);
            Assert.Equal("SomeShortcut", messages[0].ShortcutName);
        }
        public void does_show_shortcut_name_on_full_match()
        {
            // arrange
            var keySequence = KeyStreams.CtrlU()
                              .Concat(KeyStreams.LetterL())
                              .ToObservable();
            var sut = CreateMessageProvider(keySequence);

            shortcutProvider.GetShortcutsStartingWith(Arg.Any <KeyPress>())
            .Returns(new List <KeyShortcut> {
                new KeyShortcut("SomeShortcut",
                                new KeyPressDefinition(Keys.U, controlPressed: true),
                                new KeyPressDefinition(Keys.L))
            });

            // act
            var messages = sut.GetMessageStream().ToList().Single();

            // assert
            Assert.Equal(1, messages.Count);
            Assert.Equal("SomeShortcut", messages[0].ShortcutName);
        }
示例#11
0
        public void keeps_order_of_streams()
        {
            // arrange
            messageProvider.GetMessageStream(keysStream).Subscribe(value => messages.Add(value));
            shortcutProvider
            .GetShortcutsStartingWith(Arg.Any <KeyPress>())
            .Returns(new List <KeyShortcut> {
                new KeyShortcut("SomeShortcut",
                                new KeyPressDefinition(Keys.U, controlPressed: true),
                                new KeyPressDefinition(Keys.L))
            });

            // act
            KeyStreams.CtrlU().Play(interceptKeysSource);
            KeyStreams.LetterL().Play(interceptKeysSource);
            KeyStreams.Number1().Play(interceptKeysSource);
            KeyStreams.LetterL().Play(interceptKeysSource);

            // assert
            Assert.Equal(2, messages.Count);
            Assert.Equal("Ctrl + U, l [SomeShortcut]", string.Join("", messages[0].Text));
            Assert.Equal("SomeShortcut", messages[0].ShortcutName);
            Assert.Equal("1l", string.Join("", messages[1].Text));
        }