From cc9567136597bae18f45c16382a2a7454a867ba1 Mon Sep 17 00:00:00 2001 From: Ondrej Roztocil Date: Fri, 22 Aug 2025 16:06:09 +0200 Subject: [PATCH 1/3] Fix race condition in EventTest.PreventDefault_DoNotApplyByDefault --- src/Components/test/E2ETest/Tests/EventTest.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Components/test/E2ETest/Tests/EventTest.cs b/src/Components/test/E2ETest/Tests/EventTest.cs index f102f85343eb..9cf5b8df97c4 100644 --- a/src/Components/test/E2ETest/Tests/EventTest.cs +++ b/src/Components/test/E2ETest/Tests/EventTest.cs @@ -278,12 +278,14 @@ public void PreventDefault_AppliesToFormOnSubmitHandlers() } [Fact] - [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/62533")] - public void PreventDefault_DotNotApplyByDefault() + public void PreventDefault_DoNotApplyByDefault() { var appElement = Browser.MountTestComponent(); appElement.FindElement(By.Id("form-2-button")).Click(); - Assert.Contains("about:blank", Browser.Url); + + // The URL should change because the submit event is not prevented + var wait = new WebDriverWait(Browser, TimeSpan.FromSeconds(3)); + wait.Until(driver => driver.Url.Contains("about:blank")); } [Fact] From d2edb283c0c2b2af1642e449b41151b7cefc0dad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Rozto=C4=8Dil?= Date: Fri, 22 Aug 2025 16:57:33 +0200 Subject: [PATCH 2/3] Refactor URL change wait into an extension method --- .../WebDriverExtensions/WebDriverExtensions.cs | 10 ++++++++++ src/Components/test/E2ETest/Tests/EventTest.cs | 3 +-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Components/test/E2ETest/Infrastructure/WebDriverExtensions/WebDriverExtensions.cs b/src/Components/test/E2ETest/Infrastructure/WebDriverExtensions/WebDriverExtensions.cs index 34276e78613e..5ae69466d616 100644 --- a/src/Components/test/E2ETest/Infrastructure/WebDriverExtensions/WebDriverExtensions.cs +++ b/src/Components/test/E2ETest/Infrastructure/WebDriverExtensions/WebDriverExtensions.cs @@ -43,6 +43,16 @@ public static void WaitForElementToBeVisible(this IWebDriver browser, By by, int }); } + public static void WaitForUrlToContain(this IWebDriver browser, string expectedUrlSubstring, int timeoutInSeconds = 5) + { + var wait = new DefaultWait(browser) + { + Timeout = TimeSpan.FromSeconds(timeoutInSeconds), + PollingInterval = TimeSpan.FromMilliseconds(100) + }; + wait.Until(driver => driver.Url.Contains(expectedUrlSubstring, StringComparison.Ordinal)); + } + public static long GetElementPositionWithRetry(this IWebDriver browser, string elementId, int retryCount = 3, int delayBetweenRetriesMs = 100) { var jsExecutor = (IJavaScriptExecutor)browser; diff --git a/src/Components/test/E2ETest/Tests/EventTest.cs b/src/Components/test/E2ETest/Tests/EventTest.cs index 9cf5b8df97c4..0d533f493901 100644 --- a/src/Components/test/E2ETest/Tests/EventTest.cs +++ b/src/Components/test/E2ETest/Tests/EventTest.cs @@ -284,8 +284,7 @@ public void PreventDefault_DoNotApplyByDefault() appElement.FindElement(By.Id("form-2-button")).Click(); // The URL should change because the submit event is not prevented - var wait = new WebDriverWait(Browser, TimeSpan.FromSeconds(3)); - wait.Until(driver => driver.Url.Contains("about:blank")); + Browser.WaitForUrlToContain("about:blank"); } [Fact] From d99c4283dacb63262b2619a9e62cb51c67370433 Mon Sep 17 00:00:00 2001 From: Ondrej Roztocil Date: Fri, 22 Aug 2025 17:57:14 +0200 Subject: [PATCH 3/3] Remove unneeded extension --- .../WebDriverExtensions/WebDriverExtensions.cs | 10 ---------- src/Components/test/E2ETest/Tests/EventTest.cs | 2 +- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/src/Components/test/E2ETest/Infrastructure/WebDriverExtensions/WebDriverExtensions.cs b/src/Components/test/E2ETest/Infrastructure/WebDriverExtensions/WebDriverExtensions.cs index 5ae69466d616..34276e78613e 100644 --- a/src/Components/test/E2ETest/Infrastructure/WebDriverExtensions/WebDriverExtensions.cs +++ b/src/Components/test/E2ETest/Infrastructure/WebDriverExtensions/WebDriverExtensions.cs @@ -43,16 +43,6 @@ public static void WaitForElementToBeVisible(this IWebDriver browser, By by, int }); } - public static void WaitForUrlToContain(this IWebDriver browser, string expectedUrlSubstring, int timeoutInSeconds = 5) - { - var wait = new DefaultWait(browser) - { - Timeout = TimeSpan.FromSeconds(timeoutInSeconds), - PollingInterval = TimeSpan.FromMilliseconds(100) - }; - wait.Until(driver => driver.Url.Contains(expectedUrlSubstring, StringComparison.Ordinal)); - } - public static long GetElementPositionWithRetry(this IWebDriver browser, string elementId, int retryCount = 3, int delayBetweenRetriesMs = 100) { var jsExecutor = (IJavaScriptExecutor)browser; diff --git a/src/Components/test/E2ETest/Tests/EventTest.cs b/src/Components/test/E2ETest/Tests/EventTest.cs index 0d533f493901..8316852991de 100644 --- a/src/Components/test/E2ETest/Tests/EventTest.cs +++ b/src/Components/test/E2ETest/Tests/EventTest.cs @@ -284,7 +284,7 @@ public void PreventDefault_DoNotApplyByDefault() appElement.FindElement(By.Id("form-2-button")).Click(); // The URL should change because the submit event is not prevented - Browser.WaitForUrlToContain("about:blank"); + Browser.Contains("about:blank", () => Browser.Url); } [Fact]