Browse Source

added tests for using type converters

pull/916/head
donandren 10 years ago
committed by Andrey Kunchev
parent
commit
d59e5078d4
  1. 7
      tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
  2. 10
      tests/Avalonia.Markup.Xaml.UnitTests/Converters/AvaloniaPropertyConverterTest.cs
  3. 76
      tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs
  4. 1
      tests/Avalonia.Markup.Xaml.UnitTests/packages.config

7
tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj

@ -29,7 +29,7 @@
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DefineConstants>TRACE;DEBUG;OMNIXAML_no</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
@ -46,6 +46,11 @@
<HintPath>..\..\packages\Moq.4.2.1510.2205\lib\net40\Moq.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Portable.Xaml, Version=0.15.0.0, Culture=neutral, PublicKeyToken=ba4456acace7dab7, processorArchitecture=MSIL">
<HintPath>..\..\packages\Portable.Xaml.0.15.0\lib\portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10\Portable.Xaml.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
<Private>True</Private>
</Reference>
<Reference Include="Splat, Version=1.6.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
<Private>True</Private>

10
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<IValueContext>();
@ -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<string> FooProperty =

76
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 = @"<ContentControl xmlns='https://github.com/avaloniaui' Content='Foo'/>";
var xaml = @"
<ContentControl xmlns='https://github.com/avaloniaui'
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
Content='Foo'>
</ContentControl>";
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 = @"
<ContentControl xmlns='https://github.com/avaloniaui'
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
>Foo</ContentControl>";
var xaml = @"<ContentControl xmlns='https://github.com/avaloniaui'>Foo</ContentControl>";
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 =
@"<ContentControl xmlns='https://github.com/avaloniaui'
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'>
@"<ContentControl xmlns='https://github.com/avaloniaui'>
<ContentControl.ContentTemplate>
<DataTemplate>
<TextBlock Text='Foo' />
@ -69,8 +61,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
public void Named_Control_Is_Added_To_NameScope_Simple()
{
var xaml = @"
<UserControl xmlns='https://github.com/avaloniaui'
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'>
<UserControl xmlns='https://github.com/avaloniaui'>
<Button Name='button'>Foo</Button>
</UserControl>";
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 = @"<UserControl xmlns='https://github.com/avaloniaui' Width='200.5' />";
var control = (UserControl)new AvaloniaXamlLoader().Load(xaml);
Assert.Equal(200.5, control.Width);
}
[Fact]
public void Avalonia_TypeConverter_Is_Used()
{
var xaml = @"<UserControl xmlns='https://github.com/avaloniaui' Background='White' />";
var control = (UserControl)new AvaloniaXamlLoader().Load(xaml);
var bk = control.Background;
Assert.IsType<SolidColorBrush>(bk);
Assert.Equal(Colors.White, (bk as SolidColorBrush).Color);
}
[Fact]
public void Simple_Style_Is_Parsed()
{
var xaml = @"
<Styles xmlns='https://github.com/avaloniaui'
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'>
<Style Selector='TextBlock'>
<Setter Property='Background' Value='White'/>
<Setter Property='Width' Value='100'/>
</Style>
</Styles>";
var styles = (Styles)new AvaloniaXamlLoader().Load(xaml);
Assert.Equal(1, styles.Count);
var style = (Style)styles[0];
var setters = style.Setters.Cast<Setter>().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
}
}
}
}
}

1
tests/Avalonia.Markup.Xaml.UnitTests/packages.config

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Moq" version="4.2.1510.2205" targetFramework="net451" />
<package id="Portable.Xaml" version="0.15.0" targetFramework="net451" />
<package id="Splat" version="1.6.2" targetFramework="net451" />
<package id="Sprache" version="2.1.0" targetFramework="net451" />
<package id="System.Reactive.Core" version="3.0.0" targetFramework="net451" />

Loading…
Cancel
Save