Skip to content

Commit 29100b6

Browse files
authored
Another run at flaky tests (#3389)
Also rev'ing NuGets
1 parent ce03877 commit 29100b6

File tree

3 files changed

+44
-21
lines changed

3 files changed

+44
-21
lines changed

Directory.packages.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" PrivateAssets="all" />
1010
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="4.8.0" />
1111
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.8.0" />
12-
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.7.0" />
13-
<PackageVersion Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="4.7.0" />
12+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.8.0" />
13+
<PackageVersion Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="4.8.0" />
1414
<PackageVersion Include="Microsoft.Composition" Version="1.0.31" />
1515
<PackageVersion Include="Microsoft.CSharp" Version="4.7.0" />
1616
<PackageVersion Include="Microsoft.NETCore.Platforms" Version="7.0.4" />

MaterialDesignThemes.UITests/WPF/AutoSuggestBoxes/AutoSuggestTextBoxTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public class AutoSuggestBoxTests : TestBase
99
public AutoSuggestBoxTests(ITestOutputHelper output)
1010
: base(output)
1111
{
12+
AttachedDebuggerToRemoteProcess = true;
1213
}
1314

1415
[Fact]
@@ -76,6 +77,7 @@ await Wait.For(async () =>
7677

7778
//Choose Item from the list
7879
var bananas = await suggestionListBox.GetElement<ListBoxItem>("/ListBoxItem[0]");
80+
await bananas.MoveCursorTo();
7981
await recorder.SaveScreenshot("BeforeClick");
8082
await bananas.LeftClick();
8183
var suggestBoxText = await suggestBox.GetText();

MaterialDesignThemes.Wpf/AutoSuggestBox.cs

Lines changed: 40 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,15 @@ public event RoutedPropertyChangedEventHandler<object> SuggestionChosen
132132

133133
public override void OnApplyTemplate()
134134
{
135+
if (_autoSuggestBoxList is not null)
136+
{
137+
_autoSuggestBoxList.PreviewMouseDown -= AutoSuggestionListBox_PreviewMouseDown;
138+
}
139+
135140
if (GetTemplateChild(AutoSuggestBoxListPart) is ListBox listBox)
136141
{
137142
_autoSuggestBoxList = listBox;
138143

139-
listBox.PreviewMouseDown -= AutoSuggestionListBox_PreviewMouseDown;
140-
141144
base.OnApplyTemplate();
142145

143146
listBox.PreviewMouseDown += AutoSuggestionListBox_PreviewMouseDown;
@@ -195,39 +198,57 @@ private void AutoSuggestionListBox_PreviewMouseDown(object sender, MouseButtonEv
195198
{
196199
if (_autoSuggestBoxList is not null && e.OriginalSource is FrameworkElement element)
197200
{
198-
if (!_autoSuggestBoxList.Items.Contains(element.DataContext))
201+
var selectedItem = element.DataContext;
202+
if (!_autoSuggestBoxList.Items.Contains(selectedItem))
199203
return;
200-
_autoSuggestBoxList.SelectedItem = element.DataContext;
201-
CommitValueSelection();
204+
if (_autoSuggestBoxList.SelectedItem != selectedItem)
205+
{
206+
_autoSuggestBoxList.SelectionChanged += OnSelectionChanged;
207+
_autoSuggestBoxList.SelectedItem = selectedItem;
208+
}
209+
else
210+
{
211+
_autoSuggestBoxList.SelectedItem = selectedItem;
212+
CommitValueSelection();
213+
}
214+
215+
void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
216+
{
217+
_autoSuggestBoxList.SelectionChanged -= OnSelectionChanged;
218+
CommitValueSelection();
219+
}
220+
e.Handled = true;
202221
}
203222
}
204223

224+
225+
205226
#endregion
206227

207-
#region Methods
228+
#region Methods
208229

209230
private void CloseAutoSuggestionPopUp()
210231
{
211232
IsSuggestionOpen = false;
212233
}
213234

214235
private void CommitValueSelection()
236+
=> CommitValueSelection(_autoSuggestBoxList?.SelectedValue);
237+
238+
private void CommitValueSelection(object? selectedValue)
215239
{
216-
if (_autoSuggestBoxList?.SelectedValue is { } selectedValue)
240+
string oldValue = Text;
241+
Text = selectedValue?.ToString();
242+
if (Text != null)
217243
{
218-
var oldValue = Text;
219-
Text = selectedValue.ToString();
220-
if (Text != null)
221-
{
222-
CaretIndex = Text.Length;
223-
}
224-
CloseAutoSuggestionPopUp();
225-
var args = new RoutedPropertyChangedEventArgs<object?>(oldValue, Text)
226-
{
227-
RoutedEvent = SuggestionChosenEvent
228-
};
229-
RaiseEvent(args);
244+
CaretIndex = Text.Length;
230245
}
246+
CloseAutoSuggestionPopUp();
247+
var args = new RoutedPropertyChangedEventArgs<object?>(oldValue, Text)
248+
{
249+
RoutedEvent = SuggestionChosenEvent
250+
};
251+
RaiseEvent(args);
231252
}
232253

233254
private void DecrementSelection()

0 commit comments

Comments
 (0)