From 3243e0fd158769e84656d63caa085e0aba9f4d75 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sat, 2 Dec 2017 12:04:55 +0100 Subject: [PATCH] Added failing test for #1303 `TemplateBinding_With_Null_Path_Works` is a failing test for #1303, also added a passing test for the same thing with `Binding`: `Binding_With_Null_Path_Works`. --- .../Data/BindingTests.cs | 23 +++++++++++++ .../Data/BindingTests_TemplatedParent.cs | 32 +++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests.cs index 230e61f300..9a08073920 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests.cs @@ -13,6 +13,7 @@ using Moq; using Xunit; using System.ComponentModel; using System.Runtime.CompilerServices; +using Avalonia.UnitTests; namespace Avalonia.Markup.Xaml.UnitTests.Data { @@ -337,6 +338,28 @@ namespace Avalonia.Markup.Xaml.UnitTests.Data Assert.Equal("foo", target.Content); } + [Fact] + public void Binding_With_Null_Path_Works() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var xaml = @" + + +"; + var loader = new AvaloniaXamlLoader(); + var window = (Window)loader.Load(xaml); + var textBlock = window.FindControl("textBlock"); + + window.DataContext = "foo"; + window.ApplyTemplate(); + + Assert.Equal("foo", textBlock.Text); + } + } + private class TwoWayBindingTest : Control { public static readonly StyledProperty TwoWayProperty = diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_TemplatedParent.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_TemplatedParent.cs index 197afe46ee..ccb13039f1 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_TemplatedParent.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_TemplatedParent.cs @@ -11,6 +11,9 @@ using Avalonia.Markup.Xaml.Data; using Avalonia.Styling; using Xunit; using System.Reactive.Disposables; +using Avalonia.UnitTests; +using Avalonia.VisualTree; +using System.Linq; namespace Avalonia.Markup.Xaml.UnitTests.Data { @@ -56,6 +59,35 @@ namespace Avalonia.Markup.Xaml.UnitTests.Data BindingPriority.TemplatedParent)); } + [Fact] + public void TemplateBinding_With_Null_Path_Works() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var xaml = @" + + +"; + var loader = new AvaloniaXamlLoader(); + var window = (Window)loader.Load(xaml); + var button = window.FindControl