diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj index 6bb8fb0008..a8c9eaecd9 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj @@ -29,7 +29,7 @@ full false bin\Debug\ - DEBUG;TRACE + TRACE;DEBUG;OMNIXAML_no prompt 4 @@ -46,6 +46,11 @@ ..\..\packages\Moq.4.2.1510.2205\lib\net40\Moq.dll True + + ..\..\packages\Portable.Xaml.0.15.0\lib\portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10\Portable.Xaml.dll + False + True + ..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll True diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Converters/AvaloniaPropertyConverterTest.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Converters/AvaloniaPropertyConverterTest.cs index 5a6f19bbfe..dd741d6207 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Converters/AvaloniaPropertyConverterTest.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Converters/AvaloniaPropertyConverterTest.cs @@ -13,6 +13,7 @@ using Avalonia.Controls; using Avalonia.Markup.Xaml.Converters; using Avalonia.Styling; using Xunit; +using Portable.Xaml.ComponentModel; namespace Avalonia.Markup.Xaml.UnitTests.Converters { @@ -55,7 +56,12 @@ namespace Avalonia.Markup.Xaml.UnitTests.Converters Assert.Equal(AttachedOwner.AttachedProperty, result); } - +#if !OMNIXAML + private ITypeDescriptorContext CreateContext(Style style = null) + { + return null; + } +#else private IValueContext CreateContext(Style style = null) { var context = new Mock(); @@ -71,7 +77,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Converters typeRepository.Setup(x => x.GetByQualifiedName("AttachedOwner")).Returns(attachedOwnerXamlType); return context.Object; } - +#endif private class Class1 : AvaloniaObject, IStyleable { public static readonly StyledProperty FooProperty = diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs index d0d99c5569..36c4a8a41e 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs @@ -1,9 +1,10 @@ // Copyright (c) The Avalonia Project. All rights reserved. // Licensed under the MIT license. See licence.md file in the project root for full license information. -using System.IO; -using System.Text; +using System.Linq; using Avalonia.Controls; +using Avalonia.Media; +using Avalonia.Styling; using Avalonia.UnitTests; using Xunit; @@ -14,14 +15,9 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml [Fact] public void Simple_Property_Is_Set() { + var xaml = @""; - var xaml = @" - -"; - var loader = new AvaloniaXamlLoader(); - var target = (ContentControl)loader.Load(xaml); + var target = (ContentControl)new AvaloniaXamlLoader().Load(xaml); Assert.NotNull(target); Assert.Equal("Foo", target.Content); @@ -30,10 +26,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml [Fact] public void Default_Content_Property_Is_Set() { - var xaml = @" -Foo"; + var xaml = @"Foo"; var loader = new AvaloniaXamlLoader(); var target = (ContentControl)loader.Load(xaml); @@ -45,8 +38,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml public void ContentControl_ContentTemplate_Is_Functional() { var xaml = -@" +@" @@ -69,8 +61,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml public void Named_Control_Is_Added_To_NameScope_Simple() { var xaml = @" - + "; var loader = new AvaloniaXamlLoader(); @@ -95,6 +86,55 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml Assert.Equal("Foo", button.Content); } + [Fact] + public void Standart_TypeConverter_Is_Used() + { + var xaml = @""; + + var control = (UserControl)new AvaloniaXamlLoader().Load(xaml); + Assert.Equal(200.5, control.Width); + } + + [Fact] + public void Avalonia_TypeConverter_Is_Used() + { + var xaml = @""; + + var control = (UserControl)new AvaloniaXamlLoader().Load(xaml); + var bk = control.Background; + Assert.IsType(bk); + Assert.Equal(Colors.White, (bk as SolidColorBrush).Color); + } + + [Fact] + public void Simple_Style_Is_Parsed() + { + var xaml = @" + + +"; + + var styles = (Styles)new AvaloniaXamlLoader().Load(xaml); + + Assert.Equal(1, styles.Count); + + var style = (Style)styles[0]; + + var setters = style.Setters.Cast().ToArray(); + + Assert.Equal(2, setters.Length); + + Assert.Equal(TextBlock.BackgroundProperty, setters[0].Property); + Assert.Equal(Brushes.White, setters[0].Value); + + Assert.Equal(TextBlock.WidthProperty, setters[1].Property); + Assert.Equal(100.0, setters[1].Value); + } + [Fact] public void Named_Control_Is_Added_To_NameScope() { @@ -137,4 +177,4 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml } } } -} +} \ No newline at end of file diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/packages.config b/tests/Avalonia.Markup.Xaml.UnitTests/packages.config index cad6395387..6972facac2 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/packages.config +++ b/tests/Avalonia.Markup.Xaml.UnitTests/packages.config @@ -1,6 +1,7 @@  +