diff options
Diffstat (limited to 'Xamarin.Forms.Core.UITests.Shared/Tests/RootGalleryUITests.cs')
-rw-r--r-- | Xamarin.Forms.Core.UITests.Shared/Tests/RootGalleryUITests.cs | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/Xamarin.Forms.Core.UITests.Shared/Tests/RootGalleryUITests.cs b/Xamarin.Forms.Core.UITests.Shared/Tests/RootGalleryUITests.cs new file mode 100644 index 00000000..b55fc23e --- /dev/null +++ b/Xamarin.Forms.Core.UITests.Shared/Tests/RootGalleryUITests.cs @@ -0,0 +1,93 @@ +using NUnit.Framework; +using System.Collections.Generic; +using System.Linq; + +namespace Xamarin.Forms.Core.UITests +{ + internal sealed class RootPageModel + { + public string ButtonId { get; private set; } + + public string PageId { get; private set; } + + public bool IsModal { get; private set; } + + public RootPageModel(string buttonId, string pageId, bool isModal = false) + { + ButtonId = buttonId; + PageId = pageId; + IsModal = isModal; + } + } + + [TestFixture] + [Category(UITestCategories.RootGallery)] + internal class RootGalleryUITests : BaseTestFixture + { + readonly IEnumerable<RootPageModel> rootPages; + + public RootGalleryUITests() + { + string[] ids = + { + "Content", + "Nav->Content", + "MDP->Nav->Content", + "Tab->Content", + "Tab->MDP->Nav->Content", + "Tab->Nav->Content", + "Tab(Many)->Nav->Content", + "Nav->Tab->Content(BAD IDEA)", + "Nav->Tab(Many)->Content(BAD IDEA)", + "MDP->Nav->Tab->Content(BAD IDEA)" + }; + string[] modalIds = + { + "(Modal)Content", + "(Modal)Nav->Content", + "(Modal)MDP->Nav->Content", + "(Modal)Tab->Content", + "(Modal)Tab->MDP->Nav->Content", + "(Modal)Tab->Nav->Content", + "(Modal)Tab(Many)->Nav->Content", + "(Modal)Nav->Tab->Content(BAD IDEA)", + "(Modal)Nav->Tab(Many)->Content(BAD IDEA)", + "(Modal)MDP->Nav->Tab->Content(BAD IDEA)", + }; + + rootPages = + (from id in ids + select new RootPageModel(id + "ButtonId", id + "PageId")).Union( + from id in modalIds + select new RootPageModel(id + "ButtonId", id + "PageId", true)); + } + + protected override void NavigateToGallery() + { + App.NavigateToGallery(GalleryQueries.RootPagesGallery); + } + + [Test] + [Ignore("Ignore while we dont't have a response from XTC team why this fails some times")] + public void VisitEachPage() + { + foreach (var page in rootPages) + { + var scrollViewArea = App.Query(q => q.Marked("ChoosePageScrollView")).First().Rect; + App.ScrollForElement(string.Format("* marked:'{0}'", page.ButtonId), + new Drag(scrollViewArea, Drag.Direction.BottomToTop, Drag.DragLength.Long)); + App.Tap(q => q.Marked(page.ButtonId)); + + bool ios = false; +#if __IOS__ + ios = true; +#endif + + if (!page.IsModal || ios) + App.WaitForElement(q => q.Marked(page.PageId)); + + App.Screenshot("Page: " + page.PageId); + } + } + } +}
\ No newline at end of file |