Skip to content

Commit 345445b

Browse files
committed
Add Test Navigation_FromModal
1 parent f87e518 commit 345445b

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

tests/Maui/Prism.DryIoc.Maui.Tests/Fixtures/Navigation/NavigationTests.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -610,6 +610,30 @@ public async Task Navigation_FromFlyoutPageUsingRoute()
610610
Assert.IsType<MockViewB>(mockHome.Detail);
611611
}
612612

613+
[Fact]
614+
public async Task Navigation_FromModal()
615+
{
616+
var mauiApp = CreateBuilder(prism => prism.CreateWindow("NavigationPage/MockViewA"))
617+
.Build();
618+
var window = GetWindow(mauiApp);
619+
var navigationPage = (NavigationPage)window.Page;
620+
var currentNavigationStackUri = string.Join("/", navigationPage.Navigation.NavigationStack.Select(v => v.GetType().Name));
621+
Assert.Equal("MockViewA", currentNavigationStackUri);
622+
623+
var navigationService = Prism.Navigation.Xaml.Navigation.GetNavigationService(window.CurrentPage);
624+
await navigationService.NavigateAsync("MockViewB/MockViewC", new NavigationParameters { { KnownNavigationParameters.UseModalNavigation, true } });
625+
var currentModalStackUri = string.Join("/", window.CurrentPage.Navigation.ModalStack.Select(v => v.GetType().Name));
626+
Assert.Equal("MockViewB/MockViewC", currentModalStackUri);
627+
628+
var result = await navigationService.NavigateFromAsync("MockViewB", UriParsingHelper.Parse("MockViewD"), null);
629+
630+
Assert.True(result.Success);
631+
currentNavigationStackUri = string.Join("/", navigationPage.Navigation.NavigationStack.Select(v => v.GetType().Name));
632+
Assert.Equal("MockViewA", currentNavigationStackUri);
633+
currentModalStackUri = string.Join("/", navigationPage.Navigation.ModalStack.Select(v => v.GetType().Name));
634+
Assert.Equal("MockViewB/MockViewD", currentModalStackUri);
635+
}
636+
613637
[Theory]
614638
[InlineData("MockViewA", "MockViewB", null)]
615639
[InlineData("NavigationPage/MockViewA", "MockViewB?useModalNavigation=true", true)]

0 commit comments

Comments
 (0)