diff --git a/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs b/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs index 9ac6504950b2c..240e30330655a 100644 --- a/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs +++ b/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs @@ -120,7 +120,6 @@ namespace OpenQA.Selenium.BiDi.Communication.Json; [JsonSerializable(typeof(Modules.BrowsingContext.UserPromptOpenedEventArgs))] [JsonSerializable(typeof(Modules.BrowsingContext.UserPromptClosedEventArgs))] -[JsonSerializable(typeof(Modules.Network.ContinueWithAuthParameters.Default), TypeInfoPropertyName = "Network_ContinueWithAuthParameters_Default")] [JsonSerializable(typeof(Modules.Network.AddInterceptCommand))] [JsonSerializable(typeof(Modules.Network.AddInterceptResult))] [JsonSerializable(typeof(Modules.Network.ContinueRequestCommand))] diff --git a/dotnet/src/webdriver/BiDi/Modules/Network/ContinueWithAuthCommand.cs b/dotnet/src/webdriver/BiDi/Modules/Network/ContinueWithAuthCommand.cs index 510d8512d0ce1..ccc938205b216 100644 --- a/dotnet/src/webdriver/BiDi/Modules/Network/ContinueWithAuthCommand.cs +++ b/dotnet/src/webdriver/BiDi/Modules/Network/ContinueWithAuthCommand.cs @@ -26,20 +26,26 @@ internal class ContinueWithAuthCommand(ContinueWithAuthParameters @params) : Command(@params, "network.continueWithAuth"); [JsonPolymorphic(TypeDiscriminatorPropertyName = "action")] -[JsonDerivedType(typeof(Credentials), "provideCredentials")] -[JsonDerivedType(typeof(Default), "default")] -[JsonDerivedType(typeof(Cancel), "cancel")] -internal abstract record ContinueWithAuthParameters(Request Request) : CommandParameters -{ - internal record Credentials(Request Request, [property: JsonPropertyName("credentials")] AuthCredentials AuthCredentials) : ContinueWithAuthParameters(Request); +[JsonDerivedType(typeof(ContinueWithAuthCredentials), "provideCredentials")] +[JsonDerivedType(typeof(ContinueWithAuthDefaultCredentials), "default")] +[JsonDerivedType(typeof(ContinueWithAuthCancelCredentials), "cancel")] +internal abstract record ContinueWithAuthParameters(Request Request) : CommandParameters; - internal record Default(Request Request) : ContinueWithAuthParameters(Request); +internal record ContinueWithAuthCredentials(Request Request, AuthCredentials Credentials) : ContinueWithAuthParameters(Request); - internal record Cancel(Request Request) : ContinueWithAuthParameters(Request); -} +internal abstract record ContinueWithAuthNoCredentials(Request Request) : ContinueWithAuthParameters(Request); + +internal record ContinueWithAuthDefaultCredentials(Request Request) : ContinueWithAuthNoCredentials(Request); + +internal record ContinueWithAuthCancelCredentials(Request Request) : ContinueWithAuthNoCredentials(Request); public record ContinueWithAuthOptions : CommandOptions; -public record ContinueWithDefaultAuthOptions : CommandOptions; +public record ContinueWithAuthCredentialsOptions : ContinueWithAuthOptions; + +public record ContinueWithAuthNoCredentialsOptions : ContinueWithAuthOptions; + +public record ContinueWithAuthDefaultCredentialsOptions : ContinueWithAuthNoCredentialsOptions; + +public record ContinueWithAuthCancelCredentialsOptions : ContinueWithAuthNoCredentialsOptions; -public record ContinueWithCancelledAuthOptions : CommandOptions; diff --git a/dotnet/src/webdriver/BiDi/Modules/Network/NetworkModule.cs b/dotnet/src/webdriver/BiDi/Modules/Network/NetworkModule.cs index fb279ef947b9e..86940f38722d6 100644 --- a/dotnet/src/webdriver/BiDi/Modules/Network/NetworkModule.cs +++ b/dotnet/src/webdriver/BiDi/Modules/Network/NetworkModule.cs @@ -104,19 +104,19 @@ internal async Task ProvideResponseAsync(Request request, ProvideResponseOptions await Broker.ExecuteCommandAsync(new ProvideResponseCommand(@params), options).ConfigureAwait(false); } - internal async Task ContinueWithAuthAsync(Request request, AuthCredentials credentials, ContinueWithAuthOptions? options = null) + internal async Task ContinueWithAuthAsync(Request request, AuthCredentials credentials, ContinueWithAuthCredentialsOptions? options = null) { - await Broker.ExecuteCommandAsync(new ContinueWithAuthCommand(new ContinueWithAuthParameters.Credentials(request, credentials)), options).ConfigureAwait(false); + await Broker.ExecuteCommandAsync(new ContinueWithAuthCommand(new ContinueWithAuthCredentials(request, credentials)), options).ConfigureAwait(false); } - internal async Task ContinueWithAuthAsync(Request request, ContinueWithDefaultAuthOptions? options = null) + internal async Task ContinueWithAuthAsync(Request request, ContinueWithAuthDefaultCredentialsOptions? options = null) { - await Broker.ExecuteCommandAsync(new ContinueWithAuthCommand(new ContinueWithAuthParameters.Default(request)), options).ConfigureAwait(false); + await Broker.ExecuteCommandAsync(new ContinueWithAuthCommand(new ContinueWithAuthDefaultCredentials(request)), options).ConfigureAwait(false); } - internal async Task ContinueWithAuthAsync(Request request, ContinueWithCancelledAuthOptions? options = null) + internal async Task ContinueWithAuthAsync(Request request, ContinueWithAuthCancelCredentialsOptions? options = null) { - await Broker.ExecuteCommandAsync(new ContinueWithAuthCommand(new ContinueWithAuthParameters.Cancel(request)), options).ConfigureAwait(false); + await Broker.ExecuteCommandAsync(new ContinueWithAuthCommand(new ContinueWithAuthCancelCredentials(request)), options).ConfigureAwait(false); } public async Task OnBeforeRequestSentAsync(Func handler, SubscriptionOptions? options = null) diff --git a/dotnet/src/webdriver/BiDi/Modules/Network/Request.cs b/dotnet/src/webdriver/BiDi/Modules/Network/Request.cs index 6bec25944a91f..402a59fb1c3a2 100644 --- a/dotnet/src/webdriver/BiDi/Modules/Network/Request.cs +++ b/dotnet/src/webdriver/BiDi/Modules/Network/Request.cs @@ -53,17 +53,17 @@ public Task ContinueResponseAsync(ContinueResponseOptions? options = null) return _bidi.Network.ContinueResponseAsync(this, options); } - public Task ContinueWithAuthAsync(AuthCredentials credentials, ContinueWithAuthOptions? options = null) + public Task ContinueWithAuthAsync(AuthCredentials credentials, ContinueWithAuthCredentialsOptions? options = null) { return _bidi.Network.ContinueWithAuthAsync(this, credentials, options); } - public Task ContinueWithAuthAsync(ContinueWithDefaultAuthOptions? options = null) + public Task ContinueWithAuthAsync(ContinueWithAuthDefaultCredentialsOptions? options = null) { return _bidi.Network.ContinueWithAuthAsync(this, options); } - public Task ContinueWithAuthAsync(ContinueWithCancelledAuthOptions? options = null) + public Task ContinueWithAuthAsync(ContinueWithAuthCancelCredentialsOptions? options = null) { return _bidi.Network.ContinueWithAuthAsync(this, options); } diff --git a/dotnet/test/common/BiDi/Network/NetworkTest.cs b/dotnet/test/common/BiDi/Network/NetworkTest.cs index 2773d539dbb37..9fedb7bd8e5c8 100644 --- a/dotnet/test/common/BiDi/Network/NetworkTest.cs +++ b/dotnet/test/common/BiDi/Network/NetworkTest.cs @@ -162,7 +162,6 @@ public async Task CanContinueWithAuthCredentials() { await using var intercept = await bidi.Network.InterceptAuthAsync(async e => { - //TODO Seems it would be better to have method which takes abstract options await e.Request.Request.ContinueWithAuthAsync(new AuthCredentials("test", "test")); }); @@ -177,7 +176,7 @@ public async Task CanContinueWithDefaultCredentials() { await using var intercept = await bidi.Network.InterceptAuthAsync(async e => { - await e.Request.Request.ContinueWithAuthAsync(new ContinueWithDefaultAuthOptions()); + await e.Request.Request.ContinueWithAuthAsync(new ContinueWithAuthDefaultCredentialsOptions()); }); var action = async () => await context.NavigateAsync(UrlBuilder.WhereIs("basicAuth"), new() { Wait = ReadinessState.Complete }); @@ -191,7 +190,7 @@ public async Task CanContinueWithCanceledCredentials() { await using var intercept = await bidi.Network.InterceptAuthAsync(async e => { - await e.Request.Request.ContinueWithAuthAsync(new ContinueWithCancelledAuthOptions()); + await e.Request.Request.ContinueWithAuthAsync(new ContinueWithAuthCancelCredentialsOptions()); }); var action = async () => await context.NavigateAsync(UrlBuilder.WhereIs("basicAuth"), new() { Wait = ReadinessState.Complete });