From f2fe4d55a1743fd6147ba1e4deb2f8e989ef53fb Mon Sep 17 00:00:00 2001 From: Ilona Tomkowicz Date: Tue, 5 Aug 2025 15:48:16 +0200 Subject: [PATCH 01/39] Supress enhanced nav per test. --- .../EnhancedNavigationTest.cs | 36 +++++++++++++------ .../EnhancedNavigationTestUtil.cs | 13 +++++-- .../RazorComponents/App.razor | 4 +-- .../RazorComponents/Root.razor | 4 +-- 4 files changed, 41 insertions(+), 16 deletions(-) diff --git a/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTest.cs b/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTest.cs index 7dfaf3523287..f68805604514 100644 --- a/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTest.cs +++ b/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTest.cs @@ -677,11 +677,10 @@ public void CanUpdateHrefOnLinkTagWithIntegrity() } [Theory] - [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/60875")] - // [InlineData(false, false, false)] // https://github.com/dotnet/aspnetcore/issues/60875 + [InlineData(false, false, false)] [InlineData(false, true, false)] [InlineData(true, true, false)] - // [InlineData(true, false, false)] // https://github.com/dotnet/aspnetcore/issues/60875 + [InlineData(true, false, false)] // [InlineData(false, false, true)] programmatic navigation doesn't work without enhanced navigation [InlineData(false, true, true)] [InlineData(true, true, true)] @@ -692,8 +691,8 @@ public void EnhancedNavigationScrollBehavesSameAsBrowserOnNavigation(bool enable // or to the beginning of a fragment, regardless of the previous scroll position string landingPageSuffix = enableStreaming ? "" : "-no-streaming"; string buttonKeyword = programmaticNavigation ? "-programmatic" : ""; - Navigate($"{ServerPathBase}/nav/scroll-test{landingPageSuffix}"); EnhancedNavigationTestUtil.SuppressEnhancedNavigation(this, shouldSuppress: !useEnhancedNavigation, skipNavigation: true); + Navigate($"{ServerPathBase}/nav/scroll-test{landingPageSuffix}"); // "landing" page: scroll maximally down and go to "next" page - we should land at the top of that page AssertWeAreOnLandingPage(); @@ -732,10 +731,10 @@ public void EnhancedNavigationScrollBehavesSameAsBrowserOnNavigation(bool enable } [Theory] - // [InlineData(false, false, false)] // https://github.com/dotnet/aspnetcore/issues/60875 + [InlineData(false, false, false)] // https://github.com/dotnet/aspnetcore/issues/60875 [InlineData(false, true, false)] [InlineData(true, true, false)] - // [InlineData(true, false, false)] // https://github.com/dotnet/aspnetcore/issues/60875 + [InlineData(true, false, false)] // https://github.com/dotnet/aspnetcore/issues/60875 // [InlineData(false, false, true)] programmatic navigation doesn't work without enhanced navigation [InlineData(false, true, true)] [InlineData(true, true, true)] @@ -745,8 +744,8 @@ public void EnhancedNavigationScrollBehavesSameAsBrowserOnBackwardsForwardsActio // This test checks if the scroll position is preserved after backwards/forwards action string landingPageSuffix = enableStreaming ? "" : "-no-streaming"; string buttonKeyword = programmaticNavigation ? "-programmatic" : ""; - Navigate($"{ServerPathBase}/nav/scroll-test{landingPageSuffix}"); EnhancedNavigationTestUtil.SuppressEnhancedNavigation(this, shouldSuppress: !useEnhancedNavigation, skipNavigation: true); + Navigate($"{ServerPathBase}/nav/scroll-test{landingPageSuffix}"); // "landing" page: scroll to pos1, navigate away AssertWeAreOnLandingPage(); @@ -831,6 +830,7 @@ private void AssertScrollPositionCorrect(bool useEnhancedNavigation, long previo private void AssertEnhancedNavigation(bool useEnhancedNavigation, IWebElement elementForStalenessCheck, int retryCount = 3, int delayBetweenRetriesMs = 1000) { bool enhancedNavigationDetected = false; + string logging = ""; for (int i = 0; i < retryCount; i++) { try @@ -841,15 +841,31 @@ private void AssertEnhancedNavigation(bool useEnhancedNavigation, IWebElement el } catch (XunitException) { + var logs = Browser.GetBrowserLogs(LogLevel.Warning); + logging += $"{string.Join(", ", logs.Select(l => l.Message))}\n"; + + var testId = ((IJavaScriptExecutor)Browser).ExecuteScript("return sessionStorage.getItem('test-id');"); + logging += $" testId: {testId}\n"; + if (testId is null) + { + continue; + } + var suppressKey = $"suppress-enhanced-navigation-{testId}"; + + var enhancedNavAttached = ((IJavaScriptExecutor)Browser).ExecuteScript("return sessionStorage.getItem('blazor-enhanced-nav-attached');"); + var suppressEnhancedNavigation = ((IJavaScriptExecutor)Browser).ExecuteScript($"return sessionStorage.getItem('{suppressKey}');"); + + logging += $" suppressKey: {suppressKey}\n"; + logging += $" {suppressKey}: {suppressEnhancedNavigation}\n"; // Maybe the check was done too early to change the DOM ref, retry } Thread.Sleep(delayBetweenRetriesMs); } - string expectedNavigation = useEnhancedNavigation ? "enhanced navigation" : "browser navigation"; + string expectedNavigation = useEnhancedNavigation ? "enhanced navigation" : "full page load"; string isStale = enhancedNavigationDetected ? "is not stale" : "is stale"; - var isNavigationSupressed = (string)((IJavaScriptExecutor)Browser).ExecuteScript("return sessionStorage.getItem('suppress-enhanced-navigation');"); - throw new Exception($"Expected to use {expectedNavigation} because 'suppress-enhanced-navigation' is set to {isNavigationSupressed} but the element from previous path {isStale}"); + var isNavigationSuppressed = (string)((IJavaScriptExecutor)Browser).ExecuteScript("return sessionStorage.getItem('suppress-enhanced-navigation');"); + throw new Exception($"Expected to use {expectedNavigation} because 'suppress-enhanced-navigation' is set to {isNavigationSuppressed} but the element from previous path {isStale}. logging={logging}"); } private void AssertWeAreOnLandingPage() diff --git a/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTestUtil.cs b/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTestUtil.cs index 799b915f8fdd..1c3444f3a030 100644 --- a/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTestUtil.cs +++ b/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTestUtil.cs @@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; using Microsoft.AspNetCore.E2ETesting; using OpenQA.Selenium; +using OpenQA.Selenium.BiDi.Communication; namespace Microsoft.AspNetCore.Components.E2ETests.ServerRenderingTests; @@ -21,12 +22,20 @@ public static void SuppressEnhancedNavigation(ServerTestBase browser.Exists(By.TagName("h1")).Text); } - ((IJavaScriptExecutor)browser).ExecuteScript("sessionStorage.setItem('suppress-enhanced-navigation', 'true')"); + // Set the suppression flag - this will prevent enhanced navigation from being attached on the next navigation + // and trigger detachment of currently attached enhanced navigation via the periodic check + var testId = Guid.NewGuid().ToString("N")[..8]; + ((IJavaScriptExecutor)browser).ExecuteScript($"sessionStorage.setItem('test-id', '{testId}')"); + ((IJavaScriptExecutor)browser).ExecuteScript($"sessionStorage.setItem('suppress-enhanced-navigation-{testId}', 'true')"); + + var suppressEnhancedNavigation = ((IJavaScriptExecutor)browser).ExecuteScript($"return sessionStorage.getItem('suppress-enhanced-navigation-{testId}');"); + Assert.True(suppressEnhancedNavigation is not null && (string)suppressEnhancedNavigation == "true", + "Expected 'suppress-enhanced-navigation' to be set in sessionStorage."); } } diff --git a/src/Components/test/testassets/Components.TestServer/RazorComponents/App.razor b/src/Components/test/testassets/Components.TestServer/RazorComponents/App.razor index 012dcc5547f8..7b8af1442eea 100644 --- a/src/Components/test/testassets/Components.TestServer/RazorComponents/App.razor +++ b/src/Components/test/testassets/Components.TestServer/RazorComponents/App.razor @@ -137,10 +137,10 @@ } const enableClassicInitializers = sessionStorage.getItem('enable-classic-initializers') === 'true'; - const suppressEnhancedNavigation = sessionStorage.getItem('suppress-enhanced-navigation') === 'true'; + const testId = sessionStorage.getItem('test-id'); + const suppressEnhancedNavigation = testId ? sessionStorage.getItem(`suppress-enhanced-navigation-${testId}`) === 'true' : false; const blockLoadBootResource = sessionStorage.getItem('block-load-boot-resource') === 'true'; const blockWebassemblySettings = sessionStorage.getItem('block-webassembly-settings') === 'true'; - sessionStorage.removeItem('suppress-enhanced-navigation'); sessionStorage.removeItem('block-load-boot-resource'); sessionStorage.removeItem('enable-classic-initializers'); sessionStorage.removeItem('block-webassembly-settings'); diff --git a/src/Components/test/testassets/Components.TestServer/RazorComponents/Root.razor b/src/Components/test/testassets/Components.TestServer/RazorComponents/Root.razor index 07a5daa32bde..098813212786 100644 --- a/src/Components/test/testassets/Components.TestServer/RazorComponents/Root.razor +++ b/src/Components/test/testassets/Components.TestServer/RazorComponents/Root.razor @@ -14,7 +14,8 @@ diff --git a/src/Components/WebAssembly/testassets/HostedInAspNet.Client/Home.razor b/src/Components/WebAssembly/testassets/HostedInAspNet.Client/Home.razor index 0ad1ea275e55..4b376bf4f1bd 100644 --- a/src/Components/WebAssembly/testassets/HostedInAspNet.Client/Home.razor +++ b/src/Components/WebAssembly/testassets/HostedInAspNet.Client/Home.razor @@ -1 +1 @@ -

Hello, world!

+

Hello, world!

diff --git a/src/Components/WebAssembly/testassets/Wasm.Prerendered.Client/App.razor b/src/Components/WebAssembly/testassets/Wasm.Prerendered.Client/App.razor index 5180131cb3d1..ebf677bd33aa 100644 --- a/src/Components/WebAssembly/testassets/Wasm.Prerendered.Client/App.razor +++ b/src/Components/WebAssembly/testassets/Wasm.Prerendered.Client/App.razor @@ -2,6 +2,8 @@ Current count: @_counter +

+

Current count: @_counter
diff --git a/src/Components/benchmarkapps/Wasm.Performance/TestApp/wwwroot/index.html b/src/Components/benchmarkapps/Wasm.Performance/TestApp/wwwroot/index.html index 13bbb314fe6a..dc1b7ab0f703 100644 --- a/src/Components/benchmarkapps/Wasm.Performance/TestApp/wwwroot/index.html +++ b/src/Components/benchmarkapps/Wasm.Performance/TestApp/wwwroot/index.html @@ -7,6 +7,7 @@ +

View benchmark app ⮕ diff --git a/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs index 1e9cf7fcbe22..102854529a74 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs @@ -16,7 +16,7 @@ public ComponentWithParametersTest( BrowserFixture browserFixture, BasicTestAppServerSiteFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output) + : base(browserFixture, serverFixture, output, serverPathBase: "/prerendered") { } diff --git a/src/Components/test/E2ETest/ServerExecutionTests/HeadModificationPrerenderingTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/HeadModificationPrerenderingTest.cs index 759a67070ebf..95d57432ee10 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/HeadModificationPrerenderingTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/HeadModificationPrerenderingTest.cs @@ -16,7 +16,7 @@ public HeadModificationPrerenderingTest( BrowserFixture browserFixture, BasicTestAppServerSiteFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output) + : base(browserFixture, serverFixture, output, serverPathBase: "/deferred-component-content") { } diff --git a/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs index 5d1575c6ab59..6e4092cd43e7 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs @@ -20,7 +20,7 @@ public MultipleComponentsTest( BrowserFixture browserFixture, BasicTestAppServerSiteFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output) + : base(browserFixture, serverFixture, output, serverPathBase: "/multiple-components") { } diff --git a/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs index 3de6df8da5db..f7279379531c 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs @@ -19,7 +19,7 @@ public PrerenderingTest( BrowserFixture browserFixture, BasicTestAppServerSiteFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output) + : base(browserFixture, serverFixture, output, serverPathBase: "/prerendered") { } diff --git a/src/Components/test/E2ETest/ServerExecutionTests/ServerTransportsTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/ServerTransportsTest.cs index ab43e2e5b514..7d56437fb166 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/ServerTransportsTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/ServerTransportsTest.cs @@ -16,7 +16,7 @@ public ServerTransportsTest( BrowserFixture browserFixture, BasicTestAppServerSiteFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output) + : base(browserFixture, serverFixture, output, serverPathBase: "/defaultTransport") { } diff --git a/src/Components/test/E2ETest/Tests/ClientRenderingMultpleComponentsTest.cs b/src/Components/test/E2ETest/Tests/ClientRenderingMultpleComponentsTest.cs index 5492d8bb8cdc..02d07e08e67d 100644 --- a/src/Components/test/E2ETest/Tests/ClientRenderingMultpleComponentsTest.cs +++ b/src/Components/test/E2ETest/Tests/ClientRenderingMultpleComponentsTest.cs @@ -19,7 +19,7 @@ public ClientRenderingMultpleComponentsTest( BrowserFixture browserFixture, BasicTestAppServerSiteFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output) + : base(browserFixture, serverFixture, output, serverPathBase: "/Client/multiple-components") { } diff --git a/src/Components/test/E2ETest/Tests/ClientSideHostingTest.cs b/src/Components/test/E2ETest/Tests/ClientSideHostingTest.cs index 406a38c43d36..642e840167ac 100644 --- a/src/Components/test/E2ETest/Tests/ClientSideHostingTest.cs +++ b/src/Components/test/E2ETest/Tests/ClientSideHostingTest.cs @@ -20,7 +20,7 @@ public ClientSideHostingTest( BrowserFixture browserFixture, BasicTestAppServerSiteFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output) + : base(browserFixture, serverFixture, output, serverPathBase: "/subdir/filepath") { } diff --git a/src/Components/test/E2ETest/Tests/HostedInAlternativeBasePathTest.cs b/src/Components/test/E2ETest/Tests/HostedInAlternativeBasePathTest.cs index df1cbaecc556..3472412bb26e 100644 --- a/src/Components/test/E2ETest/Tests/HostedInAlternativeBasePathTest.cs +++ b/src/Components/test/E2ETest/Tests/HostedInAlternativeBasePathTest.cs @@ -15,7 +15,7 @@ public HostedInAlternativeBasePathTest( BrowserFixture browserFixture, AspNetSiteServerFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output) + : base(browserFixture, serverFixture, output, serverPathBase: "/app") { serverFixture.AdditionalArguments.AddRange(new[] { "--UseAlternativeBasePath", "true" }); serverFixture.BuildWebHostMethod = HostedInAspNet.Server.Program.BuildWebHost; diff --git a/src/Components/test/E2ETest/Tests/HostedInAspNetTest.cs b/src/Components/test/E2ETest/Tests/HostedInAspNetTest.cs index 8f6e1775990c..462acbf88454 100644 --- a/src/Components/test/E2ETest/Tests/HostedInAspNetTest.cs +++ b/src/Components/test/E2ETest/Tests/HostedInAspNetTest.cs @@ -15,7 +15,7 @@ public HostedInAspNetTest( BrowserFixture browserFixture, AspNetSiteServerFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output) + : base(browserFixture, serverFixture, output, serverPathBase: "") { serverFixture.BuildWebHostMethod = HostedInAspNet.Server.Program.BuildWebHost; serverFixture.Environment = AspNetEnvironment.Development; diff --git a/src/Components/test/E2ETest/Tests/MultipleHostedAppTest.cs b/src/Components/test/E2ETest/Tests/MultipleHostedAppTest.cs index feee1434d50d..fb4399b81945 100644 --- a/src/Components/test/E2ETest/Tests/MultipleHostedAppTest.cs +++ b/src/Components/test/E2ETest/Tests/MultipleHostedAppTest.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; @@ -15,7 +15,7 @@ public MultipleHostedAppTest( BrowserFixture browserFixture, AspNetSiteServerFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output) + : base(browserFixture, serverFixture, output, serverPathBase: "") { serverFixture.AdditionalArguments.AddRange(new[] { "--MapAllApps", "true" }); serverFixture.BuildWebHostMethod = HostedInAspNet.Server.Program.BuildWebHost; diff --git a/src/Components/test/E2ETest/Tests/PerformanceTest.cs b/src/Components/test/E2ETest/Tests/PerformanceTest.cs index c237c8fd4aa6..2ae8f73ca552 100644 --- a/src/Components/test/E2ETest/Tests/PerformanceTest.cs +++ b/src/Components/test/E2ETest/Tests/PerformanceTest.cs @@ -16,7 +16,7 @@ public PerformanceTest( BrowserFixture browserFixture, BlazorWasmTestAppFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output) + : base(browserFixture, serverFixture, output, serverPathBase: "") { } diff --git a/src/Components/test/E2ETest/Tests/SaveStateTest.cs b/src/Components/test/E2ETest/Tests/SaveStateTest.cs index 680b030c32c5..70de85b0d9f7 100644 --- a/src/Components/test/E2ETest/Tests/SaveStateTest.cs +++ b/src/Components/test/E2ETest/Tests/SaveStateTest.cs @@ -18,7 +18,7 @@ public SaveStateTest( BrowserFixture browserFixture, AspNetSiteServerFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output) + : base(browserFixture, serverFixture, output, "save-state") { serverFixture.BuildWebHostMethod = Program.BuildWebHost; serverFixture.Environment = AspNetEnvironment.Development; diff --git a/src/Components/test/E2ETest/Tests/WebAssemblyPrerenderedTest.cs b/src/Components/test/E2ETest/Tests/WebAssemblyPrerenderedTest.cs index 18869083cf0f..09f1adfc67cd 100644 --- a/src/Components/test/E2ETest/Tests/WebAssemblyPrerenderedTest.cs +++ b/src/Components/test/E2ETest/Tests/WebAssemblyPrerenderedTest.cs @@ -15,7 +15,7 @@ public WebAssemblyPrerenderedTest( BrowserFixture browserFixture, TrimmingServerFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output) + : base(browserFixture, serverFixture, output, serverPathBase: "") { serverFixture.Environment = AspNetEnvironment.Development; } diff --git a/src/Components/test/testassets/BasicTestApp/HeadModification.razor b/src/Components/test/testassets/BasicTestApp/HeadModification.razor index aeca2f88d0c4..f0fc12da8a7d 100644 --- a/src/Components/test/testassets/BasicTestApp/HeadModification.razor +++ b/src/Components/test/testassets/BasicTestApp/HeadModification.razor @@ -1,4 +1,5 @@ -

Head modification

+

+

Head modification

Title modification diff --git a/src/Components/test/testassets/Components.TestServer/Pages/Client/MultipleComponents.cshtml b/src/Components/test/testassets/Components.TestServer/Pages/Client/MultipleComponents.cshtml index 0f7078e0e603..5a91eadaaa41 100644 --- a/src/Components/test/testassets/Components.TestServer/Pages/Client/MultipleComponents.cshtml +++ b/src/Components/test/testassets/Components.TestServer/Pages/Client/MultipleComponents.cshtml @@ -5,6 +5,7 @@ Layout = "./MultipleComponentsLayout.cshtml"; } +

@(await Html.RenderComponentAsync(RenderMode.WebAssemblyPrerendered)) @(await Html.RenderComponentAsync(RenderMode.WebAssembly)) diff --git a/src/Components/test/testassets/Components.TestServer/Pages/MultipleComponents.cshtml b/src/Components/test/testassets/Components.TestServer/Pages/MultipleComponents.cshtml index dff3093166ba..a3ab97a4f3d0 100644 --- a/src/Components/test/testassets/Components.TestServer/Pages/MultipleComponents.cshtml +++ b/src/Components/test/testassets/Components.TestServer/Pages/MultipleComponents.cshtml @@ -5,6 +5,7 @@ Layout = "./MultipleComponentsLayout.cshtml"; } +

@(await Html.RenderComponentAsync(RenderMode.ServerPrerendered)) @(await Html.RenderComponentAsync(RenderMode.Server)) diff --git a/src/Components/test/testassets/Components.TestServer/Pages/PrerenderedHost.cshtml b/src/Components/test/testassets/Components.TestServer/Pages/PrerenderedHost.cshtml index ff2d847d5bf1..6eada78e02d7 100644 --- a/src/Components/test/testassets/Components.TestServer/Pages/PrerenderedHost.cshtml +++ b/src/Components/test/testassets/Components.TestServer/Pages/PrerenderedHost.cshtml @@ -8,6 +8,7 @@ +

@* diff --git a/src/Components/test/testassets/Components.TestServer/Pages/SaveState.cshtml b/src/Components/test/testassets/Components.TestServer/Pages/SaveState.cshtml index 8df0fb304427..faaa9678ba41 100644 --- a/src/Components/test/testassets/Components.TestServer/Pages/SaveState.cshtml +++ b/src/Components/test/testassets/Components.TestServer/Pages/SaveState.cshtml @@ -23,6 +23,7 @@ @* This page is used to validate the ability to preserve and restore the state of components in Blazor server and WebAssembly. *@ +

@if (script == "client") { @* This is here to keep BasicTestApp.Program.cs happy *@ diff --git a/src/Components/test/testassets/Components.TestServer/RazorComponents/NamedFormContextNoFormContextApp.razor b/src/Components/test/testassets/Components.TestServer/RazorComponents/NamedFormContextNoFormContextApp.razor index fc8a291d9821..c5650956e7c4 100644 --- a/src/Components/test/testassets/Components.TestServer/RazorComponents/NamedFormContextNoFormContextApp.razor +++ b/src/Components/test/testassets/Components.TestServer/RazorComponents/NamedFormContextNoFormContextApp.razor @@ -9,6 +9,7 @@

Form test cases

+

diff --git a/src/Components/test/testassets/Components.TestServer/RazorComponents/RemoteAuthenticationApp.razor b/src/Components/test/testassets/Components.TestServer/RazorComponents/RemoteAuthenticationApp.razor index c8f89e587f8f..f8a390a764b4 100644 --- a/src/Components/test/testassets/Components.TestServer/RazorComponents/RemoteAuthenticationApp.razor +++ b/src/Components/test/testassets/Components.TestServer/RazorComponents/RemoteAuthenticationApp.razor @@ -9,6 +9,7 @@ +

diff --git a/src/Components/test/testassets/GlobalizationWasmApp/App.razor b/src/Components/test/testassets/GlobalizationWasmApp/App.razor index 8ee3c33fdcb1..6707e5396dd1 100644 --- a/src/Components/test/testassets/GlobalizationWasmApp/App.razor +++ b/src/Components/test/testassets/GlobalizationWasmApp/App.razor @@ -1,6 +1,8 @@ @using System.Globalization @inject Microsoft.Extensions.Localization.IStringLocalizer Loc +

+

App's culture: @CultureInfo.CurrentCulture

DateTime: @(new DateTime(2020, 09, 02))

From 4e9ff7343dcf335aee125ceb4eaf986449051950 Mon Sep 17 00:00:00 2001 From: Ilona Tomkowicz Date: Sat, 30 Aug 2025 08:56:07 +0200 Subject: [PATCH 31/39] Revert "Fix failing tests." This reverts commit 6dcfd16fccfbb593b942c437b3ad101077f19563. --- .../testassets/CustomBasePathApp/wwwroot/index.html | 1 - .../WebAssembly/testassets/HostedInAspNet.Client/Home.razor | 2 +- .../WebAssembly/testassets/Wasm.Prerendered.Client/App.razor | 2 -- .../benchmarkapps/Wasm.Performance/TestApp/wwwroot/index.html | 1 - .../ServerExecutionTests/ComponentWithParametersTest.cs | 2 +- .../ServerExecutionTests/HeadModificationPrerenderingTest.cs | 2 +- .../ServerExecutionTests/MultipleRootComponentsTest.cs | 2 +- .../test/E2ETest/ServerExecutionTests/PrerenderingTest.cs | 2 +- .../test/E2ETest/ServerExecutionTests/ServerTransportsTest.cs | 2 +- .../E2ETest/Tests/ClientRenderingMultpleComponentsTest.cs | 2 +- src/Components/test/E2ETest/Tests/ClientSideHostingTest.cs | 2 +- .../test/E2ETest/Tests/HostedInAlternativeBasePathTest.cs | 2 +- src/Components/test/E2ETest/Tests/HostedInAspNetTest.cs | 2 +- src/Components/test/E2ETest/Tests/MultipleHostedAppTest.cs | 4 ++-- src/Components/test/E2ETest/Tests/PerformanceTest.cs | 2 +- src/Components/test/E2ETest/Tests/SaveStateTest.cs | 2 +- .../test/E2ETest/Tests/WebAssemblyPrerenderedTest.cs | 2 +- .../test/testassets/BasicTestApp/HeadModification.razor | 3 +-- .../Pages/Client/MultipleComponents.cshtml | 1 - .../Components.TestServer/Pages/MultipleComponents.cshtml | 1 - .../Components.TestServer/Pages/PrerenderedHost.cshtml | 1 - .../testassets/Components.TestServer/Pages/SaveState.cshtml | 1 - .../RazorComponents/NamedFormContextNoFormContextApp.razor | 1 - .../RazorComponents/RemoteAuthenticationApp.razor | 1 - src/Components/test/testassets/GlobalizationWasmApp/App.razor | 2 -- 25 files changed, 16 insertions(+), 29 deletions(-) diff --git a/src/Components/WebAssembly/testassets/CustomBasePathApp/wwwroot/index.html b/src/Components/WebAssembly/testassets/CustomBasePathApp/wwwroot/index.html index a5767e9beff8..73ab907e443b 100644 --- a/src/Components/WebAssembly/testassets/CustomBasePathApp/wwwroot/index.html +++ b/src/Components/WebAssembly/testassets/CustomBasePathApp/wwwroot/index.html @@ -9,7 +9,6 @@ Loading... -

diff --git a/src/Components/WebAssembly/testassets/HostedInAspNet.Client/Home.razor b/src/Components/WebAssembly/testassets/HostedInAspNet.Client/Home.razor index 4b376bf4f1bd..0ad1ea275e55 100644 --- a/src/Components/WebAssembly/testassets/HostedInAspNet.Client/Home.razor +++ b/src/Components/WebAssembly/testassets/HostedInAspNet.Client/Home.razor @@ -1 +1 @@ -

Hello, world!

+

Hello, world!

diff --git a/src/Components/WebAssembly/testassets/Wasm.Prerendered.Client/App.razor b/src/Components/WebAssembly/testassets/Wasm.Prerendered.Client/App.razor index ebf677bd33aa..5180131cb3d1 100644 --- a/src/Components/WebAssembly/testassets/Wasm.Prerendered.Client/App.razor +++ b/src/Components/WebAssembly/testassets/Wasm.Prerendered.Client/App.razor @@ -2,8 +2,6 @@ Current count: @_counter -

-

Current count: @_counter
diff --git a/src/Components/benchmarkapps/Wasm.Performance/TestApp/wwwroot/index.html b/src/Components/benchmarkapps/Wasm.Performance/TestApp/wwwroot/index.html index dc1b7ab0f703..13bbb314fe6a 100644 --- a/src/Components/benchmarkapps/Wasm.Performance/TestApp/wwwroot/index.html +++ b/src/Components/benchmarkapps/Wasm.Performance/TestApp/wwwroot/index.html @@ -7,7 +7,6 @@ -

View benchmark app ⮕ diff --git a/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs index 102854529a74..1e9cf7fcbe22 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/ComponentWithParametersTest.cs @@ -16,7 +16,7 @@ public ComponentWithParametersTest( BrowserFixture browserFixture, BasicTestAppServerSiteFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output, serverPathBase: "/prerendered") + : base(browserFixture, serverFixture, output) { } diff --git a/src/Components/test/E2ETest/ServerExecutionTests/HeadModificationPrerenderingTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/HeadModificationPrerenderingTest.cs index 95d57432ee10..759a67070ebf 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/HeadModificationPrerenderingTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/HeadModificationPrerenderingTest.cs @@ -16,7 +16,7 @@ public HeadModificationPrerenderingTest( BrowserFixture browserFixture, BasicTestAppServerSiteFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output, serverPathBase: "/deferred-component-content") + : base(browserFixture, serverFixture, output) { } diff --git a/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs index 6e4092cd43e7..5d1575c6ab59 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/MultipleRootComponentsTest.cs @@ -20,7 +20,7 @@ public MultipleComponentsTest( BrowserFixture browserFixture, BasicTestAppServerSiteFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output, serverPathBase: "/multiple-components") + : base(browserFixture, serverFixture, output) { } diff --git a/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs index f7279379531c..3de6df8da5db 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/PrerenderingTest.cs @@ -19,7 +19,7 @@ public PrerenderingTest( BrowserFixture browserFixture, BasicTestAppServerSiteFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output, serverPathBase: "/prerendered") + : base(browserFixture, serverFixture, output) { } diff --git a/src/Components/test/E2ETest/ServerExecutionTests/ServerTransportsTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/ServerTransportsTest.cs index 7d56437fb166..ab43e2e5b514 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/ServerTransportsTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/ServerTransportsTest.cs @@ -16,7 +16,7 @@ public ServerTransportsTest( BrowserFixture browserFixture, BasicTestAppServerSiteFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output, serverPathBase: "/defaultTransport") + : base(browserFixture, serverFixture, output) { } diff --git a/src/Components/test/E2ETest/Tests/ClientRenderingMultpleComponentsTest.cs b/src/Components/test/E2ETest/Tests/ClientRenderingMultpleComponentsTest.cs index 02d07e08e67d..5492d8bb8cdc 100644 --- a/src/Components/test/E2ETest/Tests/ClientRenderingMultpleComponentsTest.cs +++ b/src/Components/test/E2ETest/Tests/ClientRenderingMultpleComponentsTest.cs @@ -19,7 +19,7 @@ public ClientRenderingMultpleComponentsTest( BrowserFixture browserFixture, BasicTestAppServerSiteFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output, serverPathBase: "/Client/multiple-components") + : base(browserFixture, serverFixture, output) { } diff --git a/src/Components/test/E2ETest/Tests/ClientSideHostingTest.cs b/src/Components/test/E2ETest/Tests/ClientSideHostingTest.cs index 642e840167ac..406a38c43d36 100644 --- a/src/Components/test/E2ETest/Tests/ClientSideHostingTest.cs +++ b/src/Components/test/E2ETest/Tests/ClientSideHostingTest.cs @@ -20,7 +20,7 @@ public ClientSideHostingTest( BrowserFixture browserFixture, BasicTestAppServerSiteFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output, serverPathBase: "/subdir/filepath") + : base(browserFixture, serverFixture, output) { } diff --git a/src/Components/test/E2ETest/Tests/HostedInAlternativeBasePathTest.cs b/src/Components/test/E2ETest/Tests/HostedInAlternativeBasePathTest.cs index 3472412bb26e..df1cbaecc556 100644 --- a/src/Components/test/E2ETest/Tests/HostedInAlternativeBasePathTest.cs +++ b/src/Components/test/E2ETest/Tests/HostedInAlternativeBasePathTest.cs @@ -15,7 +15,7 @@ public HostedInAlternativeBasePathTest( BrowserFixture browserFixture, AspNetSiteServerFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output, serverPathBase: "/app") + : base(browserFixture, serverFixture, output) { serverFixture.AdditionalArguments.AddRange(new[] { "--UseAlternativeBasePath", "true" }); serverFixture.BuildWebHostMethod = HostedInAspNet.Server.Program.BuildWebHost; diff --git a/src/Components/test/E2ETest/Tests/HostedInAspNetTest.cs b/src/Components/test/E2ETest/Tests/HostedInAspNetTest.cs index 462acbf88454..8f6e1775990c 100644 --- a/src/Components/test/E2ETest/Tests/HostedInAspNetTest.cs +++ b/src/Components/test/E2ETest/Tests/HostedInAspNetTest.cs @@ -15,7 +15,7 @@ public HostedInAspNetTest( BrowserFixture browserFixture, AspNetSiteServerFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output, serverPathBase: "") + : base(browserFixture, serverFixture, output) { serverFixture.BuildWebHostMethod = HostedInAspNet.Server.Program.BuildWebHost; serverFixture.Environment = AspNetEnvironment.Development; diff --git a/src/Components/test/E2ETest/Tests/MultipleHostedAppTest.cs b/src/Components/test/E2ETest/Tests/MultipleHostedAppTest.cs index fb4399b81945..feee1434d50d 100644 --- a/src/Components/test/E2ETest/Tests/MultipleHostedAppTest.cs +++ b/src/Components/test/E2ETest/Tests/MultipleHostedAppTest.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; @@ -15,7 +15,7 @@ public MultipleHostedAppTest( BrowserFixture browserFixture, AspNetSiteServerFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output, serverPathBase: "") + : base(browserFixture, serverFixture, output) { serverFixture.AdditionalArguments.AddRange(new[] { "--MapAllApps", "true" }); serverFixture.BuildWebHostMethod = HostedInAspNet.Server.Program.BuildWebHost; diff --git a/src/Components/test/E2ETest/Tests/PerformanceTest.cs b/src/Components/test/E2ETest/Tests/PerformanceTest.cs index 2ae8f73ca552..c237c8fd4aa6 100644 --- a/src/Components/test/E2ETest/Tests/PerformanceTest.cs +++ b/src/Components/test/E2ETest/Tests/PerformanceTest.cs @@ -16,7 +16,7 @@ public PerformanceTest( BrowserFixture browserFixture, BlazorWasmTestAppFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output, serverPathBase: "") + : base(browserFixture, serverFixture, output) { } diff --git a/src/Components/test/E2ETest/Tests/SaveStateTest.cs b/src/Components/test/E2ETest/Tests/SaveStateTest.cs index 70de85b0d9f7..680b030c32c5 100644 --- a/src/Components/test/E2ETest/Tests/SaveStateTest.cs +++ b/src/Components/test/E2ETest/Tests/SaveStateTest.cs @@ -18,7 +18,7 @@ public SaveStateTest( BrowserFixture browserFixture, AspNetSiteServerFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output, "save-state") + : base(browserFixture, serverFixture, output) { serverFixture.BuildWebHostMethod = Program.BuildWebHost; serverFixture.Environment = AspNetEnvironment.Development; diff --git a/src/Components/test/E2ETest/Tests/WebAssemblyPrerenderedTest.cs b/src/Components/test/E2ETest/Tests/WebAssemblyPrerenderedTest.cs index 09f1adfc67cd..18869083cf0f 100644 --- a/src/Components/test/E2ETest/Tests/WebAssemblyPrerenderedTest.cs +++ b/src/Components/test/E2ETest/Tests/WebAssemblyPrerenderedTest.cs @@ -15,7 +15,7 @@ public WebAssemblyPrerenderedTest( BrowserFixture browserFixture, TrimmingServerFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output, serverPathBase: "") + : base(browserFixture, serverFixture, output) { serverFixture.Environment = AspNetEnvironment.Development; } diff --git a/src/Components/test/testassets/BasicTestApp/HeadModification.razor b/src/Components/test/testassets/BasicTestApp/HeadModification.razor index f0fc12da8a7d..aeca2f88d0c4 100644 --- a/src/Components/test/testassets/BasicTestApp/HeadModification.razor +++ b/src/Components/test/testassets/BasicTestApp/HeadModification.razor @@ -1,5 +1,4 @@ -

-

Head modification

+

Head modification

Title modification diff --git a/src/Components/test/testassets/Components.TestServer/Pages/Client/MultipleComponents.cshtml b/src/Components/test/testassets/Components.TestServer/Pages/Client/MultipleComponents.cshtml index 5a91eadaaa41..0f7078e0e603 100644 --- a/src/Components/test/testassets/Components.TestServer/Pages/Client/MultipleComponents.cshtml +++ b/src/Components/test/testassets/Components.TestServer/Pages/Client/MultipleComponents.cshtml @@ -5,7 +5,6 @@ Layout = "./MultipleComponentsLayout.cshtml"; } -

@(await Html.RenderComponentAsync(RenderMode.WebAssemblyPrerendered)) @(await Html.RenderComponentAsync(RenderMode.WebAssembly)) diff --git a/src/Components/test/testassets/Components.TestServer/Pages/MultipleComponents.cshtml b/src/Components/test/testassets/Components.TestServer/Pages/MultipleComponents.cshtml index a3ab97a4f3d0..dff3093166ba 100644 --- a/src/Components/test/testassets/Components.TestServer/Pages/MultipleComponents.cshtml +++ b/src/Components/test/testassets/Components.TestServer/Pages/MultipleComponents.cshtml @@ -5,7 +5,6 @@ Layout = "./MultipleComponentsLayout.cshtml"; } -

@(await Html.RenderComponentAsync(RenderMode.ServerPrerendered)) @(await Html.RenderComponentAsync(RenderMode.Server)) diff --git a/src/Components/test/testassets/Components.TestServer/Pages/PrerenderedHost.cshtml b/src/Components/test/testassets/Components.TestServer/Pages/PrerenderedHost.cshtml index 6eada78e02d7..ff2d847d5bf1 100644 --- a/src/Components/test/testassets/Components.TestServer/Pages/PrerenderedHost.cshtml +++ b/src/Components/test/testassets/Components.TestServer/Pages/PrerenderedHost.cshtml @@ -8,7 +8,6 @@ -

@* diff --git a/src/Components/test/testassets/Components.TestServer/Pages/SaveState.cshtml b/src/Components/test/testassets/Components.TestServer/Pages/SaveState.cshtml index faaa9678ba41..8df0fb304427 100644 --- a/src/Components/test/testassets/Components.TestServer/Pages/SaveState.cshtml +++ b/src/Components/test/testassets/Components.TestServer/Pages/SaveState.cshtml @@ -23,7 +23,6 @@ @* This page is used to validate the ability to preserve and restore the state of components in Blazor server and WebAssembly. *@ -

@if (script == "client") { @* This is here to keep BasicTestApp.Program.cs happy *@ diff --git a/src/Components/test/testassets/Components.TestServer/RazorComponents/NamedFormContextNoFormContextApp.razor b/src/Components/test/testassets/Components.TestServer/RazorComponents/NamedFormContextNoFormContextApp.razor index c5650956e7c4..fc8a291d9821 100644 --- a/src/Components/test/testassets/Components.TestServer/RazorComponents/NamedFormContextNoFormContextApp.razor +++ b/src/Components/test/testassets/Components.TestServer/RazorComponents/NamedFormContextNoFormContextApp.razor @@ -9,7 +9,6 @@

Form test cases

-

diff --git a/src/Components/test/testassets/Components.TestServer/RazorComponents/RemoteAuthenticationApp.razor b/src/Components/test/testassets/Components.TestServer/RazorComponents/RemoteAuthenticationApp.razor index f8a390a764b4..c8f89e587f8f 100644 --- a/src/Components/test/testassets/Components.TestServer/RazorComponents/RemoteAuthenticationApp.razor +++ b/src/Components/test/testassets/Components.TestServer/RazorComponents/RemoteAuthenticationApp.razor @@ -9,7 +9,6 @@ -

diff --git a/src/Components/test/testassets/GlobalizationWasmApp/App.razor b/src/Components/test/testassets/GlobalizationWasmApp/App.razor index 6707e5396dd1..8ee3c33fdcb1 100644 --- a/src/Components/test/testassets/GlobalizationWasmApp/App.razor +++ b/src/Components/test/testassets/GlobalizationWasmApp/App.razor @@ -1,8 +1,6 @@ @using System.Globalization @inject Microsoft.Extensions.Localization.IStringLocalizer Loc -

-

App's culture: @CultureInfo.CurrentCulture

DateTime: @(new DateTime(2020, 09, 02))

From 0ce17b637547f8a8bd0d6f82a600551eabec0f34 Mon Sep 17 00:00:00 2001 From: Ilona Tomkowicz Date: Sat, 30 Aug 2025 08:56:08 +0200 Subject: [PATCH 32/39] Revert "Try on CI if tests run with small or big window (toggle bar has problems locally because it runs in a small window)." This reverts commit 18ee068be59a6bbe79132da101b49635857ebfb9. --- .../testassets/StandaloneApp/Pages/Index.razor | 2 +- .../test/E2ETest/Infrastructure/ServerTestBase.cs | 8 ++------ .../ServerRenderingTests/EnhancedNavigationTestUtil.cs | 2 +- src/Components/test/E2ETest/Tests/StandaloneAppTest.cs | 2 +- src/Components/test/testassets/BasicTestApp/Index.razor | 2 +- .../RazorComponents/Pages/Index.razor | 2 +- 6 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/Components/WebAssembly/testassets/StandaloneApp/Pages/Index.razor b/src/Components/WebAssembly/testassets/StandaloneApp/Pages/Index.razor index 71201aa021ee..16dac3192520 100644 --- a/src/Components/WebAssembly/testassets/StandaloneApp/Pages/Index.razor +++ b/src/Components/WebAssembly/testassets/StandaloneApp/Pages/Index.razor @@ -1,5 +1,5 @@ @page "/" -

Hello, world!

+

Hello, world!

Welcome to your new app. diff --git a/src/Components/test/E2ETest/Infrastructure/ServerTestBase.cs b/src/Components/test/E2ETest/Infrastructure/ServerTestBase.cs index f0a06cc90538..988faa27f3f2 100644 --- a/src/Components/test/E2ETest/Infrastructure/ServerTestBase.cs +++ b/src/Components/test/E2ETest/Infrastructure/ServerTestBase.cs @@ -5,7 +5,6 @@ using Microsoft.AspNetCore.Components.E2ETests.ServerRenderingTests; using Microsoft.AspNetCore.E2ETesting; using OpenQA.Selenium; -using OpenQA.Selenium.BiDi.Communication; using Xunit.Abstractions; namespace Microsoft.AspNetCore.Components.E2ETest.Infrastructure; @@ -15,20 +14,17 @@ public abstract class ServerTestBase IClassFixture where TServerFixture : ServerFixture { - private string _serverPathBase; - public string ServerPathBase => _serverPathBase; + public string ServerPathBase => "/subdir"; protected readonly TServerFixture _serverFixture; public ServerTestBase( BrowserFixture browserFixture, TServerFixture serverFixture, - ITestOutputHelper output, - string serverPathBase = "/subdir") + ITestOutputHelper output) : base(browserFixture, output) { _serverFixture = serverFixture; - _serverPathBase = serverPathBase; } public void Navigate(string relativeUrl) diff --git a/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTestUtil.cs b/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTestUtil.cs index 9a7583a5d398..8908d73e3767 100644 --- a/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTestUtil.cs +++ b/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTestUtil.cs @@ -104,7 +104,7 @@ private static void NavigateToOrigin(ServerTestBase fixture.Browser.Exists(By.TagName("h1")).Text); } private static string GrantTestIdCore(IWebDriver browser) diff --git a/src/Components/test/E2ETest/Tests/StandaloneAppTest.cs b/src/Components/test/E2ETest/Tests/StandaloneAppTest.cs index 233cc1ace533..abdc012a2482 100644 --- a/src/Components/test/E2ETest/Tests/StandaloneAppTest.cs +++ b/src/Components/test/E2ETest/Tests/StandaloneAppTest.cs @@ -16,7 +16,7 @@ public StandaloneAppTest( BrowserFixture browserFixture, BlazorWasmTestAppFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output, "") + : base(browserFixture, serverFixture, output) { } diff --git a/src/Components/test/testassets/BasicTestApp/Index.razor b/src/Components/test/testassets/BasicTestApp/Index.razor index d17a04ca016a..bbe6fe794d69 100644 --- a/src/Components/test/testassets/BasicTestApp/Index.razor +++ b/src/Components/test/testassets/BasicTestApp/Index.razor @@ -3,7 +3,7 @@ @inject NavigationManager NavigationManager
-

Hello

+

Hello

Select test: diff --git a/src/Components/test/testassets/Components.TestServer/RazorComponents/Pages/Index.razor b/src/Components/test/testassets/Components.TestServer/RazorComponents/Pages/Index.razor index 81020bd258ed..cd6f38b6f2e5 100644 --- a/src/Components/test/testassets/Components.TestServer/RazorComponents/Pages/Index.razor +++ b/src/Components/test/testassets/Components.TestServer/RazorComponents/Pages/Index.razor @@ -2,6 +2,6 @@ Home -

Hello

+

Hello

This is a Razor Component endpoint.

From 0994342d7830e1de6627df258dd0764be1c2da0e Mon Sep 17 00:00:00 2001 From: Ilona Tomkowicz Date: Tue, 2 Sep 2025 11:53:25 +0200 Subject: [PATCH 38/39] Fix tests - use specific ID, not TagName that picks the first element of the type. --- .../Tests/SectionsWithCascadingParametersTest.cs | 14 +++++++------- .../E2ETest/Tests/SectionsWithErrorBoundaryTest.cs | 6 +++--- .../SectionsTest/SectionsWithErrorBoundary.razor | 2 +- .../TextComponentWithCascadingParameter.razor | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Components/test/E2ETest/Tests/SectionsWithCascadingParametersTest.cs b/src/Components/test/E2ETest/Tests/SectionsWithCascadingParametersTest.cs index bd69e484a5f8..73a860124ecb 100644 --- a/src/Components/test/E2ETest/Tests/SectionsWithCascadingParametersTest.cs +++ b/src/Components/test/E2ETest/Tests/SectionsWithCascadingParametersTest.cs @@ -35,7 +35,7 @@ public void RenderSectionContent_CascadingParameterForSectionOutletIsDeterminedB Browser.FindElement(By.Id("render-section-outlet")).Click(); Browser.FindElement(By.Id("render-second-section-content")).Click(); - Browser.Equal("Second Section with additional text for second section", () => Browser.Exists(By.TagName("p")).Text); + Browser.Equal("Second Section with additional text for second section", () => Browser.Exists(By.Id("text-component")).Text); } [Fact] @@ -46,7 +46,7 @@ public void ChangeCascadingValueForSectionContent_CascadingValueForSectionOutlet Browser.FindElement(By.Id("change-cascading-value")).Click(); - Browser.Equal("First Section with additional text for second section", () => Browser.Exists(By.TagName("p")).Text); + Browser.Equal("First Section with additional text for second section", () => Browser.Exists(By.Id("text-component")).Text); } [Fact] @@ -56,7 +56,7 @@ public void RenderTwoSectionContentsWithSameId_CascadingParameterForSectionOutle Browser.FindElement(By.Id("render-first-section-content")).Click(); Browser.FindElement(By.Id("render-section-outlet")).Click(); - Browser.Equal("First Section with additional text for first section", () => Browser.Exists(By.TagName("p")).Text); + Browser.Equal("First Section with additional text for first section", () => Browser.Exists(By.Id("text-component")).Text); } [Fact] @@ -68,7 +68,7 @@ public void SecondSectionContentIdChanged_CascadingParameterForSectionOutletIsDe Browser.FindElement(By.Id("change-second-section-content-id")).Click(); - Browser.Equal("First Section with additional text for first section", () => Browser.Exists(By.TagName("p")).Text); + Browser.Equal("First Section with additional text for first section", () => Browser.Exists(By.Id("text-component")).Text); } [Fact] @@ -80,7 +80,7 @@ public void SecondSectionContentDisposed_CascadingParameterForSectionOutletIsDet Browser.FindElement(By.Id("dispose-second-section-content")).Click(); - Browser.Equal("First Section with additional text for first section", () => Browser.Exists(By.TagName("p")).Text); + Browser.Equal("First Section with additional text for first section", () => Browser.Exists(By.Id("text-component")).Text); } [Fact] @@ -92,7 +92,7 @@ public void FirstSectionContentDisposedThenRenderSecondSectionContent_CascadingP Browser.FindElement(By.Id("dispose-first-section-content")).Click(); Browser.FindElement(By.Id("render-second-section-content")).Click(); - Browser.Equal("Second Section with additional text for second section", () => Browser.Exists(By.TagName("p")).Text); + Browser.Equal("Second Section with additional text for second section", () => Browser.Exists(By.Id("text-component")).Text); } [Fact] @@ -105,6 +105,6 @@ public void SectionOutletIdChanged_CascadingParameterForSectionOutletIsDetermine Browser.FindElement(By.Id("change-section-outlet-id")).Click(); - Browser.Equal("Second Section with additional text for second section", () => Browser.Exists(By.TagName("p")).Text); + Browser.Equal("Second Section with additional text for second section", () => Browser.Exists(By.Id("text-component")).Text); } } diff --git a/src/Components/test/E2ETest/Tests/SectionsWithErrorBoundaryTest.cs b/src/Components/test/E2ETest/Tests/SectionsWithErrorBoundaryTest.cs index 3509030754af..25106e9ba4f2 100644 --- a/src/Components/test/E2ETest/Tests/SectionsWithErrorBoundaryTest.cs +++ b/src/Components/test/E2ETest/Tests/SectionsWithErrorBoundaryTest.cs @@ -37,7 +37,7 @@ public void RenderSectionContent_ErrorBoundaryForSectionOutletContentIsDetermine Browser.FindElement(By.Id("error-button")).Click(); - Browser.Equal("Sorry!", () => Browser.Exists(By.TagName("p")).Text); + Browser.Equal("Sorry!", () => Browser.Exists(By.Id("error-content")).Text); } [Fact] @@ -88,7 +88,7 @@ public void FirstSectionContentDisposedThenRenderSecondSectionContent_ErrorBound Browser.FindElement(By.Id("render-second-section-content")).Click(); Browser.FindElement(By.Id("error-button")).Click(); - Browser.Equal("Sorry!", () => Browser.Exists(By.TagName("p")).Text); + Browser.Equal("Sorry!", () => Browser.Exists(By.Id("error-content")).Text); } [Fact] @@ -102,6 +102,6 @@ public void SectionOutletIdChanged_ErrorBoundaryForSectionOutletIsDeterminedByMa Browser.FindElement(By.Id("change-section-outlet-id")).Click(); Browser.FindElement(By.Id("error-button")).Click(); - Browser.Equal("Sorry!", () => Browser.Exists(By.TagName("p")).Text); + Browser.Equal("Sorry!", () => Browser.Exists(By.Id("error-content")).Text); } } diff --git a/src/Components/test/testassets/BasicTestApp/SectionsTest/SectionsWithErrorBoundary.razor b/src/Components/test/testassets/BasicTestApp/SectionsTest/SectionsWithErrorBoundary.razor index 6edb00c7c309..a7ebeb3ee878 100644 --- a/src/Components/test/testassets/BasicTestApp/SectionsTest/SectionsWithErrorBoundary.razor +++ b/src/Components/test/testassets/BasicTestApp/SectionsTest/SectionsWithErrorBoundary.razor @@ -40,7 +40,7 @@ -

Sorry!

+

Sorry!

} diff --git a/src/Components/test/testassets/BasicTestApp/SectionsTest/TextComponentWithCascadingParameter.razor b/src/Components/test/testassets/BasicTestApp/SectionsTest/TextComponentWithCascadingParameter.razor index 0000841c1322..840c6f9f4852 100644 --- a/src/Components/test/testassets/BasicTestApp/SectionsTest/TextComponentWithCascadingParameter.razor +++ b/src/Components/test/testassets/BasicTestApp/SectionsTest/TextComponentWithCascadingParameter.razor @@ -1,4 +1,4 @@ -

@Text @AdditionalText

+

@Text @AdditionalText

@code { [Parameter] From 3e5d43116e67d2d61045d1051892728e432a9b28 Mon Sep 17 00:00:00 2001 From: Ilona Tomkowicz Date: Tue, 2 Sep 2025 16:53:02 +0200 Subject: [PATCH 39/39] ID is not necessary if we're cleaning and not creating it for every test. --- .../EnhancedNavigationTest.cs | 15 ++--------- .../EnhancedNavigationTestUtil.cs | 27 +++---------------- .../RazorComponents/App.razor | 3 +-- .../RazorComponents/Root.razor | 3 +-- 4 files changed, 7 insertions(+), 41 deletions(-) diff --git a/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTest.cs b/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTest.cs index c97da4c44911..49ca00e06915 100644 --- a/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTest.cs +++ b/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTest.cs @@ -847,20 +847,9 @@ private void AssertEnhancedNavigation(bool useEnhancedNavigation, IWebElement el { var logs = Browser.GetBrowserLogs(LogLevel.Warning); logging += $"{string.Join(", ", logs.Select(l => l.Message))}\n"; + isNavigationSuppressed = (string)((IJavaScriptExecutor)Browser).ExecuteScript("return sessionStorage.getItem('suppress-enhanced-navigation');"); - var testId = ((IJavaScriptExecutor)Browser).ExecuteScript("return sessionStorage.getItem('test-id');"); - logging += $" testId: {testId}\n"; - if (testId is null) - { - continue; - } - var suppressKey = $"suppress-enhanced-navigation-{testId}"; - - var enhancedNavAttached = ((IJavaScriptExecutor)Browser).ExecuteScript("return sessionStorage.getItem('blazor-enhanced-nav-attached');"); - isNavigationSuppressed = (string)((IJavaScriptExecutor)Browser).ExecuteScript($"return sessionStorage.getItem('{suppressKey}');"); - - logging += $" suppressKey: {suppressKey}\n"; - logging += $" {suppressKey}: {isNavigationSuppressed}\n"; + logging += $" isNavigationSuppressed: {isNavigationSuppressed}\n"; // Maybe the check was done too early to change the DOM ref, retry } diff --git a/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTestUtil.cs b/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTestUtil.cs index e3410ff517af..ffd0287063a0 100644 --- a/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTestUtil.cs +++ b/src/Components/test/E2ETest/ServerRenderingTests/EnhancedNavigationTestUtil.cs @@ -34,15 +34,9 @@ public static void SuppressEnhancedNavigation(ServerTestBase(ServerTest } NavigateToOrigin(fixture); } - - var testId = ((IJavaScriptExecutor)browser).ExecuteScript($"return sessionStorage.getItem('test-id')"); - if (testId is null || string.IsNullOrEmpty(testId as string)) - { - return; - } - - ((IJavaScriptExecutor)browser).ExecuteScript($"sessionStorage.removeItem('test-id')"); - ((IJavaScriptExecutor)browser).ExecuteScript($"sessionStorage.removeItem('suppress-enhanced-navigation-{testId}')"); + ((IJavaScriptExecutor)browser).ExecuteScript($"sessionStorage.removeItem('suppress-enhanced-navigation')"); } catch (WebDriverException ex) when (ex.Message.Contains("invalid session id")) { @@ -106,13 +92,6 @@ private static void NavigateToOrigin(ServerTestBase Convert.ToInt64(((IJavaScriptExecutor)browser).ExecuteScript("return window.scrollY"), CultureInfo.CurrentCulture); diff --git a/src/Components/test/testassets/Components.TestServer/RazorComponents/App.razor b/src/Components/test/testassets/Components.TestServer/RazorComponents/App.razor index 7b8af1442eea..f547144c8fdd 100644 --- a/src/Components/test/testassets/Components.TestServer/RazorComponents/App.razor +++ b/src/Components/test/testassets/Components.TestServer/RazorComponents/App.razor @@ -137,8 +137,7 @@ } const enableClassicInitializers = sessionStorage.getItem('enable-classic-initializers') === 'true'; - const testId = sessionStorage.getItem('test-id'); - const suppressEnhancedNavigation = testId ? sessionStorage.getItem(`suppress-enhanced-navigation-${testId}`) === 'true' : false; + const suppressEnhancedNavigation = sessionStorage.getItem('suppress-enhanced-navigation') === 'true'; const blockLoadBootResource = sessionStorage.getItem('block-load-boot-resource') === 'true'; const blockWebassemblySettings = sessionStorage.getItem('block-webassembly-settings') === 'true'; sessionStorage.removeItem('block-load-boot-resource'); diff --git a/src/Components/test/testassets/Components.TestServer/RazorComponents/Root.razor b/src/Components/test/testassets/Components.TestServer/RazorComponents/Root.razor index 098813212786..9238fb858c7b 100644 --- a/src/Components/test/testassets/Components.TestServer/RazorComponents/Root.razor +++ b/src/Components/test/testassets/Components.TestServer/RazorComponents/Root.razor @@ -14,8 +14,7 @@