summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/DotNetOpenAuth.Test/CoordinatorBase.cs44
-rw-r--r--src/DotNetOpenAuth.Test/MockingHostFactories.cs12
-rw-r--r--src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs36
-rw-r--r--src/DotNetOpenAuth.Test/OAuth/AppendixScenarios.cs8
-rw-r--r--src/DotNetOpenAuth.Test/OAuth/ChannelElements/OAuthChannelTests.cs4
-rw-r--r--src/DotNetOpenAuth.Test/OAuth2/AuthorizationServerTests.cs18
-rw-r--r--src/DotNetOpenAuth.Test/OAuth2/ResourceServerTests.cs2
-rw-r--r--src/DotNetOpenAuth.Test/OAuth2/UserAgentClientAuthorizeTests.cs6
-rw-r--r--src/DotNetOpenAuth.Test/OAuth2/WebServerClientAuthorizeTests.cs10
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/AssociationHandshakeTests.cs4
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/AuthenticationTests.cs12
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/ChannelElements/ExtensionsBindingElementTests.cs4
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/DiscoveryServices/UriDiscoveryServiceTests.cs2
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs2
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/NonIdentityTests.cs4
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/OpenIdTestBase.cs8
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/Provider/HostProcessedRequestTests.cs8
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/RelyingParty/OpenIdRelyingPartyTests.cs6
-rw-r--r--src/DotNetOpenAuth.Test/TestBase.cs52
19 files changed, 124 insertions, 118 deletions
diff --git a/src/DotNetOpenAuth.Test/CoordinatorBase.cs b/src/DotNetOpenAuth.Test/CoordinatorBase.cs
index 48c6371..12b03f8 100644
--- a/src/DotNetOpenAuth.Test/CoordinatorBase.cs
+++ b/src/DotNetOpenAuth.Test/CoordinatorBase.cs
@@ -26,7 +26,7 @@ namespace DotNetOpenAuth.Test {
internal class CoordinatorBase {
private Func<IHostFactories, CancellationToken, Task> driver;
- internal CoordinatorBase(Func<IHostFactories, CancellationToken, Task> driver, params Handler[] handlers) {
+ internal CoordinatorBase(Func<IHostFactories, CancellationToken, Task> driver, params TestBase.Handler[] handlers) {
Requires.NotNull(driver, "driver");
Requires.NotNull(handlers, "handlers");
@@ -36,50 +36,8 @@ namespace DotNetOpenAuth.Test {
internal MockingHostFactories HostFactories { get; set; }
- internal static Task RunAsync(Func<IHostFactories, CancellationToken, Task> driver, params Handler[] handlers) {
- var coordinator = new CoordinatorBase(driver, handlers);
- return coordinator.RunAsync();
- }
-
protected internal virtual async Task RunAsync(CancellationToken cancellationToken = default(CancellationToken)) {
await this.driver(this.HostFactories, cancellationToken);
}
-
- internal static Handler Handle(Uri uri) {
- return new Handler(uri);
- }
-
- internal struct Handler {
- internal Handler(Uri uri)
- : this() {
- this.Uri = uri;
- }
-
- public Uri Uri { get; private set; }
-
- public Func<IHostFactories, HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> MessageHandler { get; private set; }
-
- internal Handler By(Func<IHostFactories, HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> handler) {
- return new Handler(this.Uri) { MessageHandler = handler };
- }
-
- internal Handler By(Func<HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> handler) {
- return By((hf, req, ct) => handler(req, ct));
- }
-
- internal Handler By(Func<HttpRequestMessage, HttpResponseMessage> handler) {
- return By((req, ct) => Task.FromResult(handler(req)));
- }
-
- internal Handler By(string responseContent, string contentType, HttpStatusCode statusCode = HttpStatusCode.OK) {
- return By(
- req => {
- var response = new HttpResponseMessage(statusCode);
- response.Content = new StringContent(responseContent);
- response.Content.Headers.ContentType = new MediaTypeHeaderValue(contentType);
- return response;
- });
- }
- }
}
}
diff --git a/src/DotNetOpenAuth.Test/MockingHostFactories.cs b/src/DotNetOpenAuth.Test/MockingHostFactories.cs
index d1f0792..a7d24e4 100644
--- a/src/DotNetOpenAuth.Test/MockingHostFactories.cs
+++ b/src/DotNetOpenAuth.Test/MockingHostFactories.cs
@@ -16,13 +16,13 @@ namespace DotNetOpenAuth.Test {
using Validation;
internal class MockingHostFactories : IHostFactories {
- private readonly List<CoordinatorBase.Handler> handlers;
+ private readonly List<TestBase.Handler> handlers;
- public MockingHostFactories(List<CoordinatorBase.Handler> handlers = null) {
- this.handlers = handlers ?? new List<CoordinatorBase.Handler>();
+ public MockingHostFactories(List<TestBase.Handler> handlers = null) {
+ this.handlers = handlers ?? new List<TestBase.Handler>();
}
- public List<CoordinatorBase.Handler> Handlers {
+ public List<TestBase.Handler> Handlers {
get { return this.handlers; }
}
@@ -35,11 +35,11 @@ namespace DotNetOpenAuth.Test {
}
private class ForwardingMessageHandler : HttpMessageHandler {
- private readonly IEnumerable<CoordinatorBase.Handler> handlers;
+ private readonly IEnumerable<TestBase.Handler> handlers;
private readonly IHostFactories hostFactories;
- public ForwardingMessageHandler(IEnumerable<CoordinatorBase.Handler> handlers, IHostFactories hostFactories) {
+ public ForwardingMessageHandler(IEnumerable<TestBase.Handler> handlers, IHostFactories hostFactories) {
Requires.NotNull(handlers, "handlers");
this.handlers = handlers;
diff --git a/src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs b/src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs
index 2c1e64b..dbf57bc 100644
--- a/src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs
+++ b/src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs
@@ -22,7 +22,7 @@ namespace DotNetOpenAuth.Test.Mocks {
using Validation;
internal static class MockHttpRequest {
- internal static CoordinatorBase.Handler RegisterMockXrdsResponse(IdentifierDiscoveryResult endpoint) {
+ internal static TestBase.Handler RegisterMockXrdsResponse(IdentifierDiscoveryResult endpoint) {
Requires.NotNull(endpoint, "endpoint");
string identityUri;
@@ -35,7 +35,7 @@ namespace DotNetOpenAuth.Test.Mocks {
return RegisterMockXrdsResponse(new Uri(identityUri), new IdentifierDiscoveryResult[] { endpoint });
}
- internal static CoordinatorBase.Handler RegisterMockXrdsResponse(Uri respondingUri, IEnumerable<IdentifierDiscoveryResult> endpoints) {
+ internal static TestBase.Handler RegisterMockXrdsResponse(Uri respondingUri, IEnumerable<IdentifierDiscoveryResult> endpoints) {
Requires.NotNull(endpoints, "endpoints");
var xrds = new StringBuilder();
@@ -67,10 +67,10 @@ namespace DotNetOpenAuth.Test.Mocks {
</XRD>
</xrds:XRDS>");
- return CoordinatorBase.Handle(respondingUri).By(xrds.ToString(), ContentTypes.Xrds);
+ return TestBase.Handle(respondingUri).By(xrds.ToString(), ContentTypes.Xrds);
}
- internal static CoordinatorBase.Handler RegisterMockXrdsResponse(UriIdentifier directedIdentityAssignedIdentifier, IdentifierDiscoveryResult providerEndpoint) {
+ internal static TestBase.Handler RegisterMockXrdsResponse(UriIdentifier directedIdentityAssignedIdentifier, IdentifierDiscoveryResult providerEndpoint) {
IdentifierDiscoveryResult identityEndpoint = IdentifierDiscoveryResult.CreateForClaimedIdentifier(
directedIdentityAssignedIdentifier,
directedIdentityAssignedIdentifier,
@@ -81,13 +81,13 @@ namespace DotNetOpenAuth.Test.Mocks {
return RegisterMockXrdsResponse(identityEndpoint);
}
- internal static CoordinatorBase.Handler RegisterMockXrdsResponse(string embeddedResourcePath, out Identifier id) {
+ internal static TestBase.Handler RegisterMockXrdsResponse(string embeddedResourcePath, out Identifier id) {
id = new Uri(new Uri("http://localhost/"), embeddedResourcePath);
- return CoordinatorBase.Handle(new Uri(id))
+ return TestBase.Handle(new Uri(id))
.By(OpenIdTestBase.LoadEmbeddedFile(embeddedResourcePath), "application/xrds+xml");
}
- internal static CoordinatorBase.Handler RegisterMockRPDiscovery(bool ssl) {
+ internal static TestBase.Handler RegisterMockRPDiscovery(bool ssl) {
string template = @"<xrds:XRDS xmlns:xrds='xri://$xrds' xmlns:openid='http://openid.net/xmlns/1.0' xmlns='xri://$xrd*($v*2.0)'>
<XRD>
<Service priority='10'>
@@ -104,38 +104,38 @@ namespace DotNetOpenAuth.Test.Mocks {
HttpUtility.HtmlEncode(OpenIdTestBase.RPRealmUri.AbsoluteUri),
HttpUtility.HtmlEncode(OpenIdTestBase.RPRealmUriSsl.AbsoluteUri));
- return new CoordinatorBase.Handler(ssl ? OpenIdTestBase.RPRealmUriSsl : OpenIdTestBase.RPRealmUri)
+ return new TestBase.Handler(ssl ? OpenIdTestBase.RPRealmUriSsl : OpenIdTestBase.RPRealmUri)
.By(xrds, ContentTypes.Xrds);
}
- internal static CoordinatorBase.Handler RegisterMockRedirect(Uri origin, Uri redirectLocation) {
+ internal static TestBase.Handler RegisterMockRedirect(Uri origin, Uri redirectLocation) {
var response = new HttpResponseMessage(HttpStatusCode.Redirect);
response.Headers.Location = redirectLocation;
- return new CoordinatorBase.Handler(origin).By(req => response);
+ return new TestBase.Handler(origin).By(req => response);
}
- internal static CoordinatorBase.Handler[] RegisterMockXrdsResponses(
+ internal static TestBase.Handler[] RegisterMockXrdsResponses(
IEnumerable<KeyValuePair<string, string>> urlXrdsPairs) {
Requires.NotNull(urlXrdsPairs, "urlXrdsPairs");
- var results = new List<CoordinatorBase.Handler>();
+ var results = new List<TestBase.Handler>();
foreach (var keyValuePair in urlXrdsPairs) {
- results.Add(CoordinatorBase.Handle(new Uri(keyValuePair.Key)).By(keyValuePair.Value, ContentTypes.Xrds));
+ results.Add(TestBase.Handle(new Uri(keyValuePair.Key)).By(keyValuePair.Value, ContentTypes.Xrds));
}
return results.ToArray();
}
- internal static CoordinatorBase.Handler RegisterMockResponse(Uri url, string contentType, string content) {
- return CoordinatorBase.Handle(url).By(content, contentType);
+ internal static TestBase.Handler RegisterMockResponse(Uri url, string contentType, string content) {
+ return TestBase.Handle(url).By(content, contentType);
}
- internal static CoordinatorBase.Handler RegisterMockResponse(Uri requestUri, Uri responseUri, string contentType, string content) {
+ internal static TestBase.Handler RegisterMockResponse(Uri requestUri, Uri responseUri, string contentType, string content) {
return RegisterMockResponse(requestUri, responseUri, contentType, null, content);
}
- internal static CoordinatorBase.Handler RegisterMockResponse(Uri requestUri, Uri responseUri, string contentType, WebHeaderCollection headers, string content) {
- return CoordinatorBase.Handle(requestUri).By(req => {
+ internal static TestBase.Handler RegisterMockResponse(Uri requestUri, Uri responseUri, string contentType, WebHeaderCollection headers, string content) {
+ return TestBase.Handle(requestUri).By(req => {
var response = new HttpResponseMessage();
response.CopyHeadersFrom(headers);
response.Content = new StringContent(content, Encoding.Default, contentType);
diff --git a/src/DotNetOpenAuth.Test/OAuth/AppendixScenarios.cs b/src/DotNetOpenAuth.Test/OAuth/AppendixScenarios.cs
index 88e461c..2d58b1d 100644
--- a/src/DotNetOpenAuth.Test/OAuth/AppendixScenarios.cs
+++ b/src/DotNetOpenAuth.Test/OAuth/AppendixScenarios.cs
@@ -67,23 +67,23 @@ namespace DotNetOpenAuth.Test.OAuth {
}
}
},
- CoordinatorBase.Handle(serviceDescription.TemporaryCredentialsRequestEndpoint).By(
+ Handle(serviceDescription.TemporaryCredentialsRequestEndpoint).By(
async (request, ct) => {
var requestTokenMessage = await sp.ReadTokenRequestAsync(request, ct);
return await sp.Channel.PrepareResponseAsync(sp.PrepareUnauthorizedTokenMessage(requestTokenMessage));
}),
- CoordinatorBase.Handle(serviceDescription.ResourceOwnerAuthorizationEndpoint).By(
+ Handle(serviceDescription.ResourceOwnerAuthorizationEndpoint).By(
async (request, ct) => {
var authRequest = await sp.ReadAuthorizationRequestAsync(request, ct);
((InMemoryTokenManager)sp.TokenManager).AuthorizeRequestToken(authRequest.RequestToken);
return await sp.Channel.PrepareResponseAsync(sp.PrepareAuthorizationResponse(authRequest));
}),
- CoordinatorBase.Handle(serviceDescription.TokenRequestEndpoint).By(
+ Handle(serviceDescription.TokenRequestEndpoint).By(
async (request, ct) => {
var accessRequest = await sp.ReadAccessTokenRequestAsync(request, ct);
return await sp.Channel.PrepareResponseAsync(sp.PrepareAccessTokenMessage(accessRequest), ct);
}),
- CoordinatorBase.Handle(accessPhotoEndpoint).By(
+ Handle(accessPhotoEndpoint).By(
async (request, ct) => {
string accessToken = (await sp.ReadProtectedResourceAuthorizationAsync(request)).AccessToken;
Assert.That(accessToken, Is.Not.Null.And.Not.Empty);
diff --git a/src/DotNetOpenAuth.Test/OAuth/ChannelElements/OAuthChannelTests.cs b/src/DotNetOpenAuth.Test/OAuth/ChannelElements/OAuthChannelTests.cs
index d2059d9..a1db784 100644
--- a/src/DotNetOpenAuth.Test/OAuth/ChannelElements/OAuthChannelTests.cs
+++ b/src/DotNetOpenAuth.Test/OAuth/ChannelElements/OAuthChannelTests.cs
@@ -301,7 +301,7 @@ namespace DotNetOpenAuth.Test.OAuth.ChannelElements {
HttpMethods = scheme,
};
- await CoordinatorBase.RunAsync(
+ await RunAsync(
async (hostFactories, CancellationToken) => {
IProtocolMessage response = await this.channel.RequestAsync(request, CancellationToken.None);
Assert.IsNotNull(response);
@@ -311,7 +311,7 @@ namespace DotNetOpenAuth.Test.OAuth.ChannelElements {
Assert.AreEqual(request.Name, responseMessage.Name);
Assert.AreEqual(request.Location, responseMessage.Location);
},
- CoordinatorBase.Handle(request.Location).By(async (req, ct) => {
+ Handle(request.Location).By(async (req, ct) => {
Assert.IsNotNull(req);
Assert.AreEqual(MessagingUtilities.GetHttpVerb(scheme), req.Method);
var incomingMessage = (await this.channel.ReadFromRequestAsync(req, CancellationToken.None)) as TestMessage;
diff --git a/src/DotNetOpenAuth.Test/OAuth2/AuthorizationServerTests.cs b/src/DotNetOpenAuth.Test/OAuth2/AuthorizationServerTests.cs
index b280e76..b2f2666 100644
--- a/src/DotNetOpenAuth.Test/OAuth2/AuthorizationServerTests.cs
+++ b/src/DotNetOpenAuth.Test/OAuth2/AuthorizationServerTests.cs
@@ -36,7 +36,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
Assert.That(response.Error, Is.Not.Null.And.Not.Empty);
Assert.That(response.Error, Is.EqualTo(Protocol.AccessTokenRequestErrorCodes.InvalidRequest));
},
- CoordinatorBase.Handle(AuthorizationServerDescription.TokenEndpoint).By(async (req, ct) => {
+ Handle(AuthorizationServerDescription.TokenEndpoint).By(async (req, ct) => {
var server = new AuthorizationServer(AuthorizationServerMock);
return await server.HandleTokenRequestAsync(req, ct);
}));
@@ -70,7 +70,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
refreshTokenSource.TrySetCanceled();
}
},
- CoordinatorBase.Handle(AuthorizationServerDescription.AuthorizationEndpoint).By(
+ Handle(AuthorizationServerDescription.AuthorizationEndpoint).By(
async (req, ct) => {
var server = new AuthorizationServer(AuthorizationServerMock);
var request = await server.ReadAuthorizationRequestAsync(req, ct);
@@ -78,7 +78,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
var response = server.PrepareApproveAuthorizationRequest(request, ResourceOwnerUsername);
return await server.Channel.PrepareResponseAsync(response);
}),
- CoordinatorBase.Handle(AuthorizationServerDescription.TokenEndpoint).By(
+ Handle(AuthorizationServerDescription.TokenEndpoint).By(
async (req, ct) => {
var server = new AuthorizationServer(AuthorizationServerMock);
var response = await server.HandleTokenRequestAsync(req, ct);
@@ -113,7 +113,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
var result = await client.ExchangeUserCredentialForTokenAsync(ResourceOwnerUsername, ResourceOwnerPassword, clientRequestedScopes, ct);
Assert.That(result.Scope, Is.EquivalentTo(serverOverriddenScopes));
},
- CoordinatorBase.Handle(AuthorizationServerDescription.TokenEndpoint).By(
+ Handle(AuthorizationServerDescription.TokenEndpoint).By(
async (req, ct) => {
var server = new AuthorizationServer(authServerMock.Object);
return await server.HandleTokenRequestAsync(req, ct);
@@ -137,7 +137,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
var result = await client.ExchangeUserCredentialForTokenAsync(ResourceOwnerUsername, ResourceOwnerPassword, TestScopes, ct);
Assert.That(result.AccessToken, Is.Not.Null);
},
- CoordinatorBase.Handle(AuthorizationServerDescription.TokenEndpoint).By(
+ Handle(AuthorizationServerDescription.TokenEndpoint).By(
async (req, ct) => {
var server = new AuthorizationServer(authServerMock.Object);
return await server.HandleTokenRequestAsync(req, ct);
@@ -160,7 +160,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
var result = await client.GetClientAccessTokenAsync(TestScopes, ct);
Assert.That(result.AccessToken, Is.Not.Null);
},
- CoordinatorBase.Handle(AuthorizationServerDescription.TokenEndpoint).By(
+ Handle(AuthorizationServerDescription.TokenEndpoint).By(
async (req, ct) => {
var server = new AuthorizationServer(authServerMock.Object);
return await server.HandleTokenRequestAsync(req, ct);
@@ -197,7 +197,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
Assert.That(result.AccessToken, Is.Not.Null.And.Not.Empty);
Assert.That(result.RefreshToken, Is.Not.Null.And.Not.Empty);
},
- CoordinatorBase.Handle(AuthorizationServerDescription.TokenEndpoint).By(
+ Handle(AuthorizationServerDescription.TokenEndpoint).By(
async (req, ct) => {
var server = new AuthorizationServer(authServerMock.Object);
var request = await server.ReadAuthorizationRequestAsync(req, ct);
@@ -205,7 +205,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
var response = server.PrepareApproveAuthorizationRequest(request, ResourceOwnerUsername);
return await server.Channel.PrepareResponseAsync(response);
}),
- CoordinatorBase.Handle(AuthorizationServerDescription.TokenEndpoint).By(
+ Handle(AuthorizationServerDescription.TokenEndpoint).By(
async (req, ct) => {
var server = new AuthorizationServer(authServerMock.Object);
return await server.HandleTokenRequestAsync(req, ct);
@@ -235,7 +235,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
var result = await client.GetClientAccessTokenAsync(clientRequestedScopes, ct);
Assert.That(result.Scope, Is.EquivalentTo(serverOverriddenScopes));
},
- CoordinatorBase.Handle(AuthorizationServerDescription.TokenEndpoint).By(
+ Handle(AuthorizationServerDescription.TokenEndpoint).By(
async (req, ct) => {
var server = new AuthorizationServer(authServerMock.Object);
return await server.HandleTokenRequestAsync(req, ct);
diff --git a/src/DotNetOpenAuth.Test/OAuth2/ResourceServerTests.cs b/src/DotNetOpenAuth.Test/OAuth2/ResourceServerTests.cs
index ed5558f..d4618cf 100644
--- a/src/DotNetOpenAuth.Test/OAuth2/ResourceServerTests.cs
+++ b/src/DotNetOpenAuth.Test/OAuth2/ResourceServerTests.cs
@@ -99,7 +99,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
Assert.That(authState.RefreshToken, Is.Null);
accessToken = authState.AccessToken;
},
- CoordinatorBase.Handle(AuthorizationServerDescription.TokenEndpoint).By(async (req, ct) => {
+ Handle(AuthorizationServerDescription.TokenEndpoint).By(async (req, ct) => {
var server = new AuthorizationServer(authServer.Object);
return await server.HandleTokenRequestAsync(req, ct);
}));
diff --git a/src/DotNetOpenAuth.Test/OAuth2/UserAgentClientAuthorizeTests.cs b/src/DotNetOpenAuth.Test/OAuth2/UserAgentClientAuthorizeTests.cs
index fe439a2..eaa0d44 100644
--- a/src/DotNetOpenAuth.Test/OAuth2/UserAgentClientAuthorizeTests.cs
+++ b/src/DotNetOpenAuth.Test/OAuth2/UserAgentClientAuthorizeTests.cs
@@ -43,7 +43,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
Assert.That(result.AccessToken, Is.Not.Null.And.Not.Empty);
Assert.That(result.RefreshToken, Is.Not.Null.And.Not.Empty);
},
- CoordinatorBase.Handle(AuthorizationServerDescription.AuthorizationEndpoint).By(
+ Handle(AuthorizationServerDescription.AuthorizationEndpoint).By(
async (req, ct) => {
var server = new AuthorizationServer(AuthorizationServerMock);
var request = await server.ReadAuthorizationRequestAsync(req, ct);
@@ -51,7 +51,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
var response = server.PrepareApproveAuthorizationRequest(request, ResourceOwnerUsername);
return await server.Channel.PrepareResponseAsync(response, ct);
}),
- CoordinatorBase.Handle(AuthorizationServerDescription.TokenEndpoint).By(
+ Handle(AuthorizationServerDescription.TokenEndpoint).By(
async (req, ct) => {
var server = new AuthorizationServer(AuthorizationServerMock);
return await server.HandleTokenRequestAsync(req, ct);
@@ -83,7 +83,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
Assert.That(result.AccessToken, Is.Not.Null.And.Not.Empty);
Assert.That(result.RefreshToken, Is.Null);
},
- CoordinatorBase.Handle(AuthorizationServerDescription.AuthorizationEndpoint).By(
+ Handle(AuthorizationServerDescription.AuthorizationEndpoint).By(
async (req, ct) => {
var server = new AuthorizationServer(AuthorizationServerMock);
var request = await server.ReadAuthorizationRequestAsync(req, ct);
diff --git a/src/DotNetOpenAuth.Test/OAuth2/WebServerClientAuthorizeTests.cs b/src/DotNetOpenAuth.Test/OAuth2/WebServerClientAuthorizeTests.cs
index bd94533..7b5c32e 100644
--- a/src/DotNetOpenAuth.Test/OAuth2/WebServerClientAuthorizeTests.cs
+++ b/src/DotNetOpenAuth.Test/OAuth2/WebServerClientAuthorizeTests.cs
@@ -41,7 +41,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
Assert.That(result.AccessToken, Is.Not.Null.And.Not.Empty);
Assert.That(result.RefreshToken, Is.Not.Null.And.Not.Empty);
},
- CoordinatorBase.Handle(AuthorizationServerDescription.AuthorizationEndpoint).By(
+ Handle(AuthorizationServerDescription.AuthorizationEndpoint).By(
async (req, ct) => {
var server = new AuthorizationServer(AuthorizationServerMock);
var request = await server.ReadAuthorizationRequestAsync(req, ct);
@@ -49,7 +49,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
var response = server.PrepareApproveAuthorizationRequest(request, ResourceOwnerUsername);
return await server.Channel.PrepareResponseAsync(response, ct);
}),
- CoordinatorBase.Handle(AuthorizationServerDescription.TokenEndpoint).By(async (req, ct) => {
+ Handle(AuthorizationServerDescription.TokenEndpoint).By(async (req, ct) => {
var server = new AuthorizationServer(AuthorizationServerMock);
return await server.HandleTokenRequestAsync(req, ct);
}));
@@ -80,7 +80,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
Assert.That(authState.AccessToken, Is.Not.Null.And.Not.Empty);
Assert.That(authState.RefreshToken, Is.Not.Null.And.Not.Empty);
},
- CoordinatorBase.Handle(AuthorizationServerDescription.TokenEndpoint).By(async (req, ct) => {
+ Handle(AuthorizationServerDescription.TokenEndpoint).By(async (req, ct) => {
var server = new AuthorizationServer(authHostMock.Object);
return await server.HandleTokenRequestAsync(req, ct);
}));
@@ -103,7 +103,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
Assert.That(authState.AccessToken, Is.Not.Null.And.Not.Empty);
Assert.That(authState.RefreshToken, Is.Null);
},
- CoordinatorBase.Handle(AuthorizationServerDescription.TokenEndpoint).By(async (req, ct) => {
+ Handle(AuthorizationServerDescription.TokenEndpoint).By(async (req, ct) => {
var server = new AuthorizationServer(authServer.Object);
return await server.HandleTokenRequestAsync(req, ct);
}));
@@ -130,7 +130,7 @@ namespace DotNetOpenAuth.Test.OAuth2 {
var authState = await client.GetClientAccessTokenAsync(TestScopes, ct);
Assert.That(authState.Scope, Is.EquivalentTo(approvedScopes));
},
- CoordinatorBase.Handle(AuthorizationServerDescription.TokenEndpoint).By(async (req, ct) => {
+ Handle(AuthorizationServerDescription.TokenEndpoint).By(async (req, ct) => {
var server = new AuthorizationServer(authServer.Object);
return await server.HandleTokenRequestAsync(req, ct);
}));
diff --git a/src/DotNetOpenAuth.Test/OpenId/AssociationHandshakeTests.cs b/src/DotNetOpenAuth.Test/OpenId/AssociationHandshakeTests.cs
index 4f0bed8..99fa56c 100644
--- a/src/DotNetOpenAuth.Test/OpenId/AssociationHandshakeTests.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/AssociationHandshakeTests.cs
@@ -245,7 +245,7 @@ namespace DotNetOpenAuth.Test.OpenId {
public async Task RPOnlyRenegotiatesOnce() {
Protocol protocol = Protocol.V20;
int opStep = 0;
- await CoordinatorBase.RunAsync(
+ await RunAsync(
RelyingPartyDriver(async (rp, ct) => {
var association = await rp.AssociationManager.GetOrCreateAssociationAsync(new ProviderEndpointDescription(OPUri, protocol.Version), ct);
Assert.IsNull(association, "The RP should quietly give up when the OP misbehaves.");
@@ -350,7 +350,7 @@ namespace DotNetOpenAuth.Test.OpenId {
relyingParty.SecuritySettings = this.RelyingPartySecuritySettings;
rpAssociation = await relyingParty.AssociationManager.GetOrCreateAssociationAsync(opDescription, ct);
},
- CoordinatorBase.Handle(opDescription.Uri).By(async (request, ct) => {
+ Handle(opDescription.Uri).By(async (request, ct) => {
IRequest req = await provider.GetRequestAsync(request, ct);
Assert.IsNotNull(req, "Expected incoming request but did not receive it.");
Assert.IsTrue(req.IsResponseReady);
diff --git a/src/DotNetOpenAuth.Test/OpenId/AuthenticationTests.cs b/src/DotNetOpenAuth.Test/OpenId/AuthenticationTests.cs
index cb12e77..93f74e6 100644
--- a/src/DotNetOpenAuth.Test/OpenId/AuthenticationTests.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/AuthenticationTests.cs
@@ -77,13 +77,13 @@ namespace DotNetOpenAuth.Test.OpenId {
}
}
},
- CoordinatorBase.Handle(RPRealmUri).By(async (hostFactories, req, ct) => {
+ Handle(RPRealmUri).By(async (hostFactories, req, ct) => {
var rp = new OpenIdRelyingParty(new StandardRelyingPartyApplicationStore(), hostFactories);
IAuthenticationResponse response = await rp.GetResponseAsync();
Assert.AreEqual(AuthenticationStatus.Authenticated, response.Status);
return new HttpResponseMessage();
}),
- CoordinatorBase.Handle(OPUri).By(
+ Handle(OPUri).By(
async (req, ct) => {
var op = new OpenIdProvider(opStore);
return await this.AutoProviderActionAsync(op, req, ct);
@@ -106,14 +106,14 @@ namespace DotNetOpenAuth.Test.OpenId {
}
}
},
- CoordinatorBase.Handle(RPRealmUri).By(async (hostFactories, req, ct) => {
+ Handle(RPRealmUri).By(async (hostFactories, req, ct) => {
var rp = new OpenIdRelyingParty(new StandardRelyingPartyApplicationStore(), hostFactories);
rp.SecuritySettings.RejectUnsolicitedAssertions = true;
IAuthenticationResponse response = await rp.GetResponseAsync(req, ct);
Assert.AreEqual(AuthenticationStatus.Failed, response.Status);
return new HttpResponseMessage();
}),
- CoordinatorBase.Handle(OPUri).By(async (hostFactories, req, ct) => {
+ Handle(OPUri).By(async (hostFactories, req, ct) => {
var op = new OpenIdProvider(opStore);
return await this.AutoProviderActionAsync(op, req, ct);
}),
@@ -139,14 +139,14 @@ namespace DotNetOpenAuth.Test.OpenId {
}
}
},
- CoordinatorBase.Handle(RPRealmUri).By(async (hostFactories, req, ct) => {
+ Handle(RPRealmUri).By(async (hostFactories, req, ct) => {
var rp = new OpenIdRelyingParty(new StandardRelyingPartyApplicationStore(), hostFactories);
rp.SecuritySettings.RejectDelegatingIdentifiers = true;
IAuthenticationResponse response = await rp.GetResponseAsync(req, ct);
Assert.AreEqual(AuthenticationStatus.Failed, response.Status);
return new HttpResponseMessage();
}),
- CoordinatorBase.Handle(OPUri).By(async (hostFactories, req, ct) => {
+ Handle(OPUri).By(async (hostFactories, req, ct) => {
var op = new OpenIdProvider(opStore);
return await this.AutoProviderActionAsync(op, req, ct);
}),
diff --git a/src/DotNetOpenAuth.Test/OpenId/ChannelElements/ExtensionsBindingElementTests.cs b/src/DotNetOpenAuth.Test/OpenId/ChannelElements/ExtensionsBindingElementTests.cs
index ca9b0a7..7a1add2 100644
--- a/src/DotNetOpenAuth.Test/OpenId/ChannelElements/ExtensionsBindingElementTests.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/ChannelElements/ExtensionsBindingElementTests.cs
@@ -142,7 +142,7 @@ namespace DotNetOpenAuth.Test.OpenId.ChannelElements {
}
}
},
- CoordinatorBase.Handle(RPRealmUri).By(async (hostFactories, req, ct) => {
+ Handle(RPRealmUri).By(async (hostFactories, req, ct) => {
var rp = new OpenIdRelyingParty(new StandardRelyingPartyApplicationStore(), hostFactories);
RegisterMockExtension(rp.Channel);
@@ -164,7 +164,7 @@ namespace DotNetOpenAuth.Test.OpenId.ChannelElements {
return new HttpResponseMessage();
}),
- CoordinatorBase.Handle(OPUri).By(async (hostFactories, req, ct) => {
+ Handle(OPUri).By(async (hostFactories, req, ct) => {
var op = new OpenIdProvider(opStore);
return await AutoProviderActionAsync(op, req, ct);
}));
diff --git a/src/DotNetOpenAuth.Test/OpenId/DiscoveryServices/UriDiscoveryServiceTests.cs b/src/DotNetOpenAuth.Test/OpenId/DiscoveryServices/UriDiscoveryServiceTests.cs
index e75afb8..06cb745 100644
--- a/src/DotNetOpenAuth.Test/OpenId/DiscoveryServices/UriDiscoveryServiceTests.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/DiscoveryServices/UriDiscoveryServiceTests.cs
@@ -112,7 +112,7 @@ namespace DotNetOpenAuth.Test.OpenId.DiscoveryServices {
HttpUtility.HtmlEncode(insecureXrdsSource),
HttpUtility.HtmlEncode(OPUriSsl.AbsoluteUri),
HttpUtility.HtmlEncode(OPLocalIdentifiersSsl[1].AbsoluteUri));
- this.HostFactories.Handlers.Add(CoordinatorBase.Handle(VanityUriSsl).By(html, "text/html"));
+ this.HostFactories.Handlers.Add(Handle(VanityUriSsl).By(html, "text/html"));
Identifier userSuppliedIdentifier = new UriIdentifier(VanityUriSsl, true);
diff --git a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs
index 057abb3..7c7f945 100644
--- a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs
@@ -41,7 +41,7 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions {
var cryptoKeyStore = new MemoryCryptoKeyStore();
var associationStore = new ProviderAssociationHandleEncoder(cryptoKeyStore);
Association association = HmacShaAssociationProvider.Create(protocol, protocol.Args.SignatureAlgorithm.Best, AssociationRelyingPartyType.Smart, associationStore, securitySettings);
- await CoordinatorBase.RunAsync(
+ await TestBase.RunAsync(
OpenIdTestBase.RelyingPartyDriver(async (rp, ct) => {
RegisterExtension(rp.Channel, Mocks.MockOpenIdExtension.Factory);
var requestBase = new CheckIdRequest(protocol.Version, OpenIdTestBase.OPUri, AuthenticationRequestMode.Immediate);
diff --git a/src/DotNetOpenAuth.Test/OpenId/NonIdentityTests.cs b/src/DotNetOpenAuth.Test/OpenId/NonIdentityTests.cs
index 8764e69..16c096f 100644
--- a/src/DotNetOpenAuth.Test/OpenId/NonIdentityTests.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/NonIdentityTests.cs
@@ -23,7 +23,7 @@ namespace DotNetOpenAuth.Test.OpenId {
Protocol protocol = Protocol.V20;
var mode = AuthenticationRequestMode.Setup;
- await CoordinatorBase.RunAsync(
+ await RunAsync(
RelyingPartyDriver(async (rp, ct) => {
var request = new SignedResponseRequest(protocol.Version, OPUri, mode);
var authRequest = await rp.Channel.PrepareResponseAsync(request);
@@ -44,7 +44,7 @@ namespace DotNetOpenAuth.Test.OpenId {
public async Task ExtensionOnlyFacadeLevel() {
Protocol protocol = Protocol.V20;
int opStep = 0;
- await CoordinatorBase.RunAsync(
+ await RunAsync(
RelyingPartyDriver(async (rp, ct) => {
var request = await rp.CreateRequestAsync(GetMockIdentifier(protocol.ProtocolVersion), RPRealmUri, RPUri, ct);
diff --git a/src/DotNetOpenAuth.Test/OpenId/OpenIdTestBase.cs b/src/DotNetOpenAuth.Test/OpenId/OpenIdTestBase.cs
index d3b8aa0..f4a9684 100644
--- a/src/DotNetOpenAuth.Test/OpenId/OpenIdTestBase.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/OpenIdTestBase.cs
@@ -141,9 +141,9 @@ namespace DotNetOpenAuth.Test.OpenId {
/// <remarks>
/// This is a very useful method to pass to the OpenIdCoordinator constructor for the Provider argument.
/// </remarks>
- internal CoordinatorBase.Handler AutoProvider {
+ internal TestBase.Handler AutoProvider {
get {
- return CoordinatorBase.Handle(OPUri).By(
+ return Handle(OPUri).By(
async (req, ct) => {
var provider = new OpenIdProvider(new StandardProviderApplicationStore());
return await this.AutoProviderActionAsync(provider, req, ct);
@@ -264,8 +264,8 @@ namespace DotNetOpenAuth.Test.OpenId {
};
}
- internal static CoordinatorBase.Handler HandleProvider(Func<OpenIdProvider, HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> provider) {
- return CoordinatorBase.Handle(OPUri).By(async (req, ct) => {
+ protected internal static Handler HandleProvider(Func<OpenIdProvider, HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> provider) {
+ return Handle(OPUri).By(async (req, ct) => {
var op = new OpenIdProvider(new StandardProviderApplicationStore());
return await provider(op, req, ct);
});
diff --git a/src/DotNetOpenAuth.Test/OpenId/Provider/HostProcessedRequestTests.cs b/src/DotNetOpenAuth.Test/OpenId/Provider/HostProcessedRequestTests.cs
index 966e712..dc692fc 100644
--- a/src/DotNetOpenAuth.Test/OpenId/Provider/HostProcessedRequestTests.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/Provider/HostProcessedRequestTests.cs
@@ -41,7 +41,7 @@ namespace DotNetOpenAuth.Test.OpenId.Provider {
[Test]
public async Task IsReturnUrlDiscoverableValidResponse() {
- await CoordinatorBase.RunAsync(
+ await RunAsync(
async (hostFactories, ct) => {
this.request = new AuthenticationRequest(this.provider, this.checkIdRequest);
Assert.AreEqual(RelyingPartyDiscoveryResult.Success, await this.request.IsReturnUrlDiscoverableAsync(this.provider.Channel.HostFactories, CancellationToken.None));
@@ -55,7 +55,7 @@ namespace DotNetOpenAuth.Test.OpenId.Provider {
/// </summary>
[Test]
public async Task IsReturnUrlDiscoverableNotSsl() {
- await CoordinatorBase.RunAsync(
+ await RunAsync(
async (hostFactories, ct) => {
this.provider.SecuritySettings.RequireSsl = true;
Assert.AreEqual(RelyingPartyDiscoveryResult.NoServiceDocument, await this.request.IsReturnUrlDiscoverableAsync(this.provider.Channel.HostFactories, CancellationToken.None));
@@ -68,7 +68,7 @@ namespace DotNetOpenAuth.Test.OpenId.Provider {
/// </summary>
[Test]
public async Task IsReturnUrlDiscoverableRequireSsl() {
- await CoordinatorBase.RunAsync(
+ await RunAsync(
async (hostFactories, ct) => {
this.checkIdRequest.Realm = RPRealmUriSsl;
this.checkIdRequest.ReturnTo = RPUriSsl;
@@ -88,7 +88,7 @@ namespace DotNetOpenAuth.Test.OpenId.Provider {
[Test]
public async Task IsReturnUrlDiscoverableValidButNoMatch() {
- await CoordinatorBase.RunAsync(
+ await RunAsync(
async (hostFactories, ct) => {
this.provider.SecuritySettings.RequireSsl = false; // reset for another failure test case
this.checkIdRequest.ReturnTo = new Uri("http://somerandom/host");
diff --git a/src/DotNetOpenAuth.Test/OpenId/RelyingParty/OpenIdRelyingPartyTests.cs b/src/DotNetOpenAuth.Test/OpenId/RelyingParty/OpenIdRelyingPartyTests.cs
index 1dc5678..c2c5db5 100644
--- a/src/DotNetOpenAuth.Test/OpenId/RelyingParty/OpenIdRelyingPartyTests.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/RelyingParty/OpenIdRelyingPartyTests.cs
@@ -94,7 +94,7 @@ namespace DotNetOpenAuth.Test.OpenId.RelyingParty {
async (rp, ct) => {
await rp.CreateRequestAsync(nonOpenId, RPRealmUri, RPUri);
}),
- CoordinatorBase.Handle(nonOpenId).By("<html/>", "text/html"));
+ Handle(nonOpenId).By("<html/>", "text/html"));
await coordinator.RunAsync();
}
@@ -107,7 +107,7 @@ namespace DotNetOpenAuth.Test.OpenId.RelyingParty {
var requests = await rp.CreateRequestsAsync(nonOpenId, RPRealmUri, RPUri);
Assert.AreEqual(0, requests.Count());
}),
- CoordinatorBase.Handle(nonOpenId).By("<html/>", "text/html"));
+ Handle(nonOpenId).By("<html/>", "text/html"));
await coordinator.RunAsync();
}
@@ -129,7 +129,7 @@ namespace DotNetOpenAuth.Test.OpenId.RelyingParty {
}
}
},
- CoordinatorBase.Handle(RPRealmUri).By(
+ Handle(RPRealmUri).By(
async (hostFactories, req, ct) => {
var rp = new OpenIdRelyingParty(new StandardRelyingPartyApplicationStore());
diff --git a/src/DotNetOpenAuth.Test/TestBase.cs b/src/DotNetOpenAuth.Test/TestBase.cs
index 0c958ef..875af7a 100644
--- a/src/DotNetOpenAuth.Test/TestBase.cs
+++ b/src/DotNetOpenAuth.Test/TestBase.cs
@@ -7,7 +7,11 @@
namespace DotNetOpenAuth.Test {
using System;
using System.IO;
+ using System.Net;
+ using System.Net.Http;
+ using System.Net.Http.Headers;
using System.Reflection;
+ using System.Threading;
using System.Threading.Tasks;
using System.Web;
using DotNetOpenAuth.Messaging.Reflection;
@@ -17,6 +21,8 @@ namespace DotNetOpenAuth.Test {
using log4net;
using NUnit.Framework;
+ using log4net.Config;
+
/// <summary>
/// The base class that all test classes inherit from.
/// </summary>
@@ -56,7 +62,7 @@ namespace DotNetOpenAuth.Test {
/// </summary>
[SetUp]
public virtual void SetUp() {
- log4net.Config.XmlConfigurator.Configure(Assembly.GetExecutingAssembly().GetManifestResourceStream("DotNetOpenAuth.Test.Logging.config"));
+ XmlConfigurator.Configure(Assembly.GetExecutingAssembly().GetManifestResourceStream("DotNetOpenAuth.Test.Logging.config"));
MessageBase.LowSecurityMode = true;
this.messageDescriptions = new MessageDescriptionCollection();
this.HostFactories = new MockingHostFactories();
@@ -68,7 +74,7 @@ namespace DotNetOpenAuth.Test {
/// </summary>
[TearDown]
public virtual void Cleanup() {
- log4net.LogManager.Shutdown();
+ LogManager.Shutdown();
}
internal static Stats MeasurePerformance(Func<Task> action, float maximumAllowedUnitTime, int samples = 10, int iterations = 100, string name = null) {
@@ -107,5 +113,47 @@ namespace DotNetOpenAuth.Test {
new HttpRequest("mock", "http://mock", "mock"),
new HttpResponse(new StringWriter()));
}
+
+ protected internal static Task RunAsync(Func<IHostFactories, CancellationToken, Task> driver, params Handler[] handlers) {
+ var coordinator = new CoordinatorBase(driver, handlers);
+ return coordinator.RunAsync();
+ }
+
+ protected internal static Handler Handle(Uri uri) {
+ return new Handler(uri);
+ }
+
+ protected internal struct Handler {
+ internal Handler(Uri uri)
+ : this() {
+ this.Uri = uri;
+ }
+
+ public Uri Uri { get; private set; }
+
+ public Func<IHostFactories, HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> MessageHandler { get; private set; }
+
+ internal Handler By(Func<IHostFactories, HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> handler) {
+ return new Handler(this.Uri) { MessageHandler = handler };
+ }
+
+ internal Handler By(Func<HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> handler) {
+ return this.By((hf, req, ct) => handler(req, ct));
+ }
+
+ internal Handler By(Func<HttpRequestMessage, HttpResponseMessage> handler) {
+ return this.By((req, ct) => Task.FromResult(handler(req)));
+ }
+
+ internal Handler By(string responseContent, string contentType, HttpStatusCode statusCode = HttpStatusCode.OK) {
+ return this.By(
+ req => {
+ var response = new HttpResponseMessage(statusCode);
+ response.Content = new StringContent(responseContent);
+ response.Content.Headers.ContentType = new MediaTypeHeaderValue(contentType);
+ return response;
+ });
+ }
+ }
}
}