From 56c06be403c58d456f54131d7e86923f9374c9e8 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 25 Aug 2017 08:30:57 +0200 Subject: [PATCH] DynamicResource merged dictionary tests. --- .../DynamicResourceExtensionTests.cs | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs index 7de60a1029..c751f9e056 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs @@ -76,6 +76,68 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions + +"; + + var loader = new AvaloniaXamlLoader(); + var userControl = (UserControl)loader.Load(xaml); + var border = userControl.FindControl("border"); + + DelayedBinding.ApplyBindings(border); + + var brush = (SolidColorBrush)border.Background; + Assert.Equal(0xff506070, brush.Color.ToUint32()); + } + + [Fact] + public void DynamicResource_From_MergedDictionary_Can_Be_Assigned_To_Property() + { + var xaml = @" + + + + + + #ff506070 + + + + + + +"; + + var loader = new AvaloniaXamlLoader(); + var userControl = (UserControl)loader.Load(xaml); + var border = userControl.FindControl("border"); + + DelayedBinding.ApplyBindings(border); + + var brush = (SolidColorBrush)border.Background; + Assert.Equal(0xff506070, brush.Color.ToUint32()); + } + + [Fact] + public void DynamicResource_From_MergedDictionary_In_Style_Can_Be_Assigned_To_Property() + { + var xaml = @" + + + + + "; @@ -399,6 +461,99 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions Assert.Equal(0xff506070, brush.Color.ToUint32()); } + [Fact] + public void DynamicResource_Tracks_Added_MergedResource() + { + var xaml = @" + + + + + + + + + +"; + + var loader = new AvaloniaXamlLoader(); + var userControl = (UserControl)loader.Load(xaml); + var border = userControl.FindControl("border"); + + DelayedBinding.ApplyBindings(border); + + Assert.Null(border.Background); + + userControl.Resources.MergedDictionaries[0].Add("brush", new SolidColorBrush(0xff506070)); + + var brush = (SolidColorBrush)border.Background; + Assert.NotNull(brush); + Assert.Equal(0xff506070, brush.Color.ToUint32()); + } + + [Fact] + public void DynamicResource_Tracks_Added_MergedResource_Dictionary() + { + var xaml = @" + + +"; + + var loader = new AvaloniaXamlLoader(); + var userControl = (UserControl)loader.Load(xaml); + var border = userControl.FindControl("border"); + + DelayedBinding.ApplyBindings(border); + + Assert.Null(border.Background); + + var dictionary = new ResourceDictionary + { + { "brush", new SolidColorBrush(0xff506070) }, + }; + + userControl.Resources.MergedDictionaries.Add(dictionary); + + var brush = (SolidColorBrush)border.Background; + Assert.NotNull(brush); + Assert.Equal(0xff506070, brush.Color.ToUint32()); + } + + [Fact] + public void DynamicResource_Tracks_Added_Style_MergedResource_Dictionary() + { + var xaml = @" + + + + + +"; + + var loader = new AvaloniaXamlLoader(); + var userControl = (UserControl)loader.Load(xaml); + var border = userControl.FindControl("border"); + + DelayedBinding.ApplyBindings(border); + + Assert.Null(border.Background); + + var dictionary = new ResourceDictionary + { + { "brush", new SolidColorBrush(0xff506070) }, + }; + + ((Style)userControl.Styles[0]).Resources.MergedDictionaries.Add(dictionary); + + var brush = (SolidColorBrush)border.Background; + Assert.NotNull(brush); + Assert.Equal(0xff506070, brush.Color.ToUint32()); + } + [Fact] public void DynamicResource_Can_Be_Found_Across_Xaml_Style_Files() {