summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32902.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32902.cs')
-rw-r--r--Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32902.cs131
1 files changed, 131 insertions, 0 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32902.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32902.cs
new file mode 100644
index 00000000..e3bfccff
--- /dev/null
+++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32902.cs
@@ -0,0 +1,131 @@
+using System;
+
+using Xamarin.Forms.CustomAttributes;
+
+
+#if UITEST
+using Xamarin.UITest.iOS;
+using Xamarin.UITest;
+using NUnit.Framework;
+#endif
+
+namespace Xamarin.Forms.Controls
+{
+ [Preserve (AllMembers = true)]
+ [Issue (IssueTracker.Bugzilla, 32902, "[iOS | iPad] App Crashes (without debug log) when Master Detail isPresented and navigation being popped")]
+ public class Bugzilla32902 : TestContentPage // or TestMasterDetailPage, etc ...
+ {
+ ContentPage FirstContentPage { get; set; }
+
+ MasterDetailPage HomePage { get; set; }
+
+ NavigationPage DetailPage { get; set; }
+
+ ContentPage MasterPage { get; set; }
+
+ protected override void Init ()
+ {
+ var rootContentPageLayout = new StackLayout();
+ var rootContentPageButton = new Button()
+ {
+ Text = "PushAsync to next page",
+ AutomationId = "btnNext",
+ BackgroundColor = Color.FromHex("#ecf0f1"),
+ TextColor = Color.Black
+ };
+ rootContentPageButton.Clicked += async (sender, args) =>
+ {
+ await Navigation.PushAsync(FirstContentPage);
+ };
+
+ rootContentPageLayout.Children.Add(rootContentPageButton);
+ Content = rootContentPageLayout;
+
+ Title = "RootPage";
+ BackgroundColor = Color.FromHex ("#2c3e50");
+
+ //MASTER PAGE
+ MasterPage = new ContentPage()
+ {
+ Title = "Master",
+ BackgroundColor = Color.FromHex("#1abc9c")
+ };
+ var masterPageLayout = new StackLayout();
+ var masterPageButton = new Button()
+ {
+ Text = "Pop Modal and Pop Root",
+ AutomationId = "btnPop",
+ BackgroundColor = Color.FromHex("#ecf0f1"),
+ TextColor = Color.Black
+ };
+ masterPageButton.Clicked += async (sender, args) =>
+ {
+ await Navigation.PopModalAsync();
+ await Navigation.PopToRootAsync();
+ };
+ masterPageLayout.Children.Add(masterPageButton);
+ MasterPage.Content = masterPageLayout;
+
+
+ //DETAIL PAGE
+ DetailPage = new NavigationPage (new ContentPage () {
+ Title = "RootNavigationDetailPage",
+ BackgroundColor = Color.FromHex ("#2980b9"),
+ Content = new Button {
+ Text = "PopModal",
+ TextColor = Color.White,
+ Command = new Command (async () => {
+ await Navigation.PopModalAsync ();
+ })
+ }
+ });
+
+ //MASTERDETAIL PAGE
+ HomePage = new MasterDetailPage()
+ {
+ Master = MasterPage,
+ Detail = DetailPage
+ };
+
+ //FIRST CONTENT PAGE
+ FirstContentPage = new ContentPage()
+ {
+ Title = "First Content Page",
+ BackgroundColor = Color.FromHex("#e74c3c")
+ };
+ var firstContentPageLayout = new StackLayout();
+ var firstContentPageButton = new Button()
+ {
+ Text = "Push Modal To Master-Detail Page",
+ AutomationId = "btnPushModal",
+ BackgroundColor = Color.FromHex("#ecf0f1"),
+ TextColor = Color.Black
+ };
+ firstContentPageButton.Clicked += async (sender, args) =>
+ {
+ await Navigation.PushModalAsync(HomePage);
+ };
+ firstContentPageLayout.Children.Add(firstContentPageButton);
+ FirstContentPage.Content = firstContentPageLayout;
+
+
+ }
+
+#if UITEST
+ [Test]
+ public void Bugzilla32902Test ()
+ {
+ var appIos = RunningApp as iOSApp;
+ if (appIos != null) {
+ if(appIos.Device.IsTablet)
+ {
+ RunningApp.Tap (q => q.Marked ("btnNext"));
+ RunningApp.Tap (q => q.Marked ("btnPushModal"));
+ RunningApp.Tap (q => q.Marked ("Master"));
+ RunningApp.Tap (q => q.Marked ("btnPop"));
+ }
+ }
+ }
+#endif
+ }
+}