[dotnet] [test] In-process test webserver#17339
Conversation
Review Summary by QodoReplace Java test webserver with in-process .NET ASP.NET Core implementation
WalkthroughsDescription• Replaces Java-based test webserver with in-process .NET ASP.NET Core implementation • Adds Selenium.Testing.WebServer project with HTTP handlers for test scenarios • Simplifies test infrastructure by removing external process management • Updates test configuration to use dynamic port allocation and /common path mapping File Changes1. dotnet/test/testing.webserver/AppServer.cs
|
Code Review by Qodo
|
|
Thank you, @nvborisenko for this code suggestion. The support packages contain example code that many users find helpful, but they do not necessarily represent After reviewing the change, unless it is a critical fix or a feature that is needed for Selenium We actively encourage people to add the wrapper and helper code that makes sense for them to their own frameworks. |
There was a problem hiding this comment.
Pull request overview
This PR replaces the existing Java-based external test webserver dependency for the .NET test suite with a new in-process ASP.NET Core-based test webserver, and updates .NET test/build wiring to use it.
Changes:
- Added a new
dotnet/test/testing.webserverproject implementing an in-process ASP.NET Core test server (AppServer) plus several test handlers. - Updated the .NET test environment (
EnvironmentManager,UrlBuilder, config) and some tests to use sharedcommon/src/webfixtures via the new server. - Updated solution/Bazel build definitions to include the new webserver project and remove Java appserver/keystore dependencies.
Reviewed changes
Copilot reviewed 28 out of 28 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| dotnet/test/webdriver/Selenium.WebDriver.Tests.csproj | References the new test webserver project; removes Java appserver build target. |
| dotnet/test/webdriver/PositionAndSizeTests.cs | Uses invariant-culture decimal parsing for CSS pixel values. |
| dotnet/test/webdriver/Infrastructure/Environment/UrlBuilder.cs | Simplifies URL construction to target the new in-process server and shared /common paths. |
| dotnet/test/webdriver/Infrastructure/Environment/TestWebServer.cs | Removes the old external-process Java webserver wrapper. |
| dotnet/test/webdriver/Infrastructure/Environment/TestEnvironment.cs | Removes website/server config fields no longer needed with in-process hosting. |
| dotnet/test/webdriver/Infrastructure/Environment/EnvironmentManager.cs | Starts the new in-process AppServer and updates URL building/root discovery. |
| dotnet/test/webdriver/CookieImplementationTests.cs | Updates paths/pages to align with shared common/src/web content layout. |
| dotnet/test/webdriver/BUILD.bazel | Removes Java appserver/keystore data; adds web SDK and new webserver dep. |
| dotnet/test/webdriver/appconfig.json | Removes website/webserver configuration sections. |
| dotnet/test/testing.webserver/Selenium.Testing.WebServer.csproj | New .NET test webserver project definition (ASP.NET Core framework reference). |
| dotnet/test/testing.webserver/Handlers/Utf8Handler.cs | New handler to serve UTF-8 content from shared web fixtures. |
| dotnet/test/testing.webserver/Handlers/UploadHandler.cs | New handler for upload test scenarios. |
| dotnet/test/testing.webserver/Handlers/SleepHandler.cs | New handler that delays responses for page load timeout tests. |
| dotnet/test/testing.webserver/Handlers/RedirectHandler.cs | New handler for redirect scenarios. |
| dotnet/test/testing.webserver/Handlers/PageHandler.cs | New handler to generate simple numbered pages. |
| dotnet/test/testing.webserver/Handlers/FedCmHandler.cs | New handler endpoints for FedCM-related scenarios. |
| dotnet/test/testing.webserver/Handlers/EncodingHandler.cs | New handler serving UTF-16 content for encoding tests. |
| dotnet/test/testing.webserver/Handlers/EchoHandler.cs | New handler echoing request data back to the client. |
| dotnet/test/testing.webserver/Handlers/CreatePageHandler.cs | New handler to create and serve dynamically generated pages. |
| dotnet/test/testing.webserver/Handlers/CookieHandler.cs | New handler to add/delete cookies via response headers. |
| dotnet/test/testing.webserver/Handlers/BasicAuthHandler.cs | New handler implementing basic auth challenge/response behavior. |
| dotnet/test/testing.webserver/BUILD.bazel | New Bazel target for the in-process webserver library and its shared web data. |
| dotnet/test/testing.webserver/AppServer.cs | New in-process ASP.NET Core server that maps handlers and serves shared static fixtures. |
| dotnet/test/support/Selenium.WebDriver.Support.Tests.csproj | Adds project reference to the new test webserver. |
| dotnet/test/support/BUILD.bazel | Adds web SDK and new webserver dep for support tests. |
| dotnet/test/remote/BUILD.bazel | Adds web SDK and new webserver dep for remote tests. |
| dotnet/Selenium.slnx | Adds the new test webserver project to the .NET solution. |
| dotnet/private/dotnet_nunit_test_suite.bzl | Adjusts browser arg selection logic (notably removing default skipping/local-driver handling). |
There was a problem hiding this comment.
Pull request overview
This PR replaces the .NET test infrastructure’s dependency on the Java “appserver” with a new in-process ASP.NET Core-based test web server, and wires it into the .NET test projects/build graph to better align with other language bindings’ internal testing approach.
Changes:
- Added a new
Selenium.Testing.WebServer.NET project implementing an in-process ASP.NET Core test server with multiple test endpoints and access to sharedcommon/src/webfixtures. - Updated .NET test infrastructure to use the new in-process server (removing external Java webserver build/process management and associated config).
- Updated Bazel and solution/project references to include the new webserver project and required SDK settings.
Reviewed changes
Copilot reviewed 28 out of 28 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| dotnet/test/webdriver/Selenium.WebDriver.Tests.csproj | Adds reference to new test webserver project; removes Bazel “build Java appserver” target. |
| dotnet/test/webdriver/PositionAndSizeTests.cs | Uses invariant-culture parsing for CSS pixel values. |
| dotnet/test/webdriver/Infrastructure/Environment/UrlBuilder.cs | Simplifies URL construction (host/port) and hardcodes /common base path. |
| dotnet/test/webdriver/Infrastructure/Environment/TestWebServer.cs | Removes external-process Java test webserver wrapper. |
| dotnet/test/webdriver/Infrastructure/Environment/TestEnvironment.cs | Removes website/webserver configuration fields no longer used. |
| dotnet/test/webdriver/Infrastructure/Environment/EnvironmentManager.cs | Switches to AppServer usage and adds project-root discovery helper. |
| dotnet/test/webdriver/CookieImplementationTests.cs | Updates cookie test navigation paths to /common and adjusts setup page. |
| dotnet/test/webdriver/BUILD.bazel | Removes Java webserver/keystore data deps; adds new webserver dep and project_sdk = "web". |
| dotnet/test/webdriver/appconfig.json | Removes Java webserver + website configuration blocks. |
| dotnet/test/testing.webserver/Selenium.Testing.WebServer.csproj | Introduces new test-only webserver project with ASP.NET Core framework reference. |
| dotnet/test/testing.webserver/Handlers/Utf8Handler.cs | Adds UTF-8 content handler for test pages. |
| dotnet/test/testing.webserver/Handlers/UploadHandler.cs | Adds upload endpoint handler used by upload-related tests. |
| dotnet/test/testing.webserver/Handlers/SleepHandler.cs | Adds sleep/delay endpoint handler used for timing-related tests. |
| dotnet/test/testing.webserver/Handlers/RedirectHandler.cs | Adds redirect endpoint handler. |
| dotnet/test/testing.webserver/Handlers/PageHandler.cs | Adds dynamic “page/{pageNumber}” handler. |
| dotnet/test/testing.webserver/Handlers/FedCmHandler.cs | Adds FedCM-related endpoints for tests. |
| dotnet/test/testing.webserver/Handlers/EncodingHandler.cs | Adds UTF-16 encoding test endpoint. |
| dotnet/test/testing.webserver/Handlers/EchoHandler.cs | Adds request echo endpoint handler. |
| dotnet/test/testing.webserver/Handlers/CreatePageHandler.cs | Adds endpoint to create/serve temporary inline pages for tests. |
| dotnet/test/testing.webserver/Handlers/CookieHandler.cs | Adds cookie set/delete endpoint handler. |
| dotnet/test/testing.webserver/Handlers/BasicAuthHandler.cs | Adds basic-auth endpoint handler. |
| dotnet/test/testing.webserver/BUILD.bazel | Adds Bazel csharp_library target for the new webserver project and includes common web fixtures as data. |
| dotnet/test/testing.webserver/AppServer.cs | Implements the in-process ASP.NET Core server and endpoint/static-file mappings. |
| dotnet/test/support/Selenium.WebDriver.Support.Tests.csproj | Adds reference to new test webserver project. |
| dotnet/test/support/BUILD.bazel | Adds new webserver dep and project_sdk = "web" for support tests. |
| dotnet/test/remote/BUILD.bazel | Adds new webserver dep and project_sdk = "web" for remote tests. |
| dotnet/Selenium.slnx | Registers the new test webserver project in the .NET solution. |
| dotnet/private/dotnet_nunit_test_suite.bzl | Simplifies default browser arg selection (removes default skip conditions). |
There was a problem hiding this comment.
Pull request overview
This PR replaces the Java-based test webserver dependency for .NET Selenium tests with an in-process ASP.NET Core test webserver, aiming to simplify test infrastructure and speed up test runs while reusing the shared common/ HTML fixtures.
Changes:
- Added a new
dotnet/test/testing.webserverproject implementing an in-process ASP.NET CoreAppServerwith multiple test endpoints. - Updated .NET test infrastructure (
EnvironmentManager,UrlBuilder, cookie tests) to use the new server and/common/...URL shape. - Updated solution/Bazel wiring to build/run tests with the new webserver and removed Java appserver build/data dependencies.
Reviewed changes
Copilot reviewed 28 out of 28 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| dotnet/test/webdriver/Selenium.WebDriver.Tests.csproj | References the new .NET test webserver project; removes Java appserver build target. |
| dotnet/test/webdriver/PositionAndSizeTests.cs | Makes CSS numeric parsing culture-invariant. |
| dotnet/test/webdriver/Infrastructure/Environment/UrlBuilder.cs | Reworks URL composition around provided http/https base URLs and /common prefix. |
| dotnet/test/webdriver/Infrastructure/Environment/TestWebServer.cs | Removes the external-process Java appserver harness. |
| dotnet/test/webdriver/Infrastructure/Environment/TestEnvironment.cs | Removes website/webserver config fields no longer used. |
| dotnet/test/webdriver/Infrastructure/Environment/EnvironmentManager.cs | Starts the in-process AppServer and constructs UrlBuilder from returned URLs. |
| dotnet/test/webdriver/CookieImplementationTests.cs | Updates cookie-path expectations and startup navigation for /common URLs. |
| dotnet/test/webdriver/BUILD.bazel | Drops Java webserver/keystore from data; adds dependency on the new webserver and uses project_sdk = "web". |
| dotnet/test/webdriver/appconfig.json | Removes website/webserver configuration blocks. |
| dotnet/test/testing.webserver/Selenium.Testing.WebServer.csproj | Introduces the new test-only webserver project (net8.0 + ASP.NET Core). |
| dotnet/test/testing.webserver/BUILD.bazel | Adds Bazel target for the test webserver and includes shared //common/src/web data. |
| dotnet/test/testing.webserver/AppServer.cs | Implements the ASP.NET Core in-process server and endpoint wiring. |
| dotnet/test/testing.webserver/Handlers/BasicAuthHandler.cs | Adds basic auth endpoint handler. |
| dotnet/test/testing.webserver/Handlers/CookieHandler.cs | Adds cookie manipulation endpoint handler. |
| dotnet/test/testing.webserver/Handlers/CreatePageHandler.cs | Adds endpoint for creating/serving inline pages. |
| dotnet/test/testing.webserver/Handlers/EchoHandler.cs | Adds endpoint that echoes request method/headers/body. |
| dotnet/test/testing.webserver/Handlers/EncodingHandler.cs | Adds UTF-16 content endpoint for encoding tests. |
| dotnet/test/testing.webserver/Handlers/FedCmHandler.cs | Adds FedCM-related endpoints for tests. |
| dotnet/test/testing.webserver/Handlers/PageHandler.cs | Adds dynamic page endpoint. |
| dotnet/test/testing.webserver/Handlers/RedirectHandler.cs | Adds redirect endpoint handler. |
| dotnet/test/testing.webserver/Handlers/SleepHandler.cs | Adds latency endpoint handler. |
| dotnet/test/testing.webserver/Handlers/UploadHandler.cs | Adds upload endpoint handler. |
| dotnet/test/testing.webserver/Handlers/Utf8Handler.cs | Adds handler for serving UTF-8 HTML fixtures. |
| dotnet/test/support/Selenium.WebDriver.Support.Tests.csproj | References the new test webserver project. |
| dotnet/test/support/BUILD.bazel | Adds dependency on new test webserver and uses project_sdk = "web". |
| dotnet/test/remote/BUILD.bazel | Adds dependency on new test webserver and uses project_sdk = "web". |
| dotnet/Selenium.slnx | Registers the new test webserver project in the solution. |
| dotnet/private/dotnet_nunit_test_suite.bzl | Adjusts default browser args selection behavior (removes default skip). |
Updated [Microsoft.AspNetCore.Components.Authorization](https://github.com/dotnet/aspnetcore) from 8.0.26 to 8.0.27. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.Components.Authorization's releases](https://github.com/dotnet/aspnetcore/releases)._ ## 8.0.27 [Release](https://github.com/dotnet/core/releases/tag/v8.0.27) ## What's Changed * [release/8.0] Update branding to 8.0.27 by @vseanreesermsft in dotnet/aspnetcore#66205 * [release/8.0] Update NPM dependencies by @wtgodbe in dotnet/aspnetcore#66052 * [release/8.0] Move off of dead-lettered Windows preview helix queue by @wtgodbe in dotnet/aspnetcore#66220 * [release/8.0] (deps): Bump src/submodules/googletest from `73a63ea` to `d72f9c8` by @dependabot[bot] in dotnet/aspnetcore#66087 * [release/8.0] Replace dn-bot-dnceng-build-rw-code-rw PAT with WIF service connection in mirror-within-azdo by @missymessa in dotnet/aspnetcore#66115 * [release/8.0] Update dependencies from dotnet/source-build-externals by @dotnet-maestro[bot] in dotnet/aspnetcore#66216 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/aspnetcore#66081 * [release/8.0] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro[bot] in dotnet/aspnetcore#66131 * [release/8.0] Update @azure/msal-browser from 2.x to 4.x by @wtgodbe in dotnet/aspnetcore#66236 * [release/8.0] Use source-build-assets repo by @NikolaMilosavljevic in dotnet/aspnetcore#66276 * Merging internal commits for release/8.0 by @vseanreesermsft in dotnet/aspnetcore#66317 **Full Changelog**: dotnet/aspnetcore@v8.0.26...v8.0.27 Commits viewable in [compare view](dotnet/aspnetcore@v8.0.26...v8.0.27). </details> Updated [Microsoft.AspNetCore.Components.WebAssembly](https://github.com/dotnet/aspnetcore) from 8.0.26 to 8.0.27. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.Components.WebAssembly's releases](https://github.com/dotnet/aspnetcore/releases)._ ## 8.0.27 [Release](https://github.com/dotnet/core/releases/tag/v8.0.27) ## What's Changed * [release/8.0] Update branding to 8.0.27 by @vseanreesermsft in dotnet/aspnetcore#66205 * [release/8.0] Update NPM dependencies by @wtgodbe in dotnet/aspnetcore#66052 * [release/8.0] Move off of dead-lettered Windows preview helix queue by @wtgodbe in dotnet/aspnetcore#66220 * [release/8.0] (deps): Bump src/submodules/googletest from `73a63ea` to `d72f9c8` by @dependabot[bot] in dotnet/aspnetcore#66087 * [release/8.0] Replace dn-bot-dnceng-build-rw-code-rw PAT with WIF service connection in mirror-within-azdo by @missymessa in dotnet/aspnetcore#66115 * [release/8.0] Update dependencies from dotnet/source-build-externals by @dotnet-maestro[bot] in dotnet/aspnetcore#66216 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/aspnetcore#66081 * [release/8.0] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro[bot] in dotnet/aspnetcore#66131 * [release/8.0] Update @azure/msal-browser from 2.x to 4.x by @wtgodbe in dotnet/aspnetcore#66236 * [release/8.0] Use source-build-assets repo by @NikolaMilosavljevic in dotnet/aspnetcore#66276 * Merging internal commits for release/8.0 by @vseanreesermsft in dotnet/aspnetcore#66317 **Full Changelog**: dotnet/aspnetcore@v8.0.26...v8.0.27 Commits viewable in [compare view](dotnet/aspnetcore@v8.0.26...v8.0.27). </details> Updated [Microsoft.AspNetCore.Components.WebAssembly.DevServer](https://github.com/dotnet/dotnet) from 10.0.7 to 10.0.8. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.Components.WebAssembly.DevServer's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.AspNetCore.Http.Abstractions](https://github.com/dotnet/aspnetcore) from 2.3.9 to 2.3.10. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.Http.Abstractions's releases](https://github.com/dotnet/aspnetcore/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/aspnetcore/commits). </details> Updated [Microsoft.AspNetCore.Mvc.Testing](https://github.com/dotnet/aspnetcore) from 8.0.26 to 8.0.27. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.Mvc.Testing's releases](https://github.com/dotnet/aspnetcore/releases)._ ## 8.0.27 [Release](https://github.com/dotnet/core/releases/tag/v8.0.27) ## What's Changed * [release/8.0] Update branding to 8.0.27 by @vseanreesermsft in dotnet/aspnetcore#66205 * [release/8.0] Update NPM dependencies by @wtgodbe in dotnet/aspnetcore#66052 * [release/8.0] Move off of dead-lettered Windows preview helix queue by @wtgodbe in dotnet/aspnetcore#66220 * [release/8.0] (deps): Bump src/submodules/googletest from `73a63ea` to `d72f9c8` by @dependabot[bot] in dotnet/aspnetcore#66087 * [release/8.0] Replace dn-bot-dnceng-build-rw-code-rw PAT with WIF service connection in mirror-within-azdo by @missymessa in dotnet/aspnetcore#66115 * [release/8.0] Update dependencies from dotnet/source-build-externals by @dotnet-maestro[bot] in dotnet/aspnetcore#66216 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/aspnetcore#66081 * [release/8.0] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro[bot] in dotnet/aspnetcore#66131 * [release/8.0] Update @azure/msal-browser from 2.x to 4.x by @wtgodbe in dotnet/aspnetcore#66236 * [release/8.0] Use source-build-assets repo by @NikolaMilosavljevic in dotnet/aspnetcore#66276 * Merging internal commits for release/8.0 by @vseanreesermsft in dotnet/aspnetcore#66317 **Full Changelog**: dotnet/aspnetcore@v8.0.26...v8.0.27 Commits viewable in [compare view](dotnet/aspnetcore@v8.0.26...v8.0.27). </details> Updated [Microsoft.AspNetCore.OpenApi](https://github.com/dotnet/aspnetcore) from 8.0.26 to 8.0.27. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.OpenApi's releases](https://github.com/dotnet/aspnetcore/releases)._ ## 8.0.27 [Release](https://github.com/dotnet/core/releases/tag/v8.0.27) ## What's Changed * [release/8.0] Update branding to 8.0.27 by @vseanreesermsft in dotnet/aspnetcore#66205 * [release/8.0] Update NPM dependencies by @wtgodbe in dotnet/aspnetcore#66052 * [release/8.0] Move off of dead-lettered Windows preview helix queue by @wtgodbe in dotnet/aspnetcore#66220 * [release/8.0] (deps): Bump src/submodules/googletest from `73a63ea` to `d72f9c8` by @dependabot[bot] in dotnet/aspnetcore#66087 * [release/8.0] Replace dn-bot-dnceng-build-rw-code-rw PAT with WIF service connection in mirror-within-azdo by @missymessa in dotnet/aspnetcore#66115 * [release/8.0] Update dependencies from dotnet/source-build-externals by @dotnet-maestro[bot] in dotnet/aspnetcore#66216 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/aspnetcore#66081 * [release/8.0] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro[bot] in dotnet/aspnetcore#66131 * [release/8.0] Update @azure/msal-browser from 2.x to 4.x by @wtgodbe in dotnet/aspnetcore#66236 * [release/8.0] Use source-build-assets repo by @NikolaMilosavljevic in dotnet/aspnetcore#66276 * Merging internal commits for release/8.0 by @vseanreesermsft in dotnet/aspnetcore#66317 **Full Changelog**: dotnet/aspnetcore@v8.0.26...v8.0.27 Commits viewable in [compare view](dotnet/aspnetcore@v8.0.26...v8.0.27). </details> Updated [Microsoft.EntityFrameworkCore](https://github.com/dotnet/efcore) from 9.0.15 to 9.0.16. <details> <summary>Release notes</summary> _Sourced from [Microsoft.EntityFrameworkCore's releases](https://github.com/dotnet/efcore/releases)._ ## 9.0.16 [Release](https://github.com/dotnet/core/releases/tag/v9.0.16) ## What's Changed * Merging internal commits for release/8.0 by @vseanreesermsft in dotnet/efcore#37900 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#37969 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#38034 * [release/8.0] Update branding to 8.0.27 by @vseanreesermsft in dotnet/efcore#38062 * [release/9.0] Update branding to 9.0.16 by @vseanreesermsft in dotnet/efcore#38063 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#38053 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in dotnet/efcore#37908 * Merging internal commits for release/8.0 by @vseanreesermsft in dotnet/efcore#38099 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in dotnet/efcore#38101 * Merging internal commits for release/9.0 by @vseanreesermsft in dotnet/efcore#38098 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#38170 **Full Changelog**: dotnet/efcore@v9.0.15...v9.0.16 Commits viewable in [compare view](dotnet/efcore@v9.0.15...v9.0.16). </details> Updated [Microsoft.EntityFrameworkCore.Design](https://github.com/dotnet/efcore) from 9.0.15 to 9.0.16. <details> <summary>Release notes</summary> _Sourced from [Microsoft.EntityFrameworkCore.Design's releases](https://github.com/dotnet/efcore/releases)._ ## 9.0.16 [Release](https://github.com/dotnet/core/releases/tag/v9.0.16) ## What's Changed * Merging internal commits for release/8.0 by @vseanreesermsft in dotnet/efcore#37900 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#37969 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#38034 * [release/8.0] Update branding to 8.0.27 by @vseanreesermsft in dotnet/efcore#38062 * [release/9.0] Update branding to 9.0.16 by @vseanreesermsft in dotnet/efcore#38063 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#38053 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in dotnet/efcore#37908 * Merging internal commits for release/8.0 by @vseanreesermsft in dotnet/efcore#38099 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in dotnet/efcore#38101 * Merging internal commits for release/9.0 by @vseanreesermsft in dotnet/efcore#38098 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#38170 **Full Changelog**: dotnet/efcore@v9.0.15...v9.0.16 Commits viewable in [compare view](dotnet/efcore@v9.0.15...v9.0.16). </details> Updated [Microsoft.EntityFrameworkCore.InMemory](https://github.com/dotnet/efcore) from 9.0.15 to 9.0.16. <details> <summary>Release notes</summary> _Sourced from [Microsoft.EntityFrameworkCore.InMemory's releases](https://github.com/dotnet/efcore/releases)._ ## 9.0.16 [Release](https://github.com/dotnet/core/releases/tag/v9.0.16) ## What's Changed * Merging internal commits for release/8.0 by @vseanreesermsft in dotnet/efcore#37900 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#37969 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#38034 * [release/8.0] Update branding to 8.0.27 by @vseanreesermsft in dotnet/efcore#38062 * [release/9.0] Update branding to 9.0.16 by @vseanreesermsft in dotnet/efcore#38063 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#38053 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in dotnet/efcore#37908 * Merging internal commits for release/8.0 by @vseanreesermsft in dotnet/efcore#38099 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in dotnet/efcore#38101 * Merging internal commits for release/9.0 by @vseanreesermsft in dotnet/efcore#38098 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#38170 **Full Changelog**: dotnet/efcore@v9.0.15...v9.0.16 Commits viewable in [compare view](dotnet/efcore@v9.0.15...v9.0.16). </details> Updated [Microsoft.EntityFrameworkCore.Relational](https://github.com/dotnet/efcore) from 9.0.15 to 9.0.16. <details> <summary>Release notes</summary> _Sourced from [Microsoft.EntityFrameworkCore.Relational's releases](https://github.com/dotnet/efcore/releases)._ ## 9.0.16 [Release](https://github.com/dotnet/core/releases/tag/v9.0.16) ## What's Changed * Merging internal commits for release/8.0 by @vseanreesermsft in dotnet/efcore#37900 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#37969 * [release/8.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#38034 * [release/8.0] Update branding to 8.0.27 by @vseanreesermsft in dotnet/efcore#38062 * [release/9.0] Update branding to 9.0.16 by @vseanreesermsft in dotnet/efcore#38063 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#38053 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in dotnet/efcore#37908 * Merging internal commits for release/8.0 by @vseanreesermsft in dotnet/efcore#38099 * [automated] Merge branch 'release/8.0' => 'release/9.0' by @github-actions[bot] in dotnet/efcore#38101 * Merging internal commits for release/9.0 by @vseanreesermsft in dotnet/efcore#38098 * [release/9.0] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/efcore#38170 **Full Changelog**: dotnet/efcore@v9.0.15...v9.0.16 Commits viewable in [compare view](dotnet/efcore@v9.0.15...v9.0.16). </details> Updated [Microsoft.Extensions.Caching.Abstractions](https://github.com/dotnet/dotnet) from 10.0.7 to 10.0.8. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Caching.Abstractions's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Configuration](https://github.com/dotnet/dotnet) from 10.0.7 to 10.0.8. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Configuration's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Configuration.Binder](https://github.com/dotnet/dotnet) from 10.0.7 to 10.0.8. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Configuration.Binder's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Hosting](https://github.com/dotnet/dotnet) from 10.0.7 to 10.0.8. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Hosting's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Http](https://github.com/dotnet/dotnet) from 10.0.7 to 10.0.8. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Http's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Options.DataAnnotations](https://github.com/dotnet/dotnet) from 10.0.7 to 10.0.8. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Options.DataAnnotations's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Selenium.Support](https://github.com/SeleniumHQ/selenium) from 4.43.0 to 4.44.0. <details> <summary>Release notes</summary> _Sourced from [Selenium.Support's releases](https://github.com/SeleniumHQ/selenium/releases)._ ## 4.44.0 ## Detailed Changelogs by Component <img src="https://www.selenium.dev/images/programming/java.svg" width="20" height="20"> **[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)** | <img src="https://www.selenium.dev/images/programming/python.svg" width="20" height="20"> **[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)** | <img src="https://www.selenium.dev/images/programming/dotnet.svg" width="20" height="20"> **[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)** | <img src="https://www.selenium.dev/images/programming/ruby.svg" width="20" height="20"> **[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)** | <img src="https://www.selenium.dev/images/programming/javascript.svg" width="20" height="20"> **[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)** <br> <!-- Release notes generated using configuration in .github/release.yml at da2039bd1456a161d0c284de16f9f4f179f1e8ca --> ## What's Changed <details> <summary>Click to see all the changes included in this release</summary> * fix(documentation): update artifact naming for generated docs by @diemol in SeleniumHQ/selenium#17332 * fix(ruby): retrieve devtools version dynamically for package verification by @diemol in SeleniumHQ/selenium#17335 * [dotnet] Don't truncate internal log messages at error/warn levels by @nvborisenko in SeleniumHQ/selenium#17333 * [dotnet] Safe modifications of internal log handlers by @nvborisenko in SeleniumHQ/selenium#17334 * [dotnet] Remove planned obsoleted members for 4.44 by @nvborisenko in SeleniumHQ/selenium#17328 * [dotnet] [bidi] Statically declare commands by @nvborisenko in SeleniumHQ/selenium#17330 * [dotnet] [bidi] Statically declared events by @nvborisenko in SeleniumHQ/selenium#17331 * [dotnet] Add C# 14 extension to polyfill `ArgumentNullException.ThrowIfNull` by @RenderMichael in SeleniumHQ/selenium#16697 * [dotnet] [bidi] Align SetDownloadBehavior command by @nvborisenko in SeleniumHQ/selenium#17336 * [dotnet] [bidi] Align ContinueWithAuth command by @nvborisenko in SeleniumHQ/selenium#17337 * [dotnet] [bidi] Align SetGeolocation polymorphic command by @nvborisenko in SeleniumHQ/selenium#17338 * [dotnet] [test] In-process test webserver by @nvborisenko in SeleniumHQ/selenium#17339 * [java] deprecate the 'native' methods inside the HttpClient interface by @joerg1985 in SeleniumHQ/selenium#17340 * CDDL 2 Python generator by @AutomatedTester in SeleniumHQ/selenium#16914 * Fix py:local_dev rake task by @cgoldberg in SeleniumHQ/selenium#17342 * [grid] Accept legacy session-closed event payloads by @VietND96 in SeleniumHQ/selenium#17343 * [java] specify nullability in package `org.openqa.selenium.remote` by @asolntsev in SeleniumHQ/selenium#17325 * fix NPE when response status is null by @asolntsev in SeleniumHQ/selenium#17348 * [java] fix NoSuchElementException for custom By locators by @Chandan25sharma in SeleniumHQ/selenium#17287 * [py] Update docs with pytest example and minor formatting fixes by @cgoldberg in SeleniumHQ/selenium#17351 * [dotnet] Fix stopping of network monitoring via DevTools by @nvborisenko in SeleniumHQ/selenium#17352 * [dotnet] [test] Update tests to target .NET 10 by @nvborisenko in SeleniumHQ/selenium#17353 * [build] Clean extra tools from GHA runner to free disk space by @cgoldberg in SeleniumHQ/selenium#17360 * Initial Creation of the Selenium CLI Tool by @AutomatedTester in SeleniumHQ/selenium#17327 * [java] fix some nullability warnings by @asolntsev in SeleniumHQ/selenium#17362 * [py] Use generated Bidi files instead of hand curated ones by @AutomatedTester in SeleniumHQ/selenium#17266 * [docs] Add AI-assisted contribution policy by @titusfortner in SeleniumHQ/selenium#17043 * [Agents] Update agents to make sure do linting. by @AutomatedTester in SeleniumHQ/selenium#17366 * [py] Bump dependencies by @cgoldberg in SeleniumHQ/selenium#17368 * [git] update gitignore to exclude mempalace by @AutomatedTester in SeleniumHQ/selenium#17369 * [java] remove field `ChromiumDriver.capabilities` by @asolntsev in SeleniumHQ/selenium#17363 * [spec] Use http_file for the cddl files by @AutomatedTester in SeleniumHQ/selenium#17372 * [dotnet] [bidi] Obsolete Type(string) method in Input module by @nvborisenko in SeleniumHQ/selenium#17377 * Fix Network failures by @AutomatedTester in SeleniumHQ/selenium#17381 * [java] [test] Unignore bidi network conditions tests for Firefox by @nvborisenko in SeleniumHQ/selenium#17385 * [dotnet] [test] Unignore network conditions tests for Firefox by @nvborisenko in SeleniumHQ/selenium#17386 * [dotnet] [test] Migrate to MTP by @nvborisenko in SeleniumHQ/selenium#17384 * [dotnet] Support `UnhandledPromptBehavior` option as string and map (breaking change) by @nvborisenko in SeleniumHQ/selenium#16557 ... (truncated) Commits viewable in [compare view](SeleniumHQ/selenium@selenium-4.43.0...selenium-4.44.0). </details> Updated [Selenium.WebDriver](https://github.com/SeleniumHQ/selenium) from 4.43.0 to 4.44.0. <details> <summary>Release notes</summary> _Sourced from [Selenium.WebDriver's releases](https://github.com/SeleniumHQ/selenium/releases)._ ## 4.44.0 ## Detailed Changelogs by Component <img src="https://www.selenium.dev/images/programming/java.svg" width="20" height="20"> **[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)** | <img src="https://www.selenium.dev/images/programming/python.svg" width="20" height="20"> **[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)** | <img src="https://www.selenium.dev/images/programming/dotnet.svg" width="20" height="20"> **[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)** | <img src="https://www.selenium.dev/images/programming/ruby.svg" width="20" height="20"> **[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)** | <img src="https://www.selenium.dev/images/programming/javascript.svg" width="20" height="20"> **[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)** <br> <!-- Release notes generated using configuration in .github/release.yml at da2039bd1456a161d0c284de16f9f4f179f1e8ca --> ## What's Changed <details> <summary>Click to see all the changes included in this release</summary> * fix(documentation): update artifact naming for generated docs by @diemol in SeleniumHQ/selenium#17332 * fix(ruby): retrieve devtools version dynamically for package verification by @diemol in SeleniumHQ/selenium#17335 * [dotnet] Don't truncate internal log messages at error/warn levels by @nvborisenko in SeleniumHQ/selenium#17333 * [dotnet] Safe modifications of internal log handlers by @nvborisenko in SeleniumHQ/selenium#17334 * [dotnet] Remove planned obsoleted members for 4.44 by @nvborisenko in SeleniumHQ/selenium#17328 * [dotnet] [bidi] Statically declare commands by @nvborisenko in SeleniumHQ/selenium#17330 * [dotnet] [bidi] Statically declared events by @nvborisenko in SeleniumHQ/selenium#17331 * [dotnet] Add C# 14 extension to polyfill `ArgumentNullException.ThrowIfNull` by @RenderMichael in SeleniumHQ/selenium#16697 * [dotnet] [bidi] Align SetDownloadBehavior command by @nvborisenko in SeleniumHQ/selenium#17336 * [dotnet] [bidi] Align ContinueWithAuth command by @nvborisenko in SeleniumHQ/selenium#17337 * [dotnet] [bidi] Align SetGeolocation polymorphic command by @nvborisenko in SeleniumHQ/selenium#17338 * [dotnet] [test] In-process test webserver by @nvborisenko in SeleniumHQ/selenium#17339 * [java] deprecate the 'native' methods inside the HttpClient interface by @joerg1985 in SeleniumHQ/selenium#17340 * CDDL 2 Python generator by @AutomatedTester in SeleniumHQ/selenium#16914 * Fix py:local_dev rake task by @cgoldberg in SeleniumHQ/selenium#17342 * [grid] Accept legacy session-closed event payloads by @VietND96 in SeleniumHQ/selenium#17343 * [java] specify nullability in package `org.openqa.selenium.remote` by @asolntsev in SeleniumHQ/selenium#17325 * fix NPE when response status is null by @asolntsev in SeleniumHQ/selenium#17348 * [java] fix NoSuchElementException for custom By locators by @Chandan25sharma in SeleniumHQ/selenium#17287 * [py] Update docs with pytest example and minor formatting fixes by @cgoldberg in SeleniumHQ/selenium#17351 * [dotnet] Fix stopping of network monitoring via DevTools by @nvborisenko in SeleniumHQ/selenium#17352 * [dotnet] [test] Update tests to target .NET 10 by @nvborisenko in SeleniumHQ/selenium#17353 * [build] Clean extra tools from GHA runner to free disk space by @cgoldberg in SeleniumHQ/selenium#17360 * Initial Creation of the Selenium CLI Tool by @AutomatedTester in SeleniumHQ/selenium#17327 * [java] fix some nullability warnings by @asolntsev in SeleniumHQ/selenium#17362 * [py] Use generated Bidi files instead of hand curated ones by @AutomatedTester in SeleniumHQ/selenium#17266 * [docs] Add AI-assisted contribution policy by @titusfortner in SeleniumHQ/selenium#17043 * [Agents] Update agents to make sure do linting. by @AutomatedTester in SeleniumHQ/selenium#17366 * [py] Bump dependencies by @cgoldberg in SeleniumHQ/selenium#17368 * [git] update gitignore to exclude mempalace by @AutomatedTester in SeleniumHQ/selenium#17369 * [java] remove field `ChromiumDriver.capabilities` by @asolntsev in SeleniumHQ/selenium#17363 * [spec] Use http_file for the cddl files by @AutomatedTester in SeleniumHQ/selenium#17372 * [dotnet] [bidi] Obsolete Type(string) method in Input module by @nvborisenko in SeleniumHQ/selenium#17377 * Fix Network failures by @AutomatedTester in SeleniumHQ/selenium#17381 * [java] [test] Unignore bidi network conditions tests for Firefox by @nvborisenko in SeleniumHQ/selenium#17385 * [dotnet] [test] Unignore network conditions tests for Firefox by @nvborisenko in SeleniumHQ/selenium#17386 * [dotnet] [test] Migrate to MTP by @nvborisenko in SeleniumHQ/selenium#17384 * [dotnet] Support `UnhandledPromptBehavior` option as string and map (breaking change) by @nvborisenko in SeleniumHQ/selenium#16557 ... (truncated) Commits viewable in [compare view](SeleniumHQ/selenium@selenium-4.43.0...selenium-4.44.0). </details> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Don't use Java test webserver, use dotnet based.
🔗 Related Issues
Contributes to #15536
💥 What does this PR do?
This pull request introduces a reusable .NET test web server for Selenium tests and integrates it into the test infrastructure. The main changes include adding the new
Selenium.Testing.WebServerproject, implementing various HTTP handlers for test scenarios, and updating test builds to consume the new web server.Addition of reusable test web server:
Selenium.Testing.WebServerproject (Selenium.Testing.WebServer.csproj) containing theAppServerclass, which hosts an ASP.NET Core web server for Selenium tests. This server provides endpoints for authentication, cookies, echoing requests, custom page creation, file uploads, and more. [1] [2]BasicAuthHandler,CookieHandler,CreatePageHandler,EchoHandler, andEncodingHandler, each providing HTTP endpoints for Selenium test scenarios. [1] [2] [3] [4] [5]Integration into test infrastructure:
Selenium.slnx) and as a dependency in relevant test projects and Bazel build files, ensuring that test suites can use the shared web server. [1] [2] [3] [4]Test suite configuration improvements:
project_sdk = "web"and add the web server as a dependency for remote and support test suites, enabling seamless use of the test server in test runs. [1] [2]Cleanup of test suite parameters:
_BROWSERSwithindotnet_nunit_test_suite.bzlby removing the default skip condition for unsupported browsers, making test execution logic more straightforward. [1] [2] [3]🔧 Implementation Notes
New
testingnamespace for testing :)🔄 Types of changes