public async Task TestPopToRoot(bool useMaui) { var nav = new TestNavigationPage(useMaui); bool signaled = false; nav.PoppedToRoot += (sender, args) => signaled = true; var root = new ContentPage { Content = new View() }; var child1 = new ContentPage { Content = new View() }; var child2 = new ContentPage { Content = new View() }; await nav.PushAsync(root); await nav.PushAsync(child1); await nav.PushAsync(child2); await nav.PopToRootAsync(); Assert.True(signaled); Assert.AreSame(root, nav.RootPage); Assert.AreSame(root, nav.CurrentPage); Assert.AreSame(nav.RootPage, nav.CurrentPage); }
public async Task TestPopToRootEventArgs(bool useMaui) { var nav = new TestNavigationPage(useMaui); List <Page> poppedChildren = null; nav.PoppedToRoot += (sender, args) => poppedChildren = (args as PoppedToRootEventArgs).PoppedPages.ToList(); var root = new ContentPage { Content = new View() }; var child1 = new ContentPage { Content = new View() }; var child2 = new ContentPage { Content = new View() }; await nav.PushAsync(root); await nav.PushAsync(child1); await nav.PushAsync(child2); await nav.PopToRootAsync(); Assert.IsNotNull(poppedChildren); Assert.AreEqual(2, poppedChildren.Count); Assert.Contains(child1, poppedChildren); Assert.Contains(child2, poppedChildren); Assert.AreSame(root, nav.RootPage); Assert.AreSame(root, nav.CurrentPage); Assert.AreSame(nav.RootPage, nav.CurrentPage); }
public async Task NavigationPagePopToRoot(bool useMaui) { var firstPage = new LCPage(); var poppedPage = new LCPage(); NavigationPage navigationPage = new TestNavigationPage(useMaui, firstPage); await navigationPage.PushAsync(new ContentPage()); await navigationPage.PushAsync(new ContentPage()); await navigationPage.PushAsync(poppedPage); await navigationPage.PopToRootAsync(); Assert.IsNotNull(poppedPage.NavigatingFromArgs); Assert.AreEqual(poppedPage, firstPage.NavigatedToArgs.PreviousPage); Assert.AreEqual(firstPage, poppedPage.NavigatedFromArgs.DestinationPage); }