Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }