diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/XamlIlTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/XamlIlTests.cs
index f33054e5ce..419fa18fa9 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/XamlIlTests.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/XamlIlTests.cs
@@ -1,7 +1,14 @@
+using System;
+using System.Collections.Generic;
using System.ComponentModel;
+using System.Globalization;
+using System.Linq;
using System.Runtime.CompilerServices;
using Avalonia.Controls;
+using Avalonia.Data.Converters;
using Avalonia.Media;
+using Avalonia.UnitTests;
+using Avalonia.VisualTree;
using JetBrains.Annotations;
using Xunit;
@@ -52,7 +59,60 @@ namespace Avalonia.Markup.Xaml.UnitTests
Assert.Null(loaded.Background);
}
-
+
+ [Fact]
+ public void RelativeSource_TemplatedParent_Works()
+ {
+ using (UnitTestApplication.Start(TestServices.StyledWindow))
+ {
+ var parsed = (Window)AvaloniaXamlLoader.Parse(@"
+
+
+
+
+
+
+
+");
+ var btn = ((Button)parsed.Content);
+ btn.ApplyTemplate();
+ var canvas = (Canvas)btn.GetVisualChildren().First()
+ .VisualChildren.First()
+ .VisualChildren.First()
+ .VisualChildren.First();
+ Assert.Equal(Brushes.Red, canvas.Background);
+ }
+ }
+ }
+
+ public class XamlIlBugTestsAsIsConverter : IMultiValueConverter
+ {
+ public object Convert(IList