|
@@ -724,6 +724,86 @@ namespace Avalonia.Controls.UnitTests
|
|
|
Assert.True(called);
|
|
|
}
|
|
|
|
|
|
+ [Fact]
|
|
|
+ public void Removing_Selected_Root_Item_Should_Clear_Selection()
|
|
|
+ {
|
|
|
+ using var app = Start();
|
|
|
+ var data = CreateTestTreeData();
|
|
|
+ var target = CreateTarget(data: data);
|
|
|
+ var item = data[0];
|
|
|
+
|
|
|
+ target.SelectedItem = item;
|
|
|
+
|
|
|
+ data.RemoveAt(0);
|
|
|
+
|
|
|
+ Assert.Null(target.SelectedItem);
|
|
|
+ Assert.Empty(target.SelectedItems);
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Resetting_Root_Items_Should_Clear_Selection()
|
|
|
+ {
|
|
|
+ using var app = Start();
|
|
|
+ var data = CreateTestTreeData();
|
|
|
+ var target = CreateTarget(data: data);
|
|
|
+ var item = data[0];
|
|
|
+
|
|
|
+ target.SelectedItem = item;
|
|
|
+
|
|
|
+ data.Clear();
|
|
|
+
|
|
|
+ Assert.Null(target.SelectedItem);
|
|
|
+ Assert.Empty(target.SelectedItems);
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Removing_Selected_Child_Item_Should_Clear_Selection()
|
|
|
+ {
|
|
|
+ using var app = Start();
|
|
|
+ var data = CreateTestTreeData();
|
|
|
+ var target = CreateTarget(data: data);
|
|
|
+ var item = data[0].Children[1];
|
|
|
+
|
|
|
+ target.SelectedItem = item;
|
|
|
+
|
|
|
+ data[0].Children.RemoveAt(1);
|
|
|
+
|
|
|
+ Assert.Null(target.SelectedItem);
|
|
|
+ Assert.Empty(target.SelectedItems);
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Replacing_Selected_Child_Item_Should_Clear_Selection()
|
|
|
+ {
|
|
|
+ using var app = Start();
|
|
|
+ var data = CreateTestTreeData();
|
|
|
+ var target = CreateTarget(data: data);
|
|
|
+ var item = data[0].Children[1];
|
|
|
+
|
|
|
+ target.SelectedItem = item;
|
|
|
+
|
|
|
+ data[0].Children[1] = new Node();
|
|
|
+
|
|
|
+ Assert.Null(target.SelectedItem);
|
|
|
+ Assert.Empty(target.SelectedItems);
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public void Clearing_Child_Items_Should_Clear_Selection()
|
|
|
+ {
|
|
|
+ using var app = Start();
|
|
|
+ var data = CreateTestTreeData();
|
|
|
+ var target = CreateTarget(data: data);
|
|
|
+ var item = data[0].Children[1];
|
|
|
+
|
|
|
+ target.SelectedItem = item;
|
|
|
+
|
|
|
+ data[0].Children.Clear();
|
|
|
+
|
|
|
+ Assert.Null(target.SelectedItem);
|
|
|
+ Assert.Empty(target.SelectedItems);
|
|
|
+ }
|
|
|
+
|
|
|
[Fact]
|
|
|
public void SelectedItem_Should_Be_Valid_When_SelectedItemChanged_Event_Raised()
|
|
|
{
|