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); }
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); }