Browse Source

Added StaticResource tests for bindings within DataTemplate

pull/1513/head
Amadeusz Sadowski 8 years ago
parent
commit
5dabc067ed
  1. 45
      tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/StaticResourceExtensionTests.cs

45
tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/StaticResourceExtensionTests.cs

@ -323,7 +323,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
Assert.Equal(0xff506070, brush.Color.ToUint32()); Assert.Equal(0xff506070, brush.Color.ToUint32());
} }
[Fact(/*Skip = "Not yet supported by Portable.Xaml"*/)] [Fact]
public void StaticResource_Can_Be_Assigned_To_Property_In_ControlTemplate_In_Styles_File() public void StaticResource_Can_Be_Assigned_To_Property_In_ControlTemplate_In_Styles_File()
{ {
var styleXaml = @" var styleXaml = @"
@ -418,7 +418,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
} }
[Fact] [Fact]
public void StaticResource_Can_Be_Assigned_To_Converter_In_DataTemplate() public void StaticResource_Can_Be_Assigned_To_Binding_Converter_In_DataTemplate()
{ {
using (StyledWindow()) using (StyledWindow())
{ {
@ -429,7 +429,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
<Window.Resources> <Window.Resources>
<local:TestValueConverter x:Key='converter' Append='bar'/> <local:TestValueConverter x:Key='converter' Append='bar'/>
<DataTemplate x:Key='PurpleData'> <DataTemplate x:Key='PurpleData'>
<TextBlock Name='textBlock' Text='{Binding Converter={StaticResource converter}}' Background='Purple'/> <TextBlock Name='textBlock' Text='{Binding Converter={StaticResource converter}}'/>
</DataTemplate> </DataTemplate>
</Window.Resources> </Window.Resources>
@ -451,6 +451,45 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
} }
} }
[Fact]
public void StaticResource_Is_Correctly_Chosen_From_Within_DataTemplate()
{
// this tests if IAmbientProviders in DataTemplate contexts are in correct order
// if they wouldn't be, Purple brush would be bound to
using (StyledWindow())
{
var xaml = @"
<Window xmlns='https://github.com/avaloniaui'
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
xmlns:local='clr-namespace:Avalonia.Markup.Xaml.UnitTests.MarkupExtensions;assembly=Avalonia.Markup.Xaml.UnitTests'>
<Window.Resources>
<local:TestValueConverter x:Key='converter' Append='-bar'/>
<SolidColorBrush x:Key='brush' Color='Purple'/>
<DataTemplate x:Key='WhiteData'>
<Border>
<Border.Resources>
<SolidColorBrush x:Key='brush' Color='White'/>
</Border.Resources>
<TextBlock Name='textBlock' Text='{Binding Color, Source={StaticResource brush}, Converter={StaticResource converter}}' Foreground='{StaticResource brush}' />
</Border>
</DataTemplate>
</Window.Resources>
<ContentPresenter Content='foo' ContentTemplate='{StaticResource WhiteData}'/>
</Window>";
var loader = new AvaloniaXamlLoader();
var window = (Window)loader.Load(xaml);
window.Show();
var textBlock = window.GetVisualDescendants().OfType<TextBlock>().Single();
Assert.NotNull(textBlock);
Assert.Equal("White-bar", textBlock.Text);
}
}
[Fact] [Fact]
public void Control_Property_Is_Not_Updated_When_Parent_Is_Changed() public void Control_Property_Is_Not_Updated_When_Parent_Is_Changed()
{ {

Loading…
Cancel
Save