From cb4fcfb602d075c65b4bff463ad4a7aac8c3f7c2 Mon Sep 17 00:00:00 2001 From: donandren Date: Fri, 3 Mar 2017 19:42:02 +0200 Subject: [PATCH] added test for complex style and Panel in control template --- .../Xaml/BasicTests.cs | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs index 0982730741..7e7d5fb917 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs @@ -110,6 +110,53 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml Assert.Contains(bar, panel.Children); } + [Fact] + public void ControlTemplate_With_Nested_Child_Is_Operational() + { + var xaml = @" + + + + + +"; + var template = AvaloniaXamlLoader.Parse(xaml); + + var parent = (ContentControl)template.Build(new ContentControl()); + + Assert.Equal("parent", parent.Name); + + var child = parent.Content as ContentControl; + + Assert.NotNull(child); + + Assert.Equal("child", child.Name); + } + + [Fact] + public void ControlTemplate_With_Panel_Children_Are_Added() + { + var xaml = @" + + + + + + +"; + var template = AvaloniaXamlLoader.Parse(xaml); + + var panel = (Panel)template.Build(new ContentControl()); + + Assert.Equal(2, panel.Children.Count); + + var foo = panel.Children[0]; + var bar = panel.Children[1]; + + Assert.Equal("Foo", foo.Name); + Assert.Equal("Bar", bar.Name); + } + [Fact] public void Named_x_Control_Is_Added_To_NameScope_Simple() { @@ -174,6 +221,66 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml Assert.Equal(100.0, setters[1].Value); } + [Fact] + public void Complex_Style_Is_Parsed() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var xaml = @" + + + +"; + var styles = AvaloniaXamlLoader.Parse(xaml); + + Assert.Equal(1, styles.Count); + + var style = (Style)styles[0]; + + var setters = style.Setters.Cast().ToArray(); + + Assert.Equal(3, setters.Length); + + Assert.Equal(CheckBox.BorderBrushProperty, setters[0].Property); + Assert.Equal(CheckBox.BorderThicknessProperty, setters[1].Property); + Assert.Equal(CheckBox.TemplateProperty, setters[2].Property); + + Assert.IsType(setters[0].Value); + Assert.IsType(setters[1].Value); + Assert.IsType(setters[2].Value); + } + } + [Fact] public void Style_Resources_Are_Build() {