Browse Source

Added failing test for #3551

Co-Authored-By: Dariusz Komosiński <[email protected]>
Steven Kirk 5 years ago
parent
commit
b80c61892e
1 changed files with 29 additions and 0 deletions
  1. 29 0
      tests/Avalonia.Controls.UnitTests/TreeViewTests.cs

+ 29 - 0
tests/Avalonia.Controls.UnitTests/TreeViewTests.cs

@@ -1002,6 +1002,35 @@ namespace Avalonia.Controls.UnitTests
             Assert.Equal(1, child2Node.Presenter.Panel.Children.Count);
         }
 
+        [Fact]
+        public void Clearing_TreeView_Items_Clears_Index()
+        {
+            // Issue #3551
+            var tree = CreateTestTreeData();
+            var target = new TreeView
+            {
+                Template = CreateTreeViewTemplate(),
+                Items = tree,
+            };
+
+            var root = new TestRoot();
+            root.Child = target;
+
+            CreateNodeDataTemplate(target);
+            ApplyTemplates(target);
+
+            var rootNode = tree[0];
+            var container = (TreeViewItem)target.ItemContainerGenerator.Index.ContainerFromItem(rootNode);
+
+            Assert.NotNull(container);
+
+            root.Child = null;
+
+            tree.Clear();
+
+            Assert.Empty(target.ItemContainerGenerator.Index.Containers);
+        }
+
         private void ApplyTemplates(TreeView tree)
         {
             tree.ApplyTemplate();