Browse Source

Added failing tests for #4048.

pull/4659/head
Steven Kirk 6 years ago
parent
commit
faaa8f28e9
  1. 21
      tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs
  2. 11
      tests/Avalonia.Controls.UnitTests/Selection/InternalSelectionModelTests.cs

21
tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs

@ -1619,6 +1619,27 @@ namespace Avalonia.Controls.UnitTests.Primitives
Assert.Equal(new[] { "bar" }, target.SelectedItems);
}
[Fact]
public void Preserves_SelectedItem_When_Items_Changed()
{
// Issue #4048
var target = new SelectingItemsControl
{
Items = new[] { "foo", "bar", "baz"},
SelectedItem = "bar",
};
Prepare(target);
Assert.Equal(1, target.SelectedIndex);
Assert.Equal("bar", target.SelectedItem);
target.Items = new[] { "qux", "foo", "bar" };
Assert.Equal(2, target.SelectedIndex);
Assert.Equal("bar", target.SelectedItem);
}
private static void Prepare(SelectingItemsControl target)
{
var root = new TestRoot

11
tests/Avalonia.Controls.UnitTests/Selection/InternalSelectionModelTests.cs

@ -205,6 +205,17 @@ namespace Avalonia.Controls.UnitTests.Selection
Assert.Equal(2, target.SelectedIndex);
}
[Fact]
public void Preserves_Selection_On_Source_Changed()
{
var target = CreateTarget();
target.SelectedIndex = 1;
target.Source = new[] { "baz", "foo", "bar" };
Assert.Equal(2, target.SelectedIndex);
}
private static InternalSelectionModel CreateTarget(
bool singleSelect = false,
IList source = null,

Loading…
Cancel
Save