diff options
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.cs | 131 |
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 + } +} |