Пример #1
0
        public async Task RemoveLastPage(bool useMaui)
        {
            ContentPage initialPage = new ContentPage();
            ContentPage pushedPage  = new ContentPage();

            ContentPage initialPageAppearing = null;
            ContentPage pageDisappeared      = null;

            NavigationPage nav = new TestNavigationPage(useMaui, initialPage);

            _ = new Window(nav);
            nav.SendAppearing();

            initialPage.Appearing += (sender, _)
                                     => initialPageAppearing = (ContentPage)sender;

            pushedPage.Disappearing += (sender, _)
                                       => pageDisappeared = (ContentPage)sender;

            await nav.PushAsync(pushedPage);

            Assert.IsNull(initialPageAppearing);
            Assert.IsNull(pageDisappeared);

            nav.Navigation.RemovePage(pushedPage);

            Assert.AreEqual(initialPageAppearing, initialPage);
            Assert.AreEqual(pageDisappeared, pushedPage);
        }
Пример #2
0
        public async Task PopLifeCycle(bool useMaui)
        {
            ContentPage initialPage = new ContentPage();
            ContentPage pushedPage  = new ContentPage();

            ContentPage rootPageFiresAppearingAfterPop = null;
            ContentPage pageDisappeared = null;

            NavigationPage nav = new TestNavigationPage(useMaui, initialPage);

            _ = new Window(nav);
            nav.SendAppearing();

            initialPage.Appearing += (sender, _)
                                     => rootPageFiresAppearingAfterPop = (ContentPage)sender;

            pushedPage.Disappearing += (sender, _)
                                       => pageDisappeared = (ContentPage)sender;

            await nav.PushAsync(pushedPage);

            Assert.IsNull(rootPageFiresAppearingAfterPop);
            Assert.IsNull(pageDisappeared);

            await nav.PopAsync();

            Assert.AreEqual(initialPage, rootPageFiresAppearingAfterPop);
            Assert.AreEqual(pushedPage, pageDisappeared);
        }
Пример #3
0
        public async Task RemoveInnerPage(bool useMaui)
        {
            ContentPage initialPage = new ContentPage();
            ContentPage pushedPage  = new ContentPage();

            ContentPage initialPageAppearing = null;
            ContentPage pageDisappeared      = null;

            NavigationPage nav = new TestNavigationPage(useMaui, initialPage);

            _ = new Window(nav);
            nav.SendAppearing();

            var pageToRemove = new ContentPage();
            await nav.PushAsync(pageToRemove);

            await nav.PushAsync(pushedPage);


            initialPage.Appearing += (__, _)
                                     => Assert.Fail("Appearing Fired Incorrectly");

            pushedPage.Disappearing += (__, _)
                                       => Assert.Fail("Appearing Fired Incorrectly");

            nav.Navigation.RemovePage(pageToRemove);
        }
Пример #4
0
        public async Task PushLifeCycle(bool useMaui)
        {
            ContentPage initialPage = new ContentPage();
            ContentPage pushedPage  = new ContentPage();

            ContentPage initialPageDisappear = null;
            ContentPage pageAppearing        = null;

            initialPage.Disappearing += (sender, _)
                                        => initialPageDisappear = (ContentPage)sender;

            pushedPage.Appearing += (sender, _)
                                    => pageAppearing = (ContentPage)sender;

            NavigationPage nav = new TestNavigationPage(useMaui, initialPage);

            _ = new Window(nav);
            nav.SendAppearing();

            await nav.PushAsync(pushedPage);

            Assert.AreEqual(initialPageDisappear, initialPage);
            Assert.AreEqual(pageAppearing, pushedPage);
        }