[iOS26]Fix BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate UITest fails#34890
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 34890Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 34890" |
There was a problem hiding this comment.
Pull request overview
Fixes an iOS 26+/MacCatalyst 26+ Shell back-navigation regression where a back tap can leave ShellSectionRenderer in a “pending pop” state, causing subsequent back navigation attempts to be blocked.
Changes:
- Reset
_sendPopPendingwhenBackButtonBehavior.IsEnabledisfalseand the back tap is ignored inSendPop().
|
/azp run maui-pr-uitests |
|
Azure Pipelines successfully started running 1 pipeline(s). |
🚦 Gate — Test Before and After Fix
🚦 Gate Session —
|
| Test | Without Fix (expect FAIL) | With Fix (expect PASS) |
|---|---|---|
🖥️ ShellNavigationFeatureTests ShellNavigationFeatureTests |
❌ PASS — 436s | ✅ PASS — 294s |
🔴 Without fix — 🖥️ ShellNavigationFeatureTests: PASS ❌ · 436s
(truncated to last 15,000 chars)
.13867295
Controls.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Core/Debug/net10.0/Microsoft.Maui.Controls.dll
UITest.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Core/Debug/net10.0/UITest.Core.dll
VisualTestUtils -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/VisualTestUtils/Debug/netstandard2.0/VisualTestUtils.dll
UITest.NUnit -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.NUnit/Debug/net10.0/UITest.NUnit.dll
VisualTestUtils.MagickNet -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/VisualTestUtils.MagickNet/Debug/netstandard2.0/VisualTestUtils.MagickNet.dll
UITest.Appium -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Appium/Debug/net10.0/UITest.Appium.dll
UITest.Analyzers -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Analyzers/Debug/netstandard2.0/UITest.Analyzers.dll
Controls.TestCases.iOS.Tests -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll
Test run for /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll (.NETCoreApp,Version=v10.0)
VSTest version 18.0.1 (arm64)
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
/Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 10.0.0)
[xUnit.net 00:00:00.05] Discovering: Controls.TestCases.iOS.Tests
[xUnit.net 00:00:00.17] Discovered: Controls.TestCases.iOS.Tests
NUnit Adapter 4.5.0.0: Test execution started
Running selected tests in /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll
NUnit3TestExecutor discovered 52 of 52 NUnit test cases using Current Discovery mode, Non-Explicit run
>>>>> 4/17/2026 2:43:33 AM FixtureSetup for ShellNavigationFeatureTests(iOS)
>>>>> 4/17/2026 2:43:40 AM VerifyShellProperties_InitialState Start
>>>>> 4/17/2026 2:43:42 AM VerifyShellProperties_InitialState Stop
>>>>> 4/17/2026 2:43:42 AM VerifyShellProperties_FlyoutSwitch Start
Passed VerifyShellProperties_InitialState [1 s]
>>>>> 4/17/2026 2:43:45 AM VerifyShellProperties_FlyoutSwitch Stop
Passed VerifyShellProperties_FlyoutSwitch [3 s]
>>>>> 4/17/2026 2:43:45 AM VerifyShellProperties_ContentSwitch Start
>>>>> 4/17/2026 2:43:50 AM VerifyShellProperties_ContentSwitch Stop
Passed VerifyShellProperties_ContentSwitch [5 s]
>>>>> 4/17/2026 2:43:50 AM VerifyShellProperties_TabSwitch Start
>>>>> 4/17/2026 2:43:56 AM VerifyShellProperties_TabSwitch Stop
Passed VerifyShellProperties_TabSwitch [5 s]
>>>>> 4/17/2026 2:43:56 AM BackButton_TapBackArrow_NoCommand_NavigatesBack Start
>>>>> 4/17/2026 2:43:58 AM BackButton_TapBackArrow_NoCommand_NavigatesBack Stop
Passed BackButton_TapBackArrow_NoCommand_NavigatesBack [2 s]
>>>>> 4/17/2026 2:43:58 AM RelativeRoute_Detail1ToNavTest1 Start
>>>>> 4/17/2026 2:44:00 AM RelativeRoute_Detail1ToNavTest1 Stop
Passed RelativeRoute_Detail1ToNavTest1 [2 s]
>>>>> 4/17/2026 2:44:00 AM ForwardNavigation_NavTest1ToNavTest2 Start
>>>>> 4/17/2026 2:44:01 AM ForwardNavigation_NavTest1ToNavTest2 Stop
>>>>> 4/17/2026 2:44:01 AM BackAndForwardNavigation_NavTest2ToNavTest3 Start
Passed ForwardNavigation_NavTest1ToNavTest2 [891 ms]
>>>>> 4/17/2026 2:44:02 AM BackAndForwardNavigation_NavTest2ToNavTest3 Stop
>>>>> 4/17/2026 2:44:02 AM DoubleBackNavigation_NavTest3ToDetail1 Start
>>>>> 4/17/2026 2:44:03 AM DoubleBackNavigation_NavTest3ToDetail1 Stop
>>>>> 4/17/2026 2:44:03 AM AbsoluteRoute_Detail1ToPage2 Start
Passed BackAndForwardNavigation_NavTest2ToNavTest3 [896 ms]
Passed DoubleBackNavigation_NavTest3ToDetail1 [891 ms]
>>>>> 4/17/2026 2:44:04 AM AbsoluteRoute_Detail1ToPage2 Stop
>>>>> 4/17/2026 2:44:04 AM ContextualRoute_FromDetail1_SubDetailShowsDetail1Context Start
Passed AbsoluteRoute_Detail1ToPage2 [972 ms]
>>>>> 4/17/2026 2:44:10 AM ContextualRoute_FromDetail1_SubDetailShowsDetail1Context Stop
Passed ContextualRoute_FromDetail1_SubDetailShowsDetail1Context [6 s]
>>>>> 4/17/2026 2:44:10 AM ContextualRoute_FromDetail2_SubDetailShowsDetail2Context Start
>>>>> 4/17/2026 2:44:13 AM ContextualRoute_FromDetail2_SubDetailShowsDetail2Context Stop
Passed ContextualRoute_FromDetail2_SubDetailShowsDetail2Context [2 s]
>>>>> 4/17/2026 2:44:13 AM RouteRegistration_UnregisterRoute_NavigationFails Start
>>>>> 4/17/2026 2:44:14 AM RouteRegistration_UnregisterRoute_NavigationFails Stop
>>>>> 4/17/2026 2:44:14 AM RouteRegistration_ReRegisterRoute_NavigationSucceeds Start
Passed RouteRegistration_UnregisterRoute_NavigationFails [1 s]
>>>>> 4/17/2026 2:44:17 AM RouteRegistration_ReRegisterRoute_NavigationSucceeds Stop
Passed RouteRegistration_ReRegisterRoute_NavigationSucceeds [2 s]
>>>>> 4/17/2026 2:44:17 AM CancelNavigation_NavigationIsBlocked_StaysOnMain Start
>>>>> 4/17/2026 2:44:21 AM CancelNavigation_NavigationIsBlocked_StaysOnMain Stop
Passed CancelNavigation_NavigationIsBlocked_StaysOnMain [4 s]
>>>>> 4/17/2026 2:44:21 AM DeferralNavigation_NavigationCompletes_AfterDelay Start
>>>>> 4/17/2026 2:44:29 AM DeferralNavigation_NavigationCompletes_AfterDelay Stop
Passed DeferralNavigation_NavigationCompletes_AfterDelay [8 s]
>>>>> 4/17/2026 2:44:29 AM TabStack_OnPushAsync_EnterOptionsPage_TabStackCountIsTwo Start
>>>>> 4/17/2026 2:44:31 AM TabStack_OnPushAsync_EnterOptionsPage_TabStackCountIsTwo Stop
Passed TabStack_OnPushAsync_EnterOptionsPage_TabStackCountIsTwo [1 s]
>>>>> 4/17/2026 2:44:31 AM TabStack_OnPushAsync_SubPage1_TabStackCountIsThree Start
>>>>> 4/17/2026 2:44:33 AM TabStack_OnPushAsync_SubPage1_TabStackCountIsThree Stop
>>>>> 4/17/2026 2:44:33 AM TabStack_OnPushAsync_SubPage2_TabStackCountIsFour Start
Passed TabStack_OnPushAsync_SubPage1_TabStackCountIsThree [1 s]
>>>>> 4/17/2026 2:44:34 AM TabStack_OnPushAsync_SubPage2_TabStackCountIsFour Stop
>>>>> 4/17/2026 2:44:34 AM TabStack_OnPopAsync_SubPage2_TabStackCountIsThree Start
Passed TabStack_OnPushAsync_SubPage2_TabStackCountIsFour [1 s]
>>>>> 4/17/2026 2:44:35 AM TabStack_OnPopAsync_SubPage2_TabStackCountIsThree Stop
>>>>> 4/17/2026 2:44:35 AM TabStack_OnPopToRootAsync_ReturnsToMainPage Start
Passed TabStack_OnPopAsync_SubPage2_TabStackCountIsThree [1 s]
>>>>> 4/17/2026 2:44:36 AM TabStack_OnPopToRootAsync_ReturnsToMainPage Stop
>>>>> 4/17/2026 2:44:36 AM TabStack_OnInsertPageBefore_InsertsPageBelowCurrentPage Start
Passed TabStack_OnPopToRootAsync_ReturnsToMainPage [1 s]
>>>>> 4/17/2026 2:44:39 AM TabStack_OnInsertPageBefore_InsertsPageBelowCurrentPage Stop
>>>>> 4/17/2026 2:44:39 AM TabStack_OnRemovePage_RemovesInsertedPage_CountBackToTwo Start
Passed TabStack_OnInsertPageBefore_InsertsPageBelowCurrentPage [2 s]
>>>>> 4/17/2026 2:44:40 AM TabStack_OnRemovePage_RemovesInsertedPage_CountBackToTwo Stop
>>>>> 4/17/2026 2:44:40 AM TabStack_OnRemovePage_NoOp_WhenNothingToRemove Start
Passed TabStack_OnRemovePage_RemovesInsertedPage_CountBackToTwo [1 s]
>>>>> 4/17/2026 2:44:41 AM TabStack_OnRemovePage_NoOp_WhenNothingToRemove Stop
>>>>> 4/17/2026 2:44:41 AM TabStack_GetNavigationStack_TabStackMatchesNavigationStack Start
Passed TabStack_OnRemovePage_NoOp_WhenNothingToRemove [931 ms]
>>>>> 4/17/2026 2:44:46 AM TabStack_GetNavigationStack_TabStackMatchesNavigationStack Stop
Passed TabStack_GetNavigationStack_TabStackMatchesNavigationStack [4 s]
>>>>> 4/17/2026 2:44:46 AM NavEvents_Pop_NavigatingEvent_SourceIsPopAndCurrentIsPreviousPage Start
>>>>> 4/17/2026 2:44:50 AM NavEvents_Pop_NavigatingEvent_SourceIsPopAndCurrentIsPreviousPage Stop
Passed NavEvents_Pop_NavigatingEvent_SourceIsPopAndCurrentIsPreviousPage [3 s]
>>>>> 4/17/2026 2:44:50 AM NavEvents_Pop_NavigatedEvent_CurrentIsLandedPagePreviousIsPopped Start
>>>>> 4/17/2026 2:44:50 AM NavEvents_Pop_NavigatedEvent_CurrentIsLandedPagePreviousIsPopped Stop
>>>>> 4/17/2026 2:44:50 AM NavEvents_Push_NavigatingEvent_SourceIsPushAndCurrentIsPushedFromPage Start
Passed NavEvents_Pop_NavigatedEvent_CurrentIsLandedPagePreviousIsPopped [594 ms]
>>>>> 4/17/2026 2:44:52 AM NavEvents_Push_NavigatingEvent_SourceIsPushAndCurrentIsPushedFromPage Stop
>>>>> 4/17/2026 2:44:52 AM NavEvents_Push_NavigatedEvent_CurrentIsNewPagePreviousIsSourcePage Start
>>>>> 4/17/2026 2:44:52 AM NavEvents_Push_NavigatedEvent_CurrentIsNewPagePreviousIsSourcePage Stop
>>>>> 4/17/2026 2:44:52 AM NavEvents_ShellItemChanged_NavigatingEvent_SourceIsShellItemChanged Start
Passed NavEvents_Push_NavigatingEvent_SourceIsPushAndCurrentIsPushedFromPage [1 s]
Passed NavEvents_Push_NavigatedEvent_CurrentIsNewPagePreviousIsSourcePage [526 ms]
>>>>> 4/17/2026 2:44:57 AM NavEvents_ShellItemChanged_NavigatingEvent_SourceIsShellItemChanged Stop
Passed NavEvents_ShellItemChanged_NavigatingEvent_SourceIsShellItemChanged [4 s]
>>>>> 4/17/2026 2:44:57 AM NavEvents_ShellItemChanged_NavigatedEvent_CurrentIsPage2PreviousIsMain Start
>>>>> 4/17/2026 2:44:58 AM NavEvents_ShellItemChanged_NavigatedEvent_CurrentIsPage2PreviousIsMain Stop
>>>>> 4/17/2026 2:44:58 AM NavEvents_GoToAsyncAbsoluteRoute_NavigatingEvent_SourceIsShellItemChanged Start
Passed NavEvents_ShellItemChanged_NavigatedEvent_CurrentIsPage2PreviousIsMain [505 ms]
>>>>> 4/17/2026 2:44:59 AM NavEvents_GoToAsyncAbsoluteRoute_NavigatingEvent_SourceIsShellItemChanged Stop
>>>>> 4/17/2026 2:44:59 AM NavEvents_GoToAsyncAbsoluteRoute_NavigatedEvent_SourceIsShellItemChanged Start
>>>>> 4/17/2026 2:44:59 AM NavEvents_GoToAsyncAbsoluteRoute_NavigatedEvent_SourceIsShellItemChanged Stop
>>>>> 4/17/2026 2:44:59 AM NavEvents_ShellContentChanged_NavigatingEvent_SourceIsShellContentChanged Start
Passed NavEvents_GoToAsyncAbsoluteRoute_NavigatingEvent_SourceIsShellItemChanged [1 s]
Passed NavEvents_GoToAsyncAbsoluteRoute_NavigatedEvent_SourceIsShellItemChanged [317 ms]
>>>>> 4/17/2026 2:45:02 AM NavEvents_ShellContentChanged_NavigatingEvent_SourceIsShellContentChanged Stop
Passed NavEvents_ShellContentChanged_NavigatingEvent_SourceIsShellContentChanged [3 s]
>>>>> 4/17/2026 2:45:02 AM NavEvents_ShellContentChanged_NavigatedEvent_CurrentIsContent2PreviousIsContent1 Start
>>>>> 4/17/2026 2:45:04 AM NavEvents_ShellContentChanged_NavigatedEvent_CurrentIsContent2PreviousIsContent1 Stop
Passed NavEvents_ShellContentChanged_NavigatedEvent_CurrentIsContent2PreviousIsContent1 [1 s]
>>>>> 4/17/2026 2:45:04 AM NavEvents_ShellSectionChanged_NavigatingEvent_SourceIsShellSectionChanged Start
>>>>> 4/17/2026 2:45:08 AM NavEvents_ShellSectionChanged_NavigatingEvent_SourceIsShellSectionChanged Stop
Passed NavEvents_ShellSectionChanged_NavigatingEvent_SourceIsShellSectionChanged [3 s]
>>>>> 4/17/2026 2:45:08 AM NavEvents_ShellSectionChanged_NavigatedEvent_CurrentIsTabBPreviousIsTabA Start
>>>>> 4/17/2026 2:45:09 AM NavEvents_ShellSectionChanged_NavigatedEvent_CurrentIsTabBPreviousIsTabA Stop
Passed NavEvents_ShellSectionChanged_NavigatedEvent_CurrentIsTabBPreviousIsTabA [1 s]
>>>>> 4/17/2026 2:45:09 AM NavEvents_PopToRoot_NavigatingEvent_SourceIsPopToRoot Start
>>>>> 4/17/2026 2:45:13 AM NavEvents_PopToRoot_NavigatingEvent_SourceIsPopToRoot Stop
Passed NavEvents_PopToRoot_NavigatingEvent_SourceIsPopToRoot [3 s]
>>>>> 4/17/2026 2:45:13 AM NavEvents_PopToRoot_NavigatedEvent_CurrentIsMainSourceIsPopToRoot Start
>>>>> 4/17/2026 2:45:13 AM NavEvents_PopToRoot_NavigatedEvent_CurrentIsMainSourceIsPopToRoot Stop
>>>>> 4/17/2026 2:45:13 AM PassData_StringQueryParam_ReceivedByIQueryAttributable Start
Passed NavEvents_PopToRoot_NavigatedEvent_CurrentIsMainSourceIsPopToRoot [326 ms]
>>>>> 4/17/2026 2:45:19 AM PassData_StringQueryParam_ReceivedByIQueryAttributable Stop
Passed PassData_StringQueryParam_ReceivedByIQueryAttributable [5 s]
>>>>> 4/17/2026 2:45:19 AM PassData_DictionaryParam_ReceivedByIQueryAttributable Start
>>>>> 4/17/2026 2:45:23 AM PassData_DictionaryParam_ReceivedByIQueryAttributable Stop
Passed PassData_DictionaryParam_ReceivedByIQueryAttributable [4 s]
>>>>> 4/17/2026 2:45:23 AM PassData_SingleUseParams_ReceivedByIQueryAttributable Start
>>>>> 4/17/2026 2:45:28 AM PassData_SingleUseParams_ReceivedByIQueryAttributable Stop
Passed PassData_SingleUseParams_ReceivedByIQueryAttributable [4 s]
>>>>> 4/17/2026 2:45:28 AM PassData_StringQueryParam_BothLabelsReceiveSameValue Start
>>>>> 4/17/2026 2:45:33 AM PassData_StringQueryParam_BothLabelsReceiveSameValue Stop
Passed PassData_StringQueryParam_BothLabelsReceiveSameValue [4 s]
>>>>> 4/17/2026 2:45:33 AM PassData_BackwardsNavigation_PassesDataToPreviousPage Start
>>>>> 4/17/2026 2:45:35 AM PassData_BackwardsNavigation_PassesDataToPreviousPage Stop
Passed PassData_BackwardsNavigation_PassesDataToPreviousPage [2 s]
>>>>> 4/17/2026 2:45:35 AM PassData_MultipleStringParams_ReceivedByIQueryAttributable Start
>>>>> 4/17/2026 2:45:43 AM PassData_MultipleStringParams_ReceivedByIQueryAttributable Stop
Passed PassData_MultipleStringParams_ReceivedByIQueryAttributable [7 s]
>>>>> 4/17/2026 2:45:43 AM PassData_IQueryAttributable_ReceivesDecodedValues Start
>>>>> 4/17/2026 2:45:48 AM PassData_IQueryAttributable_ReceivesDecodedValues Stop
Passed PassData_IQueryAttributable_ReceivesDecodedValues [4 s]
>>>>> 4/17/2026 2:45:48 AM PassData_Dictionary_PersistsWhenNavigatingToIntermediatePageAndBack Start
>>>>> 4/17/2026 2:45:56 AM PassData_Dictionary_PersistsWhenNavigatingToIntermediatePageAndBack Stop
Passed PassData_Dictionary_PersistsWhenNavigatingToIntermediatePageAndBack [8 s]
>>>>> 4/17/2026 2:45:56 AM BackButtonBehavior_TextOverride_CustomTextShownOnBackButton Start
>>>>> 4/17/2026 2:46:02 AM BackButtonBehavior_TextOverride_CustomTextShownOnBackButton Stop
Passed BackButtonBehavior_TextOverride_CustomTextShownOnBackButton [6 s]
>>>>> 4/17/2026 2:46:02 AM BackButtonBehavior_CommandParameter_CommandFiresWithCorrectParameter Start
>>>>> 4/17/2026 2:46:08 AM BackButtonBehavior_CommandParameter_CommandFiresWithCorrectParameter Stop
Passed BackButtonBehavior_CommandParameter_CommandFiresWithCorrectParameter [6 s]
>>>>> 4/17/2026 2:46:08 AM BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate Start
>>>>> 4/17/2026 2:46:17 AM BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate Stop
Passed BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate [8 s]
>>>>> 4/17/2026 2:46:17 AM BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks Start
>>>>> 4/17/2026 2:46:19 AM BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks Stop
Passed BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks [2 s]
>>>>> 4/17/2026 2:46:19 AM BackButtonBehavior_IconOverride_CustomIconShownOnBackButton Start
>>>>> 4/17/2026 2:46:23 AM BackButtonBehavior_IconOverride_CustomIconShownOnBackButton Stop
Passed BackButtonBehavior_IconOverride_CustomIconShownOnBackButton [3 s]
NUnit Adapter 4.5.0.0: Test execution complete
Test Run Successful.
Total tests: 52
Passed: 52
Total time: 3.8609 Minutes
🟢 With fix — 🖥️ ShellNavigationFeatureTests: PASS ✅ · 294s
(truncated to last 15,000 chars)
0-ci+azdo.13867295
Controls.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.Core/Debug/net10.0/Microsoft.Maui.Controls.dll
UITest.Core -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Core/Debug/net10.0/UITest.Core.dll
VisualTestUtils -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/VisualTestUtils/Debug/netstandard2.0/VisualTestUtils.dll
UITest.Appium -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Appium/Debug/net10.0/UITest.Appium.dll
UITest.NUnit -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.NUnit/Debug/net10.0/UITest.NUnit.dll
VisualTestUtils.MagickNet -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/VisualTestUtils.MagickNet/Debug/netstandard2.0/VisualTestUtils.MagickNet.dll
UITest.Analyzers -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/UITest.Analyzers/Debug/netstandard2.0/UITest.Analyzers.dll
Controls.TestCases.iOS.Tests -> /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll
Test run for /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll (.NETCoreApp,Version=v10.0)
VSTest version 18.0.1 (arm64)
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
/Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.2+699d445a1a (64-bit .NET 10.0.0)
[xUnit.net 00:00:00.04] Discovering: Controls.TestCases.iOS.Tests
[xUnit.net 00:00:00.16] Discovered: Controls.TestCases.iOS.Tests
NUnit Adapter 4.5.0.0: Test execution started
Running selected tests in /Users/cloudtest/vss/_work/1/s/artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0/Controls.TestCases.iOS.Tests.dll
NUnit3TestExecutor discovered 52 of 52 NUnit test cases using Current Discovery mode, Non-Explicit run
>>>>> 4/17/2026 2:48:11 AM FixtureSetup for ShellNavigationFeatureTests(iOS)
>>>>> 4/17/2026 2:48:19 AM VerifyShellProperties_InitialState Start
>>>>> 4/17/2026 2:48:20 AM VerifyShellProperties_InitialState Stop
Passed VerifyShellProperties_InitialState [1 s]
>>>>> 4/17/2026 2:48:20 AM VerifyShellProperties_FlyoutSwitch Start
>>>>> 4/17/2026 2:48:24 AM VerifyShellProperties_FlyoutSwitch Stop
Passed VerifyShellProperties_FlyoutSwitch [3 s]
>>>>> 4/17/2026 2:48:24 AM VerifyShellProperties_ContentSwitch Start
>>>>> 4/17/2026 2:48:30 AM VerifyShellProperties_ContentSwitch Stop
Passed VerifyShellProperties_ContentSwitch [5 s]
>>>>> 4/17/2026 2:48:30 AM VerifyShellProperties_TabSwitch Start
>>>>> 4/17/2026 2:48:36 AM VerifyShellProperties_TabSwitch Stop
Passed VerifyShellProperties_TabSwitch [6 s]
>>>>> 4/17/2026 2:48:36 AM BackButton_TapBackArrow_NoCommand_NavigatesBack Start
>>>>> 4/17/2026 2:48:39 AM BackButton_TapBackArrow_NoCommand_NavigatesBack Stop
Passed BackButton_TapBackArrow_NoCommand_NavigatesBack [2 s]
>>>>> 4/17/2026 2:48:39 AM RelativeRoute_Detail1ToNavTest1 Start
>>>>> 4/17/2026 2:48:41 AM RelativeRoute_Detail1ToNavTest1 Stop
Passed RelativeRoute_Detail1ToNavTest1 [2 s]
>>>>> 4/17/2026 2:48:41 AM ForwardNavigation_NavTest1ToNavTest2 Start
>>>>> 4/17/2026 2:48:42 AM ForwardNavigation_NavTest1ToNavTest2 Stop
>>>>> 4/17/2026 2:48:42 AM BackAndForwardNavigation_NavTest2ToNavTest3 Start
Passed ForwardNavigation_NavTest1ToNavTest2 [1 s]
>>>>> 4/17/2026 2:48:43 AM BackAndForwardNavigation_NavTest2ToNavTest3 Stop
>>>>> 4/17/2026 2:48:43 AM DoubleBackNavigation_NavTest3ToDetail1 Start
Passed BackAndForwardNavigation_NavTest2ToNavTest3 [985 ms]
>>>>> 4/17/2026 2:48:44 AM DoubleBackNavigation_NavTest3ToDetail1 Stop
>>>>> 4/17/2026 2:48:44 AM AbsoluteRoute_Detail1ToPage2 Start
>>>>> 4/17/2026 2:48:45 AM AbsoluteRoute_Detail1ToPage2 Stop
>>>>> 4/17/2026 2:48:45 AM ContextualRoute_FromDetail1_SubDetailShowsDetail1Context Start
Passed DoubleBackNavigation_NavTest3ToDetail1 [1 s]
Passed AbsoluteRoute_Detail1ToPage2 [1 s]
>>>>> 4/17/2026 2:48:52 AM ContextualRoute_FromDetail1_SubDetailShowsDetail1Context Stop
Passed ContextualRoute_FromDetail1_SubDetailShowsDetail1Context [6 s]
>>>>> 4/17/2026 2:48:52 AM ContextualRoute_FromDetail2_SubDetailShowsDetail2Context Start
>>>>> 4/17/2026 2:48:55 AM ContextualRoute_FromDetail2_SubDetailShowsDetail2Context Stop
Passed ContextualRoute_FromDetail2_SubDetailShowsDetail2Context [3 s]
>>>>> 4/17/2026 2:48:55 AM RouteRegistration_UnregisterRoute_NavigationFails Start
>>>>> 4/17/2026 2:48:57 AM RouteRegistration_UnregisterRoute_NavigationFails Stop
>>>>> 4/17/2026 2:48:57 AM RouteRegistration_ReRegisterRoute_NavigationSucceeds Start
Passed RouteRegistration_UnregisterRoute_NavigationFails [1 s]
>>>>> 4/17/2026 2:48:59 AM RouteRegistration_ReRegisterRoute_NavigationSucceeds Stop
Passed RouteRegistration_ReRegisterRoute_NavigationSucceeds [2 s]
>>>>> 4/17/2026 2:48:59 AM CancelNavigation_NavigationIsBlocked_StaysOnMain Start
>>>>> 4/17/2026 2:49:05 AM CancelNavigation_NavigationIsBlocked_StaysOnMain Stop
Passed CancelNavigation_NavigationIsBlocked_StaysOnMain [5 s]
>>>>> 4/17/2026 2:49:05 AM DeferralNavigation_NavigationCompletes_AfterDelay Start
>>>>> 4/17/2026 2:49:14 AM DeferralNavigation_NavigationCompletes_AfterDelay Stop
Passed DeferralNavigation_NavigationCompletes_AfterDelay [8 s]
>>>>> 4/17/2026 2:49:14 AM TabStack_OnPushAsync_EnterOptionsPage_TabStackCountIsTwo Start
>>>>> 4/17/2026 2:49:16 AM TabStack_OnPushAsync_EnterOptionsPage_TabStackCountIsTwo Stop
Passed TabStack_OnPushAsync_EnterOptionsPage_TabStackCountIsTwo [2 s]
>>>>> 4/17/2026 2:49:16 AM TabStack_OnPushAsync_SubPage1_TabStackCountIsThree Start
>>>>> 4/17/2026 2:49:17 AM TabStack_OnPushAsync_SubPage1_TabStackCountIsThree Stop
Passed TabStack_OnPushAsync_SubPage1_TabStackCountIsThree [1 s]
>>>>> 4/17/2026 2:49:17 AM TabStack_OnPushAsync_SubPage2_TabStackCountIsFour Start
>>>>> 4/17/2026 2:49:19 AM TabStack_OnPushAsync_SubPage2_TabStackCountIsFour Stop
Passed TabStack_OnPushAsync_SubPage2_TabStackCountIsFour [1 s]
>>>>> 4/17/2026 2:49:19 AM TabStack_OnPopAsync_SubPage2_TabStackCountIsThree Start
>>>>> 4/17/2026 2:49:20 AM TabStack_OnPopAsync_SubPage2_TabStackCountIsThree Stop
>>>>> 4/17/2026 2:49:20 AM TabStack_OnPopToRootAsync_ReturnsToMainPage Start
Passed TabStack_OnPopAsync_SubPage2_TabStackCountIsThree [1 s]
>>>>> 4/17/2026 2:49:22 AM TabStack_OnPopToRootAsync_ReturnsToMainPage Stop
>>>>> 4/17/2026 2:49:22 AM TabStack_OnInsertPageBefore_InsertsPageBelowCurrentPage Start
Passed TabStack_OnPopToRootAsync_ReturnsToMainPage [1 s]
>>>>> 4/17/2026 2:49:24 AM TabStack_OnInsertPageBefore_InsertsPageBelowCurrentPage Stop
Passed TabStack_OnInsertPageBefore_InsertsPageBelowCurrentPage [2 s]
>>>>> 4/17/2026 2:49:24 AM TabStack_OnRemovePage_RemovesInsertedPage_CountBackToTwo Start
>>>>> 4/17/2026 2:49:25 AM TabStack_OnRemovePage_RemovesInsertedPage_CountBackToTwo Stop
>>>>> 4/17/2026 2:49:25 AM TabStack_OnRemovePage_NoOp_WhenNothingToRemove Start
Passed TabStack_OnRemovePage_RemovesInsertedPage_CountBackToTwo [1 s]
>>>>> 4/17/2026 2:49:26 AM TabStack_OnRemovePage_NoOp_WhenNothingToRemove Stop
>>>>> 4/17/2026 2:49:26 AM TabStack_GetNavigationStack_TabStackMatchesNavigationStack Start
Passed TabStack_OnRemovePage_NoOp_WhenNothingToRemove [986 ms]
>>>>> 4/17/2026 2:49:32 AM TabStack_GetNavigationStack_TabStackMatchesNavigationStack Stop
Passed TabStack_GetNavigationStack_TabStackMatchesNavigationStack [5 s]
>>>>> 4/17/2026 2:49:32 AM NavEvents_Pop_NavigatingEvent_SourceIsPopAndCurrentIsPreviousPage Start
>>>>> 4/17/2026 2:49:36 AM NavEvents_Pop_NavigatingEvent_SourceIsPopAndCurrentIsPreviousPage Stop
Passed NavEvents_Pop_NavigatingEvent_SourceIsPopAndCurrentIsPreviousPage [4 s]
>>>>> 4/17/2026 2:49:36 AM NavEvents_Pop_NavigatedEvent_CurrentIsLandedPagePreviousIsPopped Start
>>>>> 4/17/2026 2:49:37 AM NavEvents_Pop_NavigatedEvent_CurrentIsLandedPagePreviousIsPopped Stop
>>>>> 4/17/2026 2:49:37 AM NavEvents_Push_NavigatingEvent_SourceIsPushAndCurrentIsPushedFromPage Start
Passed NavEvents_Pop_NavigatedEvent_CurrentIsLandedPagePreviousIsPopped [698 ms]
>>>>> 4/17/2026 2:49:39 AM NavEvents_Push_NavigatingEvent_SourceIsPushAndCurrentIsPushedFromPage Stop
>>>>> 4/17/2026 2:49:39 AM NavEvents_Push_NavigatedEvent_CurrentIsNewPagePreviousIsSourcePage Start
Passed NavEvents_Push_NavigatingEvent_SourceIsPushAndCurrentIsPushedFromPage [1 s]
>>>>> 4/17/2026 2:49:39 AM NavEvents_Push_NavigatedEvent_CurrentIsNewPagePreviousIsSourcePage Stop
>>>>> 4/17/2026 2:49:39 AM NavEvents_ShellItemChanged_NavigatingEvent_SourceIsShellItemChanged Start
Passed NavEvents_Push_NavigatedEvent_CurrentIsNewPagePreviousIsSourcePage [600 ms]
>>>>> 4/17/2026 2:49:45 AM NavEvents_ShellItemChanged_NavigatingEvent_SourceIsShellItemChanged Stop
Passed NavEvents_ShellItemChanged_NavigatingEvent_SourceIsShellItemChanged [5 s]
>>>>> 4/17/2026 2:49:45 AM NavEvents_ShellItemChanged_NavigatedEvent_CurrentIsPage2PreviousIsMain Start
>>>>> 4/17/2026 2:49:45 AM NavEvents_ShellItemChanged_NavigatedEvent_CurrentIsPage2PreviousIsMain Stop
>>>>> 4/17/2026 2:49:45 AM NavEvents_GoToAsyncAbsoluteRoute_NavigatingEvent_SourceIsShellItemChanged Start
Passed NavEvents_ShellItemChanged_NavigatedEvent_CurrentIsPage2PreviousIsMain [576 ms]
>>>>> 4/17/2026 2:49:47 AM NavEvents_GoToAsyncAbsoluteRoute_NavigatingEvent_SourceIsShellItemChanged Stop
>>>>> 4/17/2026 2:49:47 AM NavEvents_GoToAsyncAbsoluteRoute_NavigatedEvent_SourceIsShellItemChanged Start
>>>>> 4/17/2026 2:49:47 AM NavEvents_GoToAsyncAbsoluteRoute_NavigatedEvent_SourceIsShellItemChanged Stop
>>>>> 4/17/2026 2:49:47 AM NavEvents_ShellContentChanged_NavigatingEvent_SourceIsShellContentChanged Start
Passed NavEvents_GoToAsyncAbsoluteRoute_NavigatingEvent_SourceIsShellItemChanged [1 s]
Passed NavEvents_GoToAsyncAbsoluteRoute_NavigatedEvent_SourceIsShellItemChanged [379 ms]
>>>>> 4/17/2026 2:49:51 AM NavEvents_ShellContentChanged_NavigatingEvent_SourceIsShellContentChanged Stop
Passed NavEvents_ShellContentChanged_NavigatingEvent_SourceIsShellContentChanged [3 s]
>>>>> 4/17/2026 2:49:51 AM NavEvents_ShellContentChanged_NavigatedEvent_CurrentIsContent2PreviousIsContent1 Start
>>>>> 4/17/2026 2:49:52 AM NavEvents_ShellContentChanged_NavigatedEvent_CurrentIsContent2PreviousIsContent1 Stop
Passed NavEvents_ShellContentChanged_NavigatedEvent_CurrentIsContent2PreviousIsContent1 [1 s]
>>>>> 4/17/2026 2:49:52 AM NavEvents_ShellSectionChanged_NavigatingEvent_SourceIsShellSectionChanged Start
>>>>> 4/17/2026 2:49:56 AM NavEvents_ShellSectionChanged_NavigatingEvent_SourceIsShellSectionChanged Stop
Passed NavEvents_ShellSectionChanged_NavigatingEvent_SourceIsShellSectionChanged [3 s]
>>>>> 4/17/2026 2:49:56 AM NavEvents_ShellSectionChanged_NavigatedEvent_CurrentIsTabBPreviousIsTabA Start
>>>>> 4/17/2026 2:49:58 AM NavEvents_ShellSectionChanged_NavigatedEvent_CurrentIsTabBPreviousIsTabA Stop
Passed NavEvents_ShellSectionChanged_NavigatedEvent_CurrentIsTabBPreviousIsTabA [1 s]
>>>>> 4/17/2026 2:49:58 AM NavEvents_PopToRoot_NavigatingEvent_SourceIsPopToRoot Start
>>>>> 4/17/2026 2:50:02 AM NavEvents_PopToRoot_NavigatingEvent_SourceIsPopToRoot Stop
Passed NavEvents_PopToRoot_NavigatingEvent_SourceIsPopToRoot [3 s]
>>>>> 4/17/2026 2:50:02 AM NavEvents_PopToRoot_NavigatedEvent_CurrentIsMainSourceIsPopToRoot Start
>>>>> 4/17/2026 2:50:02 AM NavEvents_PopToRoot_NavigatedEvent_CurrentIsMainSourceIsPopToRoot Stop
>>>>> 4/17/2026 2:50:02 AM PassData_StringQueryParam_ReceivedByIQueryAttributable Start
Passed NavEvents_PopToRoot_NavigatedEvent_CurrentIsMainSourceIsPopToRoot [370 ms]
>>>>> 4/17/2026 2:50:08 AM PassData_StringQueryParam_ReceivedByIQueryAttributable Stop
Passed PassData_StringQueryParam_ReceivedByIQueryAttributable [6 s]
>>>>> 4/17/2026 2:50:08 AM PassData_DictionaryParam_ReceivedByIQueryAttributable Start
>>>>> 4/17/2026 2:50:13 AM PassData_DictionaryParam_ReceivedByIQueryAttributable Stop
Passed PassData_DictionaryParam_ReceivedByIQueryAttributable [5 s]
>>>>> 4/17/2026 2:50:13 AM PassData_SingleUseParams_ReceivedByIQueryAttributable Start
>>>>> 4/17/2026 2:50:18 AM PassData_SingleUseParams_ReceivedByIQueryAttributable Stop
Passed PassData_SingleUseParams_ReceivedByIQueryAttributable [4 s]
>>>>> 4/17/2026 2:50:18 AM PassData_StringQueryParam_BothLabelsReceiveSameValue Start
>>>>> 4/17/2026 2:50:24 AM PassData_StringQueryParam_BothLabelsReceiveSameValue Stop
Passed PassData_StringQueryParam_BothLabelsReceiveSameValue [5 s]
>>>>> 4/17/2026 2:50:24 AM PassData_BackwardsNavigation_PassesDataToPreviousPage Start
>>>>> 4/17/2026 2:50:26 AM PassData_BackwardsNavigation_PassesDataToPreviousPage Stop
Passed PassData_BackwardsNavigation_PassesDataToPreviousPage [2 s]
>>>>> 4/17/2026 2:50:26 AM PassData_MultipleStringParams_ReceivedByIQueryAttributable Start
>>>>> 4/17/2026 2:50:34 AM PassData_MultipleStringParams_ReceivedByIQueryAttributable Stop
Passed PassData_MultipleStringParams_ReceivedByIQueryAttributable [8 s]
>>>>> 4/17/2026 2:50:34 AM PassData_IQueryAttributable_ReceivesDecodedValues Start
>>>>> 4/17/2026 2:50:40 AM PassData_IQueryAttributable_ReceivesDecodedValues Stop
Passed PassData_IQueryAttributable_ReceivesDecodedValues [5 s]
>>>>> 4/17/2026 2:50:40 AM PassData_Dictionary_PersistsWhenNavigatingToIntermediatePageAndBack Start
>>>>> 4/17/2026 2:50:49 AM PassData_Dictionary_PersistsWhenNavigatingToIntermediatePageAndBack Stop
Passed PassData_Dictionary_PersistsWhenNavigatingToIntermediatePageAndBack [8 s]
>>>>> 4/17/2026 2:50:49 AM BackButtonBehavior_TextOverride_CustomTextShownOnBackButton Start
>>>>> 4/17/2026 2:50:56 AM BackButtonBehavior_TextOverride_CustomTextShownOnBackButton Stop
Passed BackButtonBehavior_TextOverride_CustomTextShownOnBackButton [6 s]
>>>>> 4/17/2026 2:50:56 AM BackButtonBehavior_CommandParameter_CommandFiresWithCorrectParameter Start
>>>>> 4/17/2026 2:51:03 AM BackButtonBehavior_CommandParameter_CommandFiresWithCorrectParameter Stop
Passed BackButtonBehavior_CommandParameter_CommandFiresWithCorrectParameter [7 s]
>>>>> 4/17/2026 2:51:03 AM BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate Start
>>>>> 4/17/2026 2:51:13 AM BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate Stop
Passed BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate [9 s]
>>>>> 4/17/2026 2:51:13 AM BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks Start
>>>>> 4/17/2026 2:51:15 AM BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks Stop
Passed BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks [2 s]
>>>>> 4/17/2026 2:51:15 AM BackButtonBehavior_IconOverride_CustomIconShownOnBackButton Start
>>>>> 4/17/2026 2:51:19 AM BackButtonBehavior_IconOverride_CustomIconShownOnBackButton Stop
Passed BackButtonBehavior_IconOverride_CustomIconShownOnBackButton [4 s]
NUnit Adapter 4.5.0.0: Test execution complete
Test Run Successful.
Total tests: 52
Passed: 52
Total time: 3.3662 Minutes
⚠️ Issues found
- ❌ ShellNavigationFeatureTests PASSED without fix (should fail) — tests don't catch the bug
📁 Fix files reverted (1 files)
src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellSectionRenderer.cs
It seems the pre-fix gate failure occurred on an iOS 18 simulator. I validated the test locally on both iOS 18 and iOS 26:
On iOS 18, the test passed even without the fix, since this issue occurs only on the iOS 26 simulator. Therefore, the gate test failure on iOS 18 before the fix was expected. |
kubaflo
left a comment
There was a problem hiding this comment.
Could you limit it to iOS 26+ only
@kubaflo , _sendPopPending is only applicable for iOS 26+, so an additional condition is not required. |
…te UITest fails (#34890) <!-- !!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING MAIN. !!!!!!! --> ### Issue Details In the issue, mentioned two tests are failed * BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate * BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks ## BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate The test failed due to PR #28734. The PR included a fix for the BackButton IsEnabled issue, but it resolves the issue on iOS 18, not on iOS 26. Further improvements are needed for iOS26, which was added in the PR. ### Root Cause On iOS 26, the Shell back button test failed because tapping the back button while BackButtonBehavior.IsEnabled was false left the Shell renderer in a pending back-navigation state. After the button was enabled again, the next back tap was still blocked, which caused the test to time out instead of returning to the main page. **Description of Change** <!-- Enter description of the fix in this section --> The fix clears the pending back-navigation flag when a disabled back tap is ignored, so back navigation works correctly once the button is re-enabled. ## BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks Above test fail related to base snapshot, which was addressed in PR #34617 Note : Existing PR #34850 was closed due to some conflicts issue ### Issues Fixed <!-- Please make sure that there is a bug logged for the issue being fixed. The bug should describe the problem and how to reproduce it. --> Fixes #34771 <!-- Are you targeting main? All PRs should target the main branch unless otherwise noted. --> **Tested the behavior in the following platforms.** - [ ] Android - [ ] Windows - [x] iOS - [ ] Mac | Before | After | |---------|--------| | **iOS**<br> <video src="https://github.com/user-attachments/assets/e2634737-0c08-4f4b-a93e-51a2ec03a7e5" width="300" height="600"> | **iOS**<br> <video src="https://github.com/user-attachments/assets/4e75a218-91c2-4951-b4fb-241ec2de2aac" width="300" height="600"> |
…te UITest fails (#34890) <!-- !!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING MAIN. !!!!!!! --> ### Issue Details In the issue, mentioned two tests are failed * BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate * BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks ## BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate The test failed due to PR #28734. The PR included a fix for the BackButton IsEnabled issue, but it resolves the issue on iOS 18, not on iOS 26. Further improvements are needed for iOS26, which was added in the PR. ### Root Cause On iOS 26, the Shell back button test failed because tapping the back button while BackButtonBehavior.IsEnabled was false left the Shell renderer in a pending back-navigation state. After the button was enabled again, the next back tap was still blocked, which caused the test to time out instead of returning to the main page. **Description of Change** <!-- Enter description of the fix in this section --> The fix clears the pending back-navigation flag when a disabled back tap is ignored, so back navigation works correctly once the button is re-enabled. ## BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks Above test fail related to base snapshot, which was addressed in PR #34617 Note : Existing PR #34850 was closed due to some conflicts issue ### Issues Fixed <!-- Please make sure that there is a bug logged for the issue being fixed. The bug should describe the problem and how to reproduce it. --> Fixes #34771 <!-- Are you targeting main? All PRs should target the main branch unless otherwise noted. --> **Tested the behavior in the following platforms.** - [ ] Android - [ ] Windows - [x] iOS - [ ] Mac | Before | After | |---------|--------| | **iOS**<br> <video src="https://github.com/user-attachments/assets/e2634737-0c08-4f4b-a93e-51a2ec03a7e5" width="300" height="600"> | **iOS**<br> <video src="https://github.com/user-attachments/assets/4e75a218-91c2-4951-b4fb-241ec2de2aac" width="300" height="600"> |
…te UITest fails (#34890) <!-- !!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING MAIN. !!!!!!! --> ### Issue Details In the issue, mentioned two tests are failed * BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate * BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks ## BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate The test failed due to PR #28734. The PR included a fix for the BackButton IsEnabled issue, but it resolves the issue on iOS 18, not on iOS 26. Further improvements are needed for iOS26, which was added in the PR. ### Root Cause On iOS 26, the Shell back button test failed because tapping the back button while BackButtonBehavior.IsEnabled was false left the Shell renderer in a pending back-navigation state. After the button was enabled again, the next back tap was still blocked, which caused the test to time out instead of returning to the main page. **Description of Change** <!-- Enter description of the fix in this section --> The fix clears the pending back-navigation flag when a disabled back tap is ignored, so back navigation works correctly once the button is re-enabled. ## BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks Above test fail related to base snapshot, which was addressed in PR #34617 Note : Existing PR #34850 was closed due to some conflicts issue ### Issues Fixed <!-- Please make sure that there is a bug logged for the issue being fixed. The bug should describe the problem and how to reproduce it. --> Fixes #34771 <!-- Are you targeting main? All PRs should target the main branch unless otherwise noted. --> **Tested the behavior in the following platforms.** - [ ] Android - [ ] Windows - [x] iOS - [ ] Mac | Before | After | |---------|--------| | **iOS**<br> <video src="https://github.com/user-attachments/assets/e2634737-0c08-4f4b-a93e-51a2ec03a7e5" width="300" height="600"> | **iOS**<br> <video src="https://github.com/user-attachments/assets/4e75a218-91c2-4951-b4fb-241ec2de2aac" width="300" height="600"> |
…te UITest fails (#34890) <!-- !!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING MAIN. !!!!!!! --> ### Issue Details In the issue, mentioned two tests are failed * BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate * BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks ## BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate The test failed due to PR #28734. The PR included a fix for the BackButton IsEnabled issue, but it resolves the issue on iOS 18, not on iOS 26. Further improvements are needed for iOS26, which was added in the PR. ### Root Cause On iOS 26, the Shell back button test failed because tapping the back button while BackButtonBehavior.IsEnabled was false left the Shell renderer in a pending back-navigation state. After the button was enabled again, the next back tap was still blocked, which caused the test to time out instead of returning to the main page. **Description of Change** <!-- Enter description of the fix in this section --> The fix clears the pending back-navigation flag when a disabled back tap is ignored, so back navigation works correctly once the button is re-enabled. ## BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks Above test fail related to base snapshot, which was addressed in PR #34617 Note : Existing PR #34850 was closed due to some conflicts issue ### Issues Fixed <!-- Please make sure that there is a bug logged for the issue being fixed. The bug should describe the problem and how to reproduce it. --> Fixes #34771 <!-- Are you targeting main? All PRs should target the main branch unless otherwise noted. --> **Tested the behavior in the following platforms.** - [ ] Android - [ ] Windows - [x] iOS - [ ] Mac | Before | After | |---------|--------| | **iOS**<br> <video src="https://github.com/user-attachments/assets/e2634737-0c08-4f4b-a93e-51a2ec03a7e5" width="300" height="600"> | **iOS**<br> <video src="https://github.com/user-attachments/assets/4e75a218-91c2-4951-b4fb-241ec2de2aac" width="300" height="600"> |
Issue Details
In the issue, mentioned two tests are failed
BackButtonBehavior_IsEnabled_False_BackButtonDoesNotNavigate
The test failed due to PR #28734. The PR included a fix for the BackButton IsEnabled issue, but it resolves the issue on iOS 18, not on iOS 26. Further improvements are needed for iOS26, which was added in the PR.
Root Cause
On iOS 26, the Shell back button test failed because tapping the back button while BackButtonBehavior.IsEnabled was false left the Shell renderer in a pending back-navigation state. After the button was enabled again, the next back tap was still blocked, which caused the test to time out instead of returning to the main page.
Description of Change
The fix clears the pending back-navigation flag when a disabled back tap is ignored, so back navigation works correctly once the button is re-enabled.
BackButtonBehavior_IsVisible_False_ProgrammaticNavStillWorks
Above test fail related to base snapshot, which was addressed in PR #34617
Note :
Existing PR #34850 was closed due to some conflicts issue
Issues Fixed
Fixes #34771
Tested the behavior in the following platforms.
Before.mov
After.mov