diff options
author | Stephane Delcroix <stephane@delcroix.org> | 2016-08-02 22:24:50 +0200 |
---|---|---|
committer | Jason Smith <jason.smith@xamarin.com> | 2016-08-02 13:24:50 -0700 |
commit | 89199205e48fe3fdf4336fe7e0f8af7dc0b662de (patch) | |
tree | 42e4d3a8f53ecd45d95b290bcdedd809eb046e4c /Xamarin.Forms.Xaml.UnitTests | |
parent | ac44cf9dec53b3b8be1836f20479f01820f3667f (diff) | |
download | xamarin-forms-89199205e48fe3fdf4336fe7e0f8af7dc0b662de.tar.gz xamarin-forms-89199205e48fe3fdf4336fe7e0f8af7dc0b662de.tar.bz2 xamarin-forms-89199205e48fe3fdf4336fe7e0f8af7dc0b662de.zip |
Xaml convert on add (#273)
* [Xaml] add test for conversion on Set and Add
* [Xaml] Fix conversion on Add()
* [XamlC] use op_implicit before Add()
Diffstat (limited to 'Xamarin.Forms.Xaml.UnitTests')
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/BuiltInConversions.xaml (renamed from Xamarin.Forms.Xaml.UnitTests/ImplicitConversions.xaml) | 2 | ||||
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/BuiltInConversions.xaml.cs (renamed from Xamarin.Forms.Xaml.UnitTests/ImplicitConversions.xaml.cs) | 11 | ||||
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/FindByName.xaml (renamed from Xamarin.Forms.Xaml.UnitTests/Compiled/FindByName.xaml) | 2 | ||||
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/FindByName.xaml.cs (renamed from Xamarin.Forms.Xaml.UnitTests/Compiled/FindByName.xaml.cs) | 2 | ||||
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/SetValue.xaml (renamed from Xamarin.Forms.Xaml.UnitTests/Compiled/SetValue.xaml) | 9 | ||||
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/SetValue.xaml.cs (renamed from Xamarin.Forms.Xaml.UnitTests/Compiled/SetValue.xaml.cs) | 29 | ||||
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/Xamarin.Forms.Xaml.UnitTests.csproj | 30 |
7 files changed, 55 insertions, 30 deletions
diff --git a/Xamarin.Forms.Xaml.UnitTests/ImplicitConversions.xaml b/Xamarin.Forms.Xaml.UnitTests/BuiltInConversions.xaml index 38d20e3e..cb0aefb6 100644 --- a/Xamarin.Forms.Xaml.UnitTests/ImplicitConversions.xaml +++ b/Xamarin.Forms.Xaml.UnitTests/BuiltInConversions.xaml @@ -2,7 +2,7 @@ <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" - x:Class="Xamarin.Forms.Xaml.UnitTests.ImplicitConversions"> + x:Class="Xamarin.Forms.Xaml.UnitTests.BuiltInConversions"> <StackLayout> <DatePicker x:Name="datetime0" Date="2015-01-16"/> <DatePicker x:Name="datetime1"> diff --git a/Xamarin.Forms.Xaml.UnitTests/ImplicitConversions.xaml.cs b/Xamarin.Forms.Xaml.UnitTests/BuiltInConversions.xaml.cs index 5eae0299..20d4afd2 100644 --- a/Xamarin.Forms.Xaml.UnitTests/ImplicitConversions.xaml.cs +++ b/Xamarin.Forms.Xaml.UnitTests/BuiltInConversions.xaml.cs @@ -1,15 +1,12 @@ using System; -using System.Collections.Generic; - -using Xamarin.Forms; using NUnit.Framework; namespace Xamarin.Forms.Xaml.UnitTests { - public partial class ImplicitConversions : ContentPage + public partial class BuiltInConversions : ContentPage { - public ImplicitConversions () + public BuiltInConversions () { InitializeComponent (); } @@ -20,7 +17,7 @@ namespace Xamarin.Forms.Xaml.UnitTests [Test] public void Datetime () { - var layout = new ImplicitConversions (); + var layout = new BuiltInConversions (); Assert.AreEqual (new DateTime (2015, 01, 16), layout.datetime0.Date); Assert.AreEqual (new DateTime (2015, 01, 16), layout.datetime1.Date); @@ -29,7 +26,7 @@ namespace Xamarin.Forms.Xaml.UnitTests [Test] public void String () { - var layout = new ImplicitConversions (); + var layout = new BuiltInConversions (); Assert.AreEqual ("foobar", layout.label0.Text); Assert.AreEqual ("foobar", layout.label1.Text); diff --git a/Xamarin.Forms.Xaml.UnitTests/Compiled/FindByName.xaml b/Xamarin.Forms.Xaml.UnitTests/FindByName.xaml index c0b7afd7..f064e5b0 100644 --- a/Xamarin.Forms.Xaml.UnitTests/Compiled/FindByName.xaml +++ b/Xamarin.Forms.Xaml.UnitTests/FindByName.xaml @@ -2,7 +2,7 @@ <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" - x:Class="Xamarin.Forms.Xaml.UnitTests.Compiled.FindByName" + x:Class="Xamarin.Forms.Xaml.UnitTests.FindByName" x:Name="root"> <StackLayout> <Label Text="Foo" x:Name="label0"/> diff --git a/Xamarin.Forms.Xaml.UnitTests/Compiled/FindByName.xaml.cs b/Xamarin.Forms.Xaml.UnitTests/FindByName.xaml.cs index 0ec198e8..c80ca6a6 100644 --- a/Xamarin.Forms.Xaml.UnitTests/Compiled/FindByName.xaml.cs +++ b/Xamarin.Forms.Xaml.UnitTests/FindByName.xaml.cs @@ -2,7 +2,7 @@ using Xamarin.Forms; -namespace Xamarin.Forms.Xaml.UnitTests.Compiled +namespace Xamarin.Forms.Xaml.UnitTests { public partial class FindByName : ContentPage { diff --git a/Xamarin.Forms.Xaml.UnitTests/Compiled/SetValue.xaml b/Xamarin.Forms.Xaml.UnitTests/SetValue.xaml index e60cd6db..133e0e9b 100644 --- a/Xamarin.Forms.Xaml.UnitTests/Compiled/SetValue.xaml +++ b/Xamarin.Forms.Xaml.UnitTests/SetValue.xaml @@ -2,7 +2,8 @@ <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" - x:Class="Xamarin.Forms.Xaml.UnitTests.Compiled.SetValue"> + xmlns:local="clr-namespace:Xamarin.Forms.Xaml.UnitTests" + x:Class="Xamarin.Forms.Xaml.UnitTests.SetValue"> <ContentPage.Resources> <ResourceDictionary> <Color x:Key="purple">Purple</Color> @@ -67,5 +68,11 @@ </Grid.ColumnDefinitions> </Grid> <Label x:Name="label14" AbsoluteLayout.LayoutFlags="PositionProportional,WidthProportional" /> + <ContentView x:Name="content0"> + <local:ConvertibleToView/> + </ContentView> + <StackLayout x:Name="stack4"> + <local:ConvertibleToView/> + </StackLayout> </StackLayout> </ContentPage>
\ No newline at end of file diff --git a/Xamarin.Forms.Xaml.UnitTests/Compiled/SetValue.xaml.cs b/Xamarin.Forms.Xaml.UnitTests/SetValue.xaml.cs index f835d59f..ce377a71 100644 --- a/Xamarin.Forms.Xaml.UnitTests/Compiled/SetValue.xaml.cs +++ b/Xamarin.Forms.Xaml.UnitTests/SetValue.xaml.cs @@ -1,13 +1,18 @@ using System; using System.Linq; -using System.Collections.Generic; - -using Xamarin.Forms; using NUnit.Framework; -namespace Xamarin.Forms.Xaml.UnitTests.Compiled +namespace Xamarin.Forms.Xaml.UnitTests { + public class ConvertibleToView + { + public static implicit operator View(ConvertibleToView source) + { + return new Button(); + } + } + public partial class SetValue : ContentPage { public SetValue () @@ -186,6 +191,22 @@ namespace Xamarin.Forms.Xaml.UnitTests.Compiled var page = new SetValue (useCompiledXaml); Assert.AreEqual (AbsoluteLayoutFlags.PositionProportional | AbsoluteLayoutFlags.WidthProportional, AbsoluteLayout.GetLayoutFlags (page.label14)); } + + [TestCase(false)] + [TestCase(true)] + public void ConversionsAreAppliedOnSet(bool useCompiledXaml) + { + var page = new SetValue(useCompiledXaml); + Assert.That(page.content0.Content, Is.TypeOf<Button>()); + } + + [TestCase(false)] + [TestCase(true)] + public void ConversionsAreAppliedOnAdd(bool useCompiledXaml) + { + var page = new SetValue(useCompiledXaml); + Assert.That(page.stack4.Children[0], Is.TypeOf<Button>()); + } } } }
\ No newline at end of file diff --git a/Xamarin.Forms.Xaml.UnitTests/Xamarin.Forms.Xaml.UnitTests.csproj b/Xamarin.Forms.Xaml.UnitTests/Xamarin.Forms.Xaml.UnitTests.csproj index cf473ff8..577b68bb 100644 --- a/Xamarin.Forms.Xaml.UnitTests/Xamarin.Forms.Xaml.UnitTests.csproj +++ b/Xamarin.Forms.Xaml.UnitTests/Xamarin.Forms.Xaml.UnitTests.csproj @@ -121,9 +121,6 @@ <Compile Include="Issues\Issue2016.xaml.cs"> <DependentUpon>Issue2016.xaml</DependentUpon> </Compile> - <Compile Include="Compiled\FindByName.xaml.cs"> - <DependentUpon>FindByName.xaml</DependentUpon> - </Compile> <Compile Include="Validation\SetterOnNonBP.xaml.cs"> <DependentUpon>SetterOnNonBP.xaml</DependentUpon> </Compile> @@ -143,8 +140,8 @@ <Compile Include="Issues\Issue2152.xaml.cs"> <DependentUpon>Issue2152.xaml</DependentUpon> </Compile> - <Compile Include="ImplicitConversions.xaml.cs"> - <DependentUpon>ImplicitConversions.xaml</DependentUpon> + <Compile Include="BuiltInConversions.xaml.cs"> + <DependentUpon>BuiltInConversions.xaml</DependentUpon> </Compile> <Compile Include="Issues\Issue2450.xaml.cs"> <DependentUpon>Issue2450.xaml</DependentUpon> @@ -170,9 +167,6 @@ <Compile Include="Issues\Issue2742.xaml.cs"> <DependentUpon>Issue2742.xaml</DependentUpon> </Compile> - <Compile Include="Compiled\SetValue.xaml.cs"> - <DependentUpon>SetValue.xaml</DependentUpon> - </Compile> <Compile Include="X2009Primitives.xaml.cs"> <DependentUpon>X2009Primitives.xaml</DependentUpon> </Compile> @@ -353,6 +347,12 @@ <Compile Include="Issues\Unreported004.xaml.cs"> <DependentUpon>Unreported004.xaml</DependentUpon> </Compile> + <Compile Include="FindByName.xaml.cs"> + <DependentUpon>FindByName.xaml</DependentUpon> + </Compile> + <Compile Include="SetValue.xaml.cs"> + <DependentUpon>SetValue.xaml</DependentUpon> + </Compile> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="..\.nuspec\Xamarin.Forms.Debug.targets" /> @@ -422,7 +422,7 @@ <EmbeddedResource Include="Issues\Issue2152.xaml"> <Generator>MSBuild:UpdateDesignTimeXaml</Generator> </EmbeddedResource> - <EmbeddedResource Include="ImplicitConversions.xaml"> + <EmbeddedResource Include="BuiltInConversions.xaml"> <Generator>MSBuild:UpdateDesignTimeXaml</Generator> </EmbeddedResource> <EmbeddedResource Include="Issues\Issue2450.xaml"> @@ -449,12 +449,6 @@ <EmbeddedResource Include="Issues\Issue2742.xaml"> <Generator>MSBuild:UpdateDesignTimeXaml</Generator> </EmbeddedResource> - <EmbeddedResource Include="Compiled\FindByName.xaml"> - <Generator>MSBuild:UpdateDesignTimeXaml</Generator> - </EmbeddedResource> - <EmbeddedResource Include="Compiled\SetValue.xaml"> - <Generator>MSBuild:UpdateDesignTimeXaml</Generator> - </EmbeddedResource> <EmbeddedResource Include="X2009Primitives.xaml"> <Generator>MSBuild:UpdateDesignTimeXaml</Generator> </EmbeddedResource> @@ -629,6 +623,12 @@ <EmbeddedResource Include="Issues\Unreported004.xaml"> <Generator>MSBuild:UpdateDesignTimeXaml</Generator> </EmbeddedResource> + <EmbeddedResource Include="FindByName.xaml"> + <Generator>MSBuild:UpdateDesignTimeXaml</Generator> + </EmbeddedResource> + <EmbeddedResource Include="SetValue.xaml"> + <Generator>MSBuild:UpdateDesignTimeXaml</Generator> + </EmbeddedResource> </ItemGroup> <ItemGroup> <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> |