summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla31395.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla31395.cs')
-rw-r--r--Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla31395.cs54
1 files changed, 54 insertions, 0 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla31395.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla31395.cs
new file mode 100644
index 00000000..57b9b98c
--- /dev/null
+++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla31395.cs
@@ -0,0 +1,54 @@
+using System;
+
+using Xamarin.Forms.CustomAttributes;
+
+#if UITEST
+using Xamarin.UITest;
+using NUnit.Framework;
+#endif
+
+namespace Xamarin.Forms.Controls
+{
+ // don't forget to update C:\Users\chrisk\Documents\git\DuploBuddy\Xamarin.Forms.ControlGallery.Android\LinkerRoots.cs
+ [Preserve (AllMembers = true)]
+ [Issue (IssueTracker.Bugzilla, 31395, "Crash when switching MainPage and using a Custom Render")]
+ public class Bugzilla31395 : TestContentPage // or TestMasterDetailPage, etc ...
+ {
+ protected override void Init ()
+ {
+ Content = new CustomContentView { // Replace with ContentView and everything works fine
+ Content = new StackLayout {
+ VerticalOptions = LayoutOptions.Center,
+ Children = {
+ new Button {
+ Text = "Switch Main Page",
+ Command = new Command (() => SwitchMainPage ())
+ }
+ }
+ }
+ };
+ }
+
+ void SwitchMainPage ()
+ {
+ Application.Current.MainPage = new ContentPage { Content = new Label { Text = "Hello" } };
+ }
+
+ public class CustomContentView : ContentView
+ {
+
+ }
+
+ #if UITEST
+ [Test]
+ public void Bugzilla31395Test ()
+ {
+ RunningApp.WaitForElement (q => q.Marked ("Switch Main Page"));
+ Assert.DoesNotThrow (() => {
+ RunningApp.Tap (c => c.Marked ("Switch Main Page"));
+ });
+ RunningApp.WaitForElement (q => q.Marked ("Hello"));
+ }
+ #endif
+ }
+}