diff options
Diffstat (limited to 'Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla30353.cs')
-rw-r--r-- | Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla30353.cs | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla30353.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla30353.cs new file mode 100644 index 00000000..56c5ef87 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla30353.cs @@ -0,0 +1,113 @@ +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, 30353, "MasterDetailPage.IsPresentedChanged is not raised")] + public class Bugzilla30353 : TestMasterDetailPage + { + protected override void Init () + { + var lbl = new Label { + HorizontalOptions = LayoutOptions.CenterAndExpand, + VerticalOptions = LayoutOptions.CenterAndExpand, + Text = "Detail" + }; + + #if !UITEST + if (App.IOSVersion == 7) { + lbl.Text = "Don't run"; + } + #endif + + var lblMaster = new Label { + HorizontalOptions = LayoutOptions.CenterAndExpand, + VerticalOptions = LayoutOptions.CenterAndExpand, + Text = "Master" + }; + var btn = new Button () { + Text = "Toggle" + }; + var btn1 = new Button () { + Text = "Toggle" + }; + + btn.Clicked += (object sender, EventArgs e) => IsPresented = !IsPresented; + btn1.Clicked += (object sender, EventArgs e) => IsPresented = !IsPresented; + + var stacklayout = new StackLayout (); + stacklayout.Children.Add (lbl); + stacklayout.Children.Add (btn); + + var stacklayout1 = new StackLayout (); + stacklayout1.Children.Add (lblMaster); + stacklayout1.Children.Add (btn1); + + Master = new ContentPage { + Title = "IsPresentedChanged Test", + BackgroundColor = Color.Green, + Content = stacklayout1 + }; + Detail = new ContentPage { + BackgroundColor = Color.Gray, + Content = stacklayout + }; + MasterBehavior = MasterBehavior.Popover; + IsPresentedChanged += (s, e) => + lblMaster.Text = lbl.Text = string.Format ("The Master is now {0}", IsPresented ? "visible" : "invisible"); + } + + #if UITEST + [Test] + public void Bugzilla30353Test () + { + var dontRun = RunningApp.Query (q => q.Marked ("Don't run")); + if (dontRun.Length > 0) + { + return; + } + RunningApp.SetOrientationPortrait (); + RunningApp.Screenshot ("Portrait"); + RunningApp.Tap (q => q.Marked ("Toggle")); + RunningApp.Screenshot ("Portrait Visible"); + RunningApp.WaitForElement (q => q.Marked ("The Master is now visible")); + if (RunningApp is iOSApp) + RunningApp.Tap (q => q.Marked ("Toggle")); + else + RunningApp.Back (); + RunningApp.Screenshot ("Portrait Invisible"); + RunningApp.WaitForElement (q => q.Marked ("The Master is now invisible")); + RunningApp.SetOrientationLandscape (); + RunningApp.Screenshot ("Landscape Invisible"); + RunningApp.WaitForElement (q => q.Marked ("The Master is now invisible")); + RunningApp.Tap (q => q.Marked ("Toggle")); + RunningApp.Screenshot ("Landscape Visible"); + RunningApp.WaitForElement (q => q.Marked ("The Master is now visible")); + if (RunningApp is iOSApp) + RunningApp.Tap (q => q.Marked ("Toggle")); + else + RunningApp.Back (); + RunningApp.Screenshot ("Landscape InVisible"); + RunningApp.WaitForElement (q => q.Marked ("The Master is now invisible")); + RunningApp.SetOrientationPortrait (); + RunningApp.Tap (q => q.Marked ("Toggle")); + RunningApp.Screenshot ("Portrait Visible"); + RunningApp.WaitForElement (q => q.Marked ("The Master is now visible")); + if (RunningApp is iOSApp) + RunningApp.Tap (q => q.Marked ("Toggle")); + else + RunningApp.Back (); + RunningApp.Screenshot ("Portrait Invisible"); + RunningApp.WaitForElement (q => q.Marked ("The Master is now invisible")); + RunningApp.SetOrientationLandscape (); + } +#endif + } +} |