summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Xaml.UnitTests
diff options
context:
space:
mode:
authorStephane Delcroix <stephane@delcroix.org>2017-01-12 21:05:41 +0100
committerJason Smith <jason.smith@xamarin.com>2017-01-12 12:05:41 -0800
commitb6cb64e4930de9b16309f2d30c6bb0a2177048fd (patch)
treeae15f36d3e0e60cac6305f90520ad778de9c6ee3 /Xamarin.Forms.Xaml.UnitTests
parent3af99cbbe145a876cc9839af0adead83695b5445 (diff)
downloadxamarin-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.cs13
-rw-r--r--Xamarin.Forms.Xaml.UnitTests/Issues/Issue1549.cs8
-rw-r--r--Xamarin.Forms.Xaml.UnitTests/Issues/Issue1554.cs13
-rw-r--r--Xamarin.Forms.Xaml.UnitTests/Issues/Issue1594.cs25
-rw-r--r--Xamarin.Forms.Xaml.UnitTests/Issues/Pr3384.xaml.cs11
-rw-r--r--Xamarin.Forms.Xaml.UnitTests/Issues/Unreported007.xaml.cs3
-rw-r--r--Xamarin.Forms.Xaml.UnitTests/NativeViewsAndBindings.xaml.cs18
-rw-r--r--Xamarin.Forms.Xaml.UnitTests/OnPlatform.xaml6
-rw-r--r--Xamarin.Forms.Xaml.UnitTests/OnPlatform.xaml.cs39
-rw-r--r--Xamarin.Forms.Xaml.UnitTests/OnPlatformTests.cs22
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);
}