Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 13 additions & 15 deletions dotnet/src/webdriver/BiDi/Network/ContinueWithAuth.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,28 +21,26 @@

namespace OpenQA.Selenium.BiDi.Network;

[JsonPolymorphic(TypeDiscriminatorPropertyName = "action")]
[JsonDerivedType(typeof(ContinueWithAuthCredentials), "provideCredentials")]
[JsonDerivedType(typeof(ContinueWithAuthDefaultCredentials), "default")]
[JsonDerivedType(typeof(ContinueWithAuthCancelCredentials), "cancel")]
internal abstract record ContinueWithAuthParameters(Request Request) : Parameters;

internal sealed record ContinueWithAuthCredentials(Request Request, AuthCredentials Credentials) : ContinueWithAuthParameters(Request);
public abstract record ContinueWithAuth;

internal abstract record ContinueWithAuthNoCredentials(Request Request) : ContinueWithAuthParameters(Request);
public sealed record ContinueWithAuthCredentials(AuthCredentials Credentials) : ContinueWithAuth;

internal sealed record ContinueWithAuthDefaultCredentials(Request Request) : ContinueWithAuthNoCredentials(Request);
public sealed record ContinueWithAuthDefault : ContinueWithAuth;

internal sealed record ContinueWithAuthCancelCredentials(Request Request) : ContinueWithAuthNoCredentials(Request);
public sealed record ContinueWithAuthCancel : ContinueWithAuth;

public abstract record ContinueWithAuthOptions : CommandOptions;
[JsonPolymorphic(TypeDiscriminatorPropertyName = "action")]
[JsonDerivedType(typeof(ContinueWithAuthCredentialsParameters), "provideCredentials")]
[JsonDerivedType(typeof(ContinueWithAuthDefaultParameters), "default")]
[JsonDerivedType(typeof(ContinueWithAuthCancelParameters), "cancel")]
internal abstract record ContinueWithAuthParameters(Request Request) : Parameters;

public sealed record ContinueWithAuthCredentialsOptions : ContinueWithAuthOptions;
internal sealed record ContinueWithAuthCredentialsParameters(Request Request, AuthCredentials Credentials) : ContinueWithAuthParameters(Request);

public abstract record ContinueWithAuthNoCredentialsOptions : ContinueWithAuthOptions;
internal sealed record ContinueWithAuthDefaultParameters(Request Request) : ContinueWithAuthParameters(Request);

public sealed record ContinueWithAuthDefaultCredentialsOptions : ContinueWithAuthNoCredentialsOptions;
internal sealed record ContinueWithAuthCancelParameters(Request Request) : ContinueWithAuthParameters(Request);

public sealed record ContinueWithAuthCancelCredentialsOptions : ContinueWithAuthNoCredentialsOptions;
public sealed record ContinueWithAuthOptions : CommandOptions;

public sealed record ContinueWithAuthResult : EmptyResult;
4 changes: 1 addition & 3 deletions dotnet/src/webdriver/BiDi/Network/INetworkModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,7 @@ public interface INetworkModule
Task<AddInterceptResult> AddInterceptAsync(IEnumerable<InterceptPhase> phases, AddInterceptOptions? options = null, CancellationToken cancellationToken = default);
Task<ContinueRequestResult> ContinueRequestAsync(Request request, ContinueRequestOptions? options = null, CancellationToken cancellationToken = default);
Task<ContinueResponseResult> ContinueResponseAsync(Request request, ContinueResponseOptions? options = null, CancellationToken cancellationToken = default);
Task<ContinueWithAuthResult> ContinueWithAuthAsync(Request request, AuthCredentials credentials, ContinueWithAuthCredentialsOptions? options = null, CancellationToken cancellationToken = default);
Task<ContinueWithAuthResult> ContinueWithAuthAsync(Request request, ContinueWithAuthDefaultCredentialsOptions? options = null, CancellationToken cancellationToken = default);
Task<ContinueWithAuthResult> ContinueWithAuthAsync(Request request, ContinueWithAuthCancelCredentialsOptions? options = null, CancellationToken cancellationToken = default);
Task<ContinueWithAuthResult> ContinueWithAuthAsync(Request request, ContinueWithAuth auth, ContinueWithAuthOptions? options = null, CancellationToken cancellationToken = default);
Task<FailRequestResult> FailRequestAsync(Request request, FailRequestOptions? options = null, CancellationToken cancellationToken = default);
Task<BytesValue> GetDataAsync(DataType dataType, Request request, GetDataOptions? options = null, CancellationToken cancellationToken = default);
Task<Subscription> OnAuthRequiredAsync(Func<AuthRequiredEventArgs, Task> handler, SubscriptionOptions? options = null, CancellationToken cancellationToken = default);
Expand Down
22 changes: 10 additions & 12 deletions dotnet/src/webdriver/BiDi/Network/NetworkModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -165,19 +165,17 @@ public async Task<ProvideResponseResult> ProvideResponseAsync(Request request, P
return await ExecuteAsync(ProvideResponseCommand, @params, options, cancellationToken).ConfigureAwait(false);
}

public async Task<ContinueWithAuthResult> ContinueWithAuthAsync(Request request, AuthCredentials credentials, ContinueWithAuthCredentialsOptions? options = null, CancellationToken cancellationToken = default)
public async Task<ContinueWithAuthResult> ContinueWithAuthAsync(Request request, ContinueWithAuth auth, ContinueWithAuthOptions? options = null, CancellationToken cancellationToken = default)
{
return await ExecuteAsync(ContinueWithAuthCommand, new ContinueWithAuthCredentials(request, credentials), options, cancellationToken).ConfigureAwait(false);
}

public async Task<ContinueWithAuthResult> ContinueWithAuthAsync(Request request, ContinueWithAuthDefaultCredentialsOptions? options = null, CancellationToken cancellationToken = default)
{
return await ExecuteAsync(ContinueWithAuthCommand, new ContinueWithAuthDefaultCredentials(request), options, cancellationToken).ConfigureAwait(false);
}

public async Task<ContinueWithAuthResult> ContinueWithAuthAsync(Request request, ContinueWithAuthCancelCredentialsOptions? options = null, CancellationToken cancellationToken = default)
{
return await ExecuteAsync(ContinueWithAuthCommand, new ContinueWithAuthCancelCredentials(request), options, cancellationToken).ConfigureAwait(false);
ContinueWithAuthParameters @params = auth switch
{
ContinueWithAuthCredentials c => new ContinueWithAuthCredentialsParameters(request, c.Credentials),
ContinueWithAuthDefault => new ContinueWithAuthDefaultParameters(request),
ContinueWithAuthCancel => new ContinueWithAuthCancelParameters(request),
_ => throw new ArgumentException($"Unknown action type: {auth.GetType()}", nameof(auth))
};

return await ExecuteAsync(ContinueWithAuthCommand, @params, options, cancellationToken).ConfigureAwait(false);
}

public async Task<Subscription> OnBeforeRequestSentAsync(Func<BeforeRequestSentEventArgs, Task> handler, SubscriptionOptions? options = null, CancellationToken cancellationToken = default)
Expand Down
6 changes: 3 additions & 3 deletions dotnet/test/webdriver/BiDi/Network/NetworkTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ await bidi.Network.OnAuthRequiredAsync(async e =>
{
if (e.IsBlocked && e.Intercepts?.Contains(result.Intercept) == true)
{
await bidi.Network.ContinueWithAuthAsync(e.Request.Request, new AuthCredentials("test", "test"));
await bidi.Network.ContinueWithAuthAsync(e.Request.Request, new ContinueWithAuthCredentials(new AuthCredentials("test", "test")));
}
});

Expand All @@ -217,7 +217,7 @@ await bidi.Network.OnAuthRequiredAsync(async e =>
{
if (e.IsBlocked && e.Intercepts?.Contains(result.Intercept) == true)
{
await bidi.Network.ContinueWithAuthAsync(e.Request.Request, new ContinueWithAuthDefaultCredentialsOptions());
await bidi.Network.ContinueWithAuthAsync(e.Request.Request, new ContinueWithAuthDefault());
}
});

Expand All @@ -236,7 +236,7 @@ await bidi.Network.OnAuthRequiredAsync(async e =>
{
if (e.IsBlocked && e.Intercepts?.Contains(result.Intercept) == true)
{
await bidi.Network.ContinueWithAuthAsync(e.Request.Request, new ContinueWithAuthCancelCredentialsOptions());
await bidi.Network.ContinueWithAuthAsync(e.Request.Request, new ContinueWithAuthCancel());
}
});

Expand Down
Loading