diff options
Diffstat (limited to 'Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2964.cs')
-rw-r--r-- | Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2964.cs | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2964.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2964.cs new file mode 100644 index 00000000..e86dad15 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2964.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Linq; + +using Xamarin.Forms.CustomAttributes; + +#if UITEST +using Xamarin.UITest; +using NUnit.Framework; +#endif + +namespace Xamarin.Forms.Controls +{ + [Preserve (AllMembers = true)] + [Issue (IssueTracker.Github, 2964, "TabbedPage toolbar item crash")] + public class Issue2964 : TestMasterDetailPage + { + public class ModalPage : ContentPage + { + public ModalPage () + { + Content = new Button { + AutomationId = "ModalPagePopButton", + Text ="Pop Me", + Command = new Command (async () => { + MessagingCenter.Send (this, "update"); + await Navigation.PopModalAsync (); + }) + }; + } + } + + public class Page1 : ContentPage + { + public Page1 () + { + Title = "Testpage 1"; + + MessagingCenter.Subscribe<ModalPage> (this, "update", sender => { + BlowUp (); + }); + + Content = new Button { + AutomationId = "Page1PushModalButton", + Text = "press me", + Command = new Command (async () => await Navigation.PushModalAsync (new ModalPage ())) + }; + } + + void BlowUp () + { + Content = new Label { + AutomationId = "Page1Label", + Text = "Page1" + }; + } + } + + protected override void Init () + { + Title = "Test"; + + Master = new ContentPage { + Title = "Master", + Content = new Button { + AutomationId = "MasterButton", + Text = "Make a new page", + Command= new Command(() => { + Detail = new Page1 (); + IsPresented = false; + }) + } + }; + + Detail = new Page1 (); + + IsPresented = true; + } + +#if UITEST + [Test] + public void Issue2964Test () + { + RunningApp.Screenshot ("I am at Issue 2964"); + + RunningApp.Tap (q => q.Marked ("MasterButton")); + RunningApp.Screenshot ("Create new Detail instance"); + + RunningApp.Tap (q => q.Marked ("Page1PushModalButton")); + RunningApp.Screenshot ("Modal is pushed"); + + RunningApp.Tap (q => q.Marked ("ModalPagePopButton")); + RunningApp.Screenshot ("Modal is popped"); + + RunningApp.WaitForElement (q => q.Marked ("Page1Label")); + RunningApp.Screenshot ("Didn't blow up! :)"); + } +#endif + } +} |