diff options
author | Stephane Delcroix <stephane@delcroix.org> | 2017-01-12 21:05:41 +0100 |
---|---|---|
committer | Jason Smith <jason.smith@xamarin.com> | 2017-01-12 12:05:41 -0800 |
commit | b6cb64e4930de9b16309f2d30c6bb0a2177048fd (patch) | |
tree | ae15f36d3e0e60cac6305f90520ad778de9c6ee3 /Xamarin.Forms.Xaml.UnitTests | |
parent | 3af99cbbe145a876cc9839af0adead83695b5445 (diff) | |
download | xamarin-forms-b6cb64e4930de9b16309f2d30c6bb0a2177048fd.tar.gz xamarin-forms-b6cb64e4930de9b16309f2d30c6bb0a2177048fd.tar.bz2 xamarin-forms-b6cb64e4930de9b16309f2d30c6bb0a2177048fd.zip |
[C] new OnPlatform mechanism (#658)
* [C] Obsolete TargetPlatform
* [Xaml] support and test the new syntax
* blind fix windows platforms
Diffstat (limited to 'Xamarin.Forms.Xaml.UnitTests')
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/Issues/Issue1545.cs | 13 | ||||
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/Issues/Issue1549.cs | 8 | ||||
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/Issues/Issue1554.cs | 13 | ||||
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/Issues/Issue1594.cs | 25 | ||||
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/Issues/Pr3384.xaml.cs | 11 | ||||
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/Issues/Unreported007.xaml.cs | 3 | ||||
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/NativeViewsAndBindings.xaml.cs | 18 | ||||
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/OnPlatform.xaml | 6 | ||||
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/OnPlatform.xaml.cs | 39 | ||||
-rw-r--r-- | Xamarin.Forms.Xaml.UnitTests/OnPlatformTests.cs | 22 |
10 files changed, 124 insertions, 34 deletions
diff --git a/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1545.cs b/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1545.cs index 00747db4..7a4030eb 100644 --- a/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1545.cs +++ b/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1545.cs @@ -1,10 +1,23 @@ using NUnit.Framework; +using Xamarin.Forms.Core.UnitTests; namespace Xamarin.Forms.Xaml.UnitTests { [TestFixture] public class Issue1545 { + [SetUp] + public void Setup() + { + Device.PlatformServices = new MockPlatformServices { RuntimePlatform = Device.iOS }; + } + + [TearDown] + public void TearDown() + { + Device.PlatformServices = null; + } + [Test] public void BindingCanNotBeReused() { diff --git a/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1549.cs b/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1549.cs index c1253040..8b5bf30e 100644 --- a/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1549.cs +++ b/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1549.cs @@ -1,6 +1,7 @@ using System; using NUnit.Framework; using System.Collections.ObjectModel; +using Xamarin.Forms.Core.UnitTests; namespace Xamarin.Forms.Xaml.UnitTests { @@ -58,6 +59,13 @@ namespace Xamarin.Forms.Xaml.UnitTests { SeverityColorConverter.count = 0; InvertBoolenConverter.count = 0; + Device.PlatformServices = new MockPlatformServices(); + } + + [TearDown] + public void TearDown() + { + Device.PlatformServices = null; } [Test] diff --git a/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1554.cs b/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1554.cs index 2e7bfa91..bb7ee70b 100644 --- a/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1554.cs +++ b/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1554.cs @@ -1,11 +1,24 @@ using System; using NUnit.Framework; +using Xamarin.Forms.Core.UnitTests; namespace Xamarin.Forms.Xaml.UnitTests { [TestFixture] public class Issue1554 { + [SetUp] + public void Setup() + { + Device.PlatformServices = new MockPlatformServices(); + } + + [TearDown] + public void TearDown() + { + Device.PlatformServices = null; + } + [Test] public void CollectionItemsInDataTemplate () { diff --git a/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1594.cs b/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1594.cs index cd942319..91c84f8e 100644 --- a/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1594.cs +++ b/Xamarin.Forms.Xaml.UnitTests/Issues/Issue1594.cs @@ -1,11 +1,24 @@ using System; using NUnit.Framework; +using Xamarin.Forms.Core.UnitTests; namespace Xamarin.Forms.Xaml.UnitTests { [TestFixture] public class Issue1594 { + [SetUp] + public void Setup() + { + Device.PlatformServices = new MockPlatformServices(); + } + + [TearDown] + public void TearDown() + { + Device.PlatformServices = null; + } + [Test] public void OnPlatformForButtonHeight () { @@ -23,21 +36,17 @@ namespace Xamarin.Forms.Xaml.UnitTests </Button.HeightRequest> </Button>"; - Device.OS = TargetPlatform.iOS; + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.iOS; var button = new Button ().LoadFromXaml (xaml); Assert.AreEqual (33, button.HeightRequest); - Device.OS = TargetPlatform.Android; + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.Android; button = new Button ().LoadFromXaml (xaml); Assert.AreEqual (44, button.HeightRequest); - Device.OS = TargetPlatform.WinPhone; + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.WinPhone; button = new Button ().LoadFromXaml (xaml); Assert.AreEqual (44, button.HeightRequest); - - } - } -} - +}
\ No newline at end of file diff --git a/Xamarin.Forms.Xaml.UnitTests/Issues/Pr3384.xaml.cs b/Xamarin.Forms.Xaml.UnitTests/Issues/Pr3384.xaml.cs index ebf3fe18..d4ae92db 100644 --- a/Xamarin.Forms.Xaml.UnitTests/Issues/Pr3384.xaml.cs +++ b/Xamarin.Forms.Xaml.UnitTests/Issues/Pr3384.xaml.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using Xamarin.Forms; using NUnit.Framework; +using Xamarin.Forms.Core.UnitTests; namespace Xamarin.Forms.Xaml.UnitTests { @@ -22,9 +23,15 @@ namespace Xamarin.Forms.Xaml.UnitTests public class Tests { [SetUp] - public void SetUp () + public void Setup() { - Device.OS = TargetPlatform.iOS; + Device.PlatformServices = new MockPlatformServices { RuntimePlatform = Device.iOS }; + } + + [TearDown] + public void TearDown() + { + Device.PlatformServices = null; } [TestCase (false)] diff --git a/Xamarin.Forms.Xaml.UnitTests/Issues/Unreported007.xaml.cs b/Xamarin.Forms.Xaml.UnitTests/Issues/Unreported007.xaml.cs index 3d488be2..a5f15816 100644 --- a/Xamarin.Forms.Xaml.UnitTests/Issues/Unreported007.xaml.cs +++ b/Xamarin.Forms.Xaml.UnitTests/Issues/Unreported007.xaml.cs @@ -23,7 +23,7 @@ namespace Xamarin.Forms.Xaml.UnitTests [SetUp] public void Setup() { - Device.PlatformServices = new MockPlatformServices(); + Device.PlatformServices = new MockPlatformServices { RuntimePlatform = Device.iOS }; } [TearDown] @@ -35,7 +35,6 @@ namespace Xamarin.Forms.Xaml.UnitTests [TestCase(true), TestCase(false)] public void ConstraintsAreEvaluatedWithOnPlatform(bool useCompiledXaml) { - Device.OS = TargetPlatform.iOS; var page = new Unreported007(useCompiledXaml); Assert.That(RelativeLayout.GetXConstraint(page.label), Is.TypeOf<Constraint>()); Assert.AreEqual(3, RelativeLayout.GetXConstraint(page.label).Compute(null)); diff --git a/Xamarin.Forms.Xaml.UnitTests/NativeViewsAndBindings.xaml.cs b/Xamarin.Forms.Xaml.UnitTests/NativeViewsAndBindings.xaml.cs index ce02d63b..39039f7a 100644 --- a/Xamarin.Forms.Xaml.UnitTests/NativeViewsAndBindings.xaml.cs +++ b/Xamarin.Forms.Xaml.UnitTests/NativeViewsAndBindings.xaml.cs @@ -246,22 +246,22 @@ namespace Xamarin.Forms.Xaml.UnitTests Device.PlatformServices = null; } - void SetUpPlatform(TargetPlatform platform) + void SetUpPlatform(string platform) { - Device.OS = platform; - if (platform == TargetPlatform.iOS) { + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = platform; + if (platform == Device.iOS) { DependencyService.Register<INativeValueConverterService, MockIosNativeValueConverterService>(); DependencyService.Register<INativeBindingService, MockIosNativeBindingService>(); - } else if (platform == TargetPlatform.Android) { + } else if (platform == Device.Android) { DependencyService.Register<INativeValueConverterService, MockAndroidNativeValueConverterService>(); DependencyService.Register<INativeBindingService, MockAndroidNativeBindingService>(); } } - [TestCase(false, TargetPlatform.iOS)] - [TestCase(false, TargetPlatform.Android)] + [TestCase(false, Device.iOS)] + [TestCase(false, Device.Android)] //[TestCase(true)] - public void NativeInContentView(bool useCompiledXaml, TargetPlatform platform) + public void NativeInContentView(bool useCompiledXaml, string platform) { SetUpPlatform(platform); var layout = new NativeViewsAndBindings(useCompiledXaml); @@ -272,11 +272,11 @@ namespace Xamarin.Forms.Xaml.UnitTests var view = layout.view0; Assert.NotNull(view.Content); MockNativeView nativeView = null; - if (platform == TargetPlatform.iOS) { + if (platform == Device.iOS) { Assert.That(view.Content, Is.TypeOf<MockUIViewWrapper>()); Assert.That(((MockUIViewWrapper)view.Content).NativeView, Is.TypeOf<MockUIView>()); nativeView = ((MockUIViewWrapper)view.Content).NativeView; - } else if (platform == TargetPlatform.Android) { + } else if (platform == Device.Android) { Assert.That(view.Content, Is.TypeOf<MockAndroidViewWrapper>()); Assert.That(((MockAndroidViewWrapper)view.Content).NativeView, Is.TypeOf<MockAndroidView>()); nativeView = ((MockAndroidViewWrapper)view.Content).NativeView; diff --git a/Xamarin.Forms.Xaml.UnitTests/OnPlatform.xaml b/Xamarin.Forms.Xaml.UnitTests/OnPlatform.xaml index 7f470a4a..de9a1e67 100644 --- a/Xamarin.Forms.Xaml.UnitTests/OnPlatform.xaml +++ b/Xamarin.Forms.Xaml.UnitTests/OnPlatform.xaml @@ -36,6 +36,12 @@ <OnPlatform.Android>Bar</OnPlatform.Android> </OnPlatform> </Label.Text> + <Label.HeightRequest> + <OnPlatform x:TypeArguments="x:Double"> + <On Platform="iOS">21</On> + <On Platform="Android, FooBar">42</On> + </OnPlatform> + </Label.HeightRequest> </Label> </StackLayout> </ContentPage>
\ No newline at end of file diff --git a/Xamarin.Forms.Xaml.UnitTests/OnPlatform.xaml.cs b/Xamarin.Forms.Xaml.UnitTests/OnPlatform.xaml.cs index d53a51c2..edfb695f 100644 --- a/Xamarin.Forms.Xaml.UnitTests/OnPlatform.xaml.cs +++ b/Xamarin.Forms.Xaml.UnitTests/OnPlatform.xaml.cs @@ -39,11 +39,11 @@ namespace Xamarin.Forms.Xaml.UnitTests [TestCase (true)] public void BoolToVisibility (bool useCompiledXaml) { - Device.OS = TargetPlatform.iOS; + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.iOS; var layout = new OnPlatform (useCompiledXaml); Assert.AreEqual (true, layout.label0.IsVisible); - Device.OS = TargetPlatform.Android; + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.Android; layout = new OnPlatform (useCompiledXaml); Assert.AreEqual (false, layout.label0.IsVisible); } @@ -52,11 +52,11 @@ namespace Xamarin.Forms.Xaml.UnitTests [TestCase(true)] public void DoubleToWidth(bool useCompiledXaml) { - Device.OS = TargetPlatform.iOS; + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.iOS; var layout = new OnPlatform(useCompiledXaml); Assert.AreEqual(20, layout.label0.WidthRequest); - Device.OS = TargetPlatform.Android; + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.Android; layout = new OnPlatform(useCompiledXaml); Assert.AreEqual(30, layout.label0.WidthRequest); } @@ -65,11 +65,11 @@ namespace Xamarin.Forms.Xaml.UnitTests [TestCase(true)] public void StringToText(bool useCompiledXaml) { - Device.OS = TargetPlatform.iOS; + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.iOS; var layout = new OnPlatform(useCompiledXaml); Assert.AreEqual("Foo", layout.label0.Text); - Device.OS = TargetPlatform.Android; + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.Android; layout = new OnPlatform(useCompiledXaml); Assert.AreEqual("Bar", layout.label0.Text); } @@ -81,16 +81,18 @@ namespace Xamarin.Forms.Xaml.UnitTests var layout = new OnPlatform(useCompiledXaml); var onplat = layout.Resources ["fontAttributes"] as OnPlatform<FontAttributes>; Assert.NotNull(onplat); +#pragma warning disable 612 Assert.AreEqual(FontAttributes.Bold, onplat.iOS); - Assert.AreEqual(FontAttributes.Italic, onplat.Android); +#pragma warning restore 612 + } [TestCase(false)] [TestCase(true)] public void OnPlatformAsResourceAreApplied(bool useCompiledXaml) { - Device.OS = TargetPlatform.iOS; + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.iOS; var layout = new OnPlatform(useCompiledXaml); var onidiom = layout.Resources ["fontSize"] as OnIdiom<double>; Assert.NotNull(onidiom); @@ -98,10 +100,29 @@ namespace Xamarin.Forms.Xaml.UnitTests Assert.AreEqual(20, onidiom.Phone); Assert.AreEqual(FontAttributes.Bold, layout.label0.FontAttributes); - Device.OS = TargetPlatform.Android; + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.Android; layout = new OnPlatform(useCompiledXaml); Assert.AreEqual(FontAttributes.Italic, layout.label0.FontAttributes); } + + [TestCase(false)] + [TestCase(true)] + public void OnPlatform2Syntax(bool useCompiledXaml) + { + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.Android; + var layout = new OnPlatform(useCompiledXaml); + Assert.AreEqual(42, layout.label0.HeightRequest); + + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.iOS; + layout = new OnPlatform(useCompiledXaml); + Assert.AreEqual(21, layout.label0.HeightRequest); + + + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = "FooBar"; + layout = new OnPlatform(useCompiledXaml); + Assert.AreEqual(42, layout.label0.HeightRequest); + + } } } }
\ No newline at end of file diff --git a/Xamarin.Forms.Xaml.UnitTests/OnPlatformTests.cs b/Xamarin.Forms.Xaml.UnitTests/OnPlatformTests.cs index fc7283ad..04084dea 100644 --- a/Xamarin.Forms.Xaml.UnitTests/OnPlatformTests.cs +++ b/Xamarin.Forms.Xaml.UnitTests/OnPlatformTests.cs @@ -8,6 +8,20 @@ namespace Xamarin.Forms.Xaml.UnitTests [TestFixture] public class OnPlatformTests : BaseTestFixture { + [SetUp] + public override void Setup() + { + base.Setup(); + Device.PlatformServices = new MockPlatformServices(); + } + + [TearDown] + public override void TearDown() + { + Device.PlatformServices = null; + base.TearDown(); + } + [Test] public void ApplyToProperty () { @@ -50,15 +64,15 @@ namespace Xamarin.Forms.Xaml.UnitTests ContentPage layout; - Device.OS = TargetPlatform.iOS; + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.iOS; layout = new ContentPage ().LoadFromXaml (xaml); Assert.AreEqual (new Thickness (0, 20, 0, 0), layout.Padding); - Device.OS = TargetPlatform.Android; + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.Android; layout = new ContentPage ().LoadFromXaml (xaml); Assert.AreEqual (new Thickness (0, 0, 10, 0), layout.Padding); - Device.OS = TargetPlatform.WinPhone; + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.WinPhone; layout = new ContentPage ().LoadFromXaml (xaml); Assert.AreEqual (new Thickness (0, 20, 0, 20), layout.Padding); } @@ -81,7 +95,7 @@ namespace Xamarin.Forms.Xaml.UnitTests Image image; - Device.OS = TargetPlatform.iOS; + ((MockPlatformServices)Device.PlatformServices).RuntimePlatform = Device.iOS; image = new Image ().LoadFromXaml (xaml); Assert.AreEqual ("icon_twitter.png", (image.Source as FileImageSource).File); } |