Browse Source

Added failing test for #10398.

Steven Kirk 2 years ago
parent
commit
d7b6a8e97a
1 changed files with 25 additions and 0 deletions
  1. 25 0
      tests/Avalonia.Controls.UnitTests/TreeViewTests.cs

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

@@ -100,6 +100,31 @@ namespace Avalonia.Controls.UnitTests
             Assert.All(items, x => Assert.Same(theme, x.ItemContainerTheme));
         }
 
+        [Fact]
+        public void Finds_Correct_DataTemplate_When_Application_DataTemplate_Is_Present()
+        {
+            // #10398
+            using var app = UnitTestApplication.Start();
+            
+            Avalonia.Application.Current.DataTemplates.Add(new FuncDataTemplate<object>((x, _) => new Canvas()));
+            AvaloniaLocator.CurrentMutable.Bind<IGlobalDataTemplates>().ToConstant(Avalonia.Application.Current);
+
+            var target = new TreeView
+            {
+                Template = CreateTreeViewTemplate(),
+                Items = CreateTestTreeData(),
+            };
+
+            var root = new TestRoot(target);
+
+            CreateNodeDataTemplate(target);
+            ApplyTemplates(target);
+
+            Assert.Equal(new[] { "Root" }, ExtractItemHeader(target, 0));
+            Assert.Equal(new[] { "Child1", "Child2", "Child3" }, ExtractItemHeader(target, 1));
+            Assert.Equal(new[] { "Grandchild2a" }, ExtractItemHeader(target, 2));
+        }
+
         [Fact]
         public void Root_ItemContainerGenerator_Containers_Should_Be_Root_Containers()
         {