From f58f8950bd784a9d096eef03cf811f1f8b6cebd5 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 20 Jun 2019 11:56:55 +0200 Subject: [PATCH] Added failing test for #2574. --- .../Primitives/SelectingItemsControlTests.cs | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs index 683b3b41e8..3df66bb6cb 100644 --- a/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs @@ -797,8 +797,6 @@ namespace Avalonia.Controls.UnitTests.Primitives target.Presenter.ApplyTemplate(); _helper.Down((Interactive)target.Presenter.Panel.Children[3]); - var panel = target.Presenter.Panel; - Assert.Equal(3, target.SelectedIndex); } @@ -815,11 +813,35 @@ namespace Avalonia.Controls.UnitTests.Primitives target.Presenter.ApplyTemplate(); _helper.Down((Interactive)target.Presenter.Panel.Children[3]); - var panel = target.Presenter.Panel; - Assert.Equal(new[] { ":selected" }, target.Presenter.Panel.Children[3].Classes); } + [Fact] + public void Adding_Item_Before_SelectedItem_Should_Update_SelectedIndex() + { + var items = new ObservableCollection + { + "Foo", + "Bar", + "Baz" + }; + + var target = new ListBox + { + Template = Template(), + Items = items, + SelectedIndex = 1, + }; + + target.ApplyTemplate(); + target.Presenter.ApplyTemplate(); + + items.Insert(0, "Qux"); + + Assert.Equal(2, target.SelectedIndex); + Assert.Equal("Bar", target.SelectedItem); + } + private FuncControlTemplate Template() { return new FuncControlTemplate(control =>