summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs')
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs63
1 files changed, 1 insertions, 62 deletions
diff --git a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs
index 7c7f945..fd53fd1 100644
--- a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs
@@ -9,6 +9,7 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions {
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
+ using System.Threading;
using System.Threading.Tasks;
using DotNetOpenAuth.Messaging;
@@ -23,68 +24,6 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions {
using Validation;
public static class ExtensionTestUtilities {
- /// <summary>
- /// Simulates an extension request and response.
- /// </summary>
- /// <param name="protocol">The protocol to use in the roundtripping.</param>
- /// <param name="requests">The extensions to add to the request message.</param>
- /// <param name="responses">The extensions to add to the response message.</param>
- /// <remarks>
- /// This method relies on the extension objects' Equals methods to verify
- /// accurate transport. The Equals methods should be verified by separate tests.
- /// </remarks>
- internal static async Task RoundtripAsync(
- Protocol protocol,
- IEnumerable<IOpenIdMessageExtension> requests,
- IEnumerable<IOpenIdMessageExtension> responses) {
- var securitySettings = new ProviderSecuritySettings();
- var cryptoKeyStore = new MemoryCryptoKeyStore();
- var associationStore = new ProviderAssociationHandleEncoder(cryptoKeyStore);
- Association association = HmacShaAssociationProvider.Create(protocol, protocol.Args.SignatureAlgorithm.Best, AssociationRelyingPartyType.Smart, associationStore, securitySettings);
- await TestBase.RunAsync(
- OpenIdTestBase.RelyingPartyDriver(async (rp, ct) => {
- RegisterExtension(rp.Channel, Mocks.MockOpenIdExtension.Factory);
- var requestBase = new CheckIdRequest(protocol.Version, OpenIdTestBase.OPUri, AuthenticationRequestMode.Immediate);
- OpenIdTestBase.StoreAssociation(rp, OpenIdTestBase.OPUri, association);
- requestBase.AssociationHandle = association.Handle;
- requestBase.ClaimedIdentifier = "http://claimedid";
- requestBase.LocalIdentifier = "http://localid";
- requestBase.ReturnTo = OpenIdTestBase.RPUri;
-
- foreach (IOpenIdMessageExtension extension in requests) {
- requestBase.Extensions.Add(extension);
- }
-
- var redirectingRequest = await rp.Channel.PrepareResponseAsync(requestBase);
- Uri redirectingResponseUri;
- using (var httpClient = rp.Channel.HostFactories.CreateHttpClient()) {
- using (var redirectingResponse = await httpClient.GetAsync(redirectingRequest.Headers.Location, ct)) {
- redirectingResponse.EnsureSuccessStatusCode();
- redirectingResponseUri = redirectingResponse.Headers.Location;
- }
- }
-
- var response = await rp.Channel.ReadFromRequestAsync<PositiveAssertionResponse>(new HttpRequestMessage(HttpMethod.Get, redirectingResponseUri), ct);
- var receivedResponses = response.Extensions.Cast<IOpenIdMessageExtension>();
- CollectionAssert<IOpenIdMessageExtension>.AreEquivalentByEquality(responses.ToArray(), receivedResponses.ToArray());
- }),
- OpenIdTestBase.HandleProvider(async (op, req, ct) => {
- RegisterExtension(op.Channel, Mocks.MockOpenIdExtension.Factory);
- var key = cryptoKeyStore.GetCurrentKey(ProviderAssociationHandleEncoder.AssociationHandleEncodingSecretBucket, TimeSpan.FromSeconds(1));
- op.CryptoKeyStore.StoreKey(ProviderAssociationHandleEncoder.AssociationHandleEncodingSecretBucket, key.Key, key.Value);
- var request = await op.Channel.ReadFromRequestAsync<CheckIdRequest>(req, ct);
- var response = new PositiveAssertionResponse(request);
- var receivedRequests = request.Extensions.Cast<IOpenIdMessageExtension>();
- CollectionAssert<IOpenIdMessageExtension>.AreEquivalentByEquality(requests.ToArray(), receivedRequests.ToArray());
-
- foreach (var extensionResponse in responses) {
- response.Extensions.Add(extensionResponse);
- }
-
- return await op.Channel.PrepareResponseAsync(response, ct);
- }));
- }
-
internal static void RegisterExtension(Channel channel, StandardOpenIdExtensionFactory.CreateDelegate extensionFactory) {
Requires.NotNull(channel, "channel");