Exemple #1
0
            public void HandlesKeyPressesToSelectAndCancelSelections()
            {
                var obs = Observable.Return(new BitmapImage());

                var suggestions = new List <AutoCompleteSuggestion>
                {
                    new AutoCompleteSuggestion("aaaa", obs, ":", ":"),
                    new AutoCompleteSuggestion("bbbb", obs, ":", ":"),
                    new AutoCompleteSuggestion("ccc", obs, ":", ":")
                };
                var result  = new AutoCompleteResult(2, new ReadOnlyCollection <AutoCompleteSuggestion>(suggestions));
                var advisor = Substitute.For <IAutoCompleteAdvisor>();

                advisor.GetAutoCompletionSuggestions(Arg.Any <string>(), Arg.Any <int>())
                .Returns(Observable.Return(result));

                var selectionAdapter = new TestSelectorSelectionAdapter();
                var textBox          = new TextBox();
                var autoCompleteBox  = new AutoCompleteBox(Substitute.For <IDpiManager>())
                {
                    SelectionAdapter = selectionAdapter,
                    Advisor          = advisor,
                    TextBox          = new TextBoxAutoCompleteTextInput {
                        TextBox = textBox
                    }
                };

                textBox.Text       = "A :a";
                textBox.CaretIndex = 4;
                Assert.AreEqual(4, textBox.CaretIndex);
                Assert.AreEqual(4, autoCompleteBox.TextBox.CaretIndex);
                Assert.True(autoCompleteBox.IsDropDownOpen);
                selectionAdapter.SelectorControl.SelectedIndex = 1; // Select the second item

                selectionAdapter.DoKeyDown(Key.Enter);

                Assert.AreEqual("A :bbbb: ", textBox.Text);
                Assert.False(autoCompleteBox.IsDropDownOpen);

                textBox.Text       = "A :bbbb: :";
                textBox.CaretIndex = 10;

                // Ensure we can re-open the dropdown
                Assert.True(autoCompleteBox.IsDropDownOpen);

                selectionAdapter.DoKeyDown(Key.Escape);
                Assert.False(autoCompleteBox.IsDropDownOpen);
                Assert.AreEqual("A :bbbb: :", textBox.Text);
            }
Exemple #2
0
            public void IsFalseAfterASuggestionIsSelected()
            {
                var obs = Observable.Return(new BitmapImage());

                var suggestions = new List <AutoCompleteSuggestion>
                {
                    new AutoCompleteSuggestion("aaaa", obs, ":", ":"),
                    new AutoCompleteSuggestion("bbbb", obs, ":", ":"),
                    new AutoCompleteSuggestion("ccc", obs, ":", ":")
                };
                var result  = new AutoCompleteResult(2, new ReadOnlyCollection <AutoCompleteSuggestion>(suggestions));
                var advisor = Substitute.For <IAutoCompleteAdvisor>();

                advisor.GetAutoCompletionSuggestions(Arg.Any <string>(), Arg.Any <int>())
                .Returns(Observable.Return(result));

                var selectionAdapter = new TestSelectorSelectionAdapter();
                var textBox          = new TextBox();
                var autoCompleteBox  = new AutoCompleteBox(Substitute.For <IDpiManager>())
                {
                    SelectionAdapter = selectionAdapter,
                    Advisor          = advisor,
                    TextBox          = new TextBoxAutoCompleteTextInput {
                        TextBox = textBox
                    }
                };

                textBox.Text       = "A :a";
                textBox.CaretIndex = 4;
                Assert.AreEqual(4, textBox.CaretIndex);
                Assert.AreEqual(4, autoCompleteBox.TextBox.CaretIndex);
                Assert.True(autoCompleteBox.IsDropDownOpen);

                selectionAdapter.DoCommit();

                Assert.That(textBox.Text, Is.EqualTo("A :aaaa: "));
                Assert.False(autoCompleteBox.IsDropDownOpen);
            }