diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2013-03-24 07:29:59 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2013-03-24 07:29:59 -0700 |
commit | 8e8ba131ff00cc42f2523782bee8b498edecc0ac (patch) | |
tree | 5959ad25cb151ef2e1732bf9d24190200ef78d73 | |
parent | 5bdaf4427a0963425e5fd36b80448065c61077b4 (diff) | |
download | DotNetOpenAuth-8e8ba131ff00cc42f2523782bee8b498edecc0ac.zip DotNetOpenAuth-8e8ba131ff00cc42f2523782bee8b498edecc0ac.tar.gz DotNetOpenAuth-8e8ba131ff00cc42f2523782bee8b498edecc0ac.tar.bz2 |
Fixes unit tests. 49 failures left.
4 files changed, 26 insertions, 7 deletions
diff --git a/src/DotNetOpenAuth.Test/MockingHostFactories.cs b/src/DotNetOpenAuth.Test/MockingHostFactories.cs index 5dd09e2..d9f6b02 100644 --- a/src/DotNetOpenAuth.Test/MockingHostFactories.cs +++ b/src/DotNetOpenAuth.Test/MockingHostFactories.cs @@ -19,6 +19,7 @@ namespace DotNetOpenAuth.Test { public MockingHostFactories(List<TestBase.Handler> handlers = null) { this.handlers = handlers ?? new List<TestBase.Handler>(); this.CookieContainer = new CookieContainer(); + this.AllowAutoRedirects = true; } public List<TestBase.Handler> Handlers { @@ -27,8 +28,16 @@ namespace DotNetOpenAuth.Test { public CookieContainer CookieContainer { get; set; } + public bool AllowAutoRedirects { get; set; } + public HttpMessageHandler CreateHttpMessageHandler() { - return new AutoRedirectHandler(new CookieDelegatingHandler(new ForwardingMessageHandler(this.handlers, this), this.CookieContainer)); + var forwardingMessageHandler = new ForwardingMessageHandler(this.handlers, this); + var cookieDelegatingHandler = new CookieDelegatingHandler(forwardingMessageHandler, this.CookieContainer); + if (this.AllowAutoRedirects) { + return new AutoRedirectHandler(cookieDelegatingHandler); + } else { + return cookieDelegatingHandler; + } } public HttpClient CreateHttpClient(HttpMessageHandler handler = null) { diff --git a/src/DotNetOpenAuth.Test/OAuth2/AuthorizationServerTests.cs b/src/DotNetOpenAuth.Test/OAuth2/AuthorizationServerTests.cs index be82f91..787718d 100644 --- a/src/DotNetOpenAuth.Test/OAuth2/AuthorizationServerTests.cs +++ b/src/DotNetOpenAuth.Test/OAuth2/AuthorizationServerTests.cs @@ -8,6 +8,7 @@ namespace DotNetOpenAuth.Test.OAuth2 { using System; using System.Collections.Generic; using System.Linq; + using System.Net; using System.Net.Http; using System.Text; using System.Threading; @@ -65,6 +66,7 @@ namespace DotNetOpenAuth.Test.OAuth2 { try { var authState = new AuthorizationState(TestScopes) { Callback = ClientCallback, }; var authRedirectResponse = await client.PrepareRequestUserAuthorizationAsync(authState); + this.HostFactories.CookieContainer.SetCookies(authRedirectResponse, ClientCallback); Uri authCompleteUri; using (var httpClient = this.HostFactories.CreateHttpClient()) { using (var response = await httpClient.GetAsync(authRedirectResponse.Headers.Location)) { @@ -74,7 +76,7 @@ namespace DotNetOpenAuth.Test.OAuth2 { } var authCompleteRequest = new HttpRequestMessage(HttpMethod.Get, authCompleteUri); - authCompleteRequest.Headers.Add("Cookie", string.Join("; ", authRedirectResponse.Headers.GetValues("Set-Cookie"))); + this.HostFactories.CookieContainer.ApplyCookies(authCompleteRequest); var result = await client.ProcessUserAuthorizationAsync(authCompleteRequest); Assert.That(result.AccessToken, Is.Not.Null.And.Not.Empty); Assert.That(result.RefreshToken, Is.Not.Null.And.Not.Empty); @@ -147,7 +149,7 @@ namespace DotNetOpenAuth.Test.OAuth2 { return await server.HandleTokenRequestAsync(req, ct); }); - var client = new WebServerClient(AuthorizationServerDescription, hostFactories: this.HostFactories); + var client = new WebServerClient(AuthorizationServerDescription, ClientId, ClientSecret, this.HostFactories); var result = await client.GetClientAccessTokenAsync(TestScopes); Assert.That(result.AccessToken, Is.Not.Null); } @@ -162,7 +164,7 @@ namespace DotNetOpenAuth.Test.OAuth2 { return true; }); - Handle(AuthorizationServerDescription.TokenEndpoint).By( + Handle(AuthorizationServerDescription.AuthorizationEndpoint).By( async (req, ct) => { var server = new AuthorizationServer(authServerMock.Object); var request = await server.ReadAuthorizationRequestAsync(req, ct); @@ -181,15 +183,18 @@ namespace DotNetOpenAuth.Test.OAuth2 { Callback = ClientCallback, }; var authRedirectResponse = await client.PrepareRequestUserAuthorizationAsync(authState); + this.HostFactories.CookieContainer.SetCookies(authRedirectResponse, ClientCallback); Uri authCompleteUri; + this.HostFactories.AllowAutoRedirects = false; using (var httpClient = this.HostFactories.CreateHttpClient()) { using (var response = await httpClient.GetAsync(authRedirectResponse.Headers.Location)) { - response.EnsureSuccessStatusCode(); + Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Redirect)); authCompleteUri = response.Headers.Location; } } var authCompleteRequest = new HttpRequestMessage(HttpMethod.Get, authCompleteUri); + this.HostFactories.CookieContainer.ApplyCookies(authCompleteRequest); var result = await client.ProcessUserAuthorizationAsync(authCompleteRequest); Assert.That(result.AccessToken, Is.Not.Null.And.Not.Empty); Assert.That(result.RefreshToken, Is.Not.Null.And.Not.Empty); diff --git a/src/DotNetOpenAuth.Test/OAuth2/UserAgentClientAuthorizeTests.cs b/src/DotNetOpenAuth.Test/OAuth2/UserAgentClientAuthorizeTests.cs index c911416..d0e9617 100644 --- a/src/DotNetOpenAuth.Test/OAuth2/UserAgentClientAuthorizeTests.cs +++ b/src/DotNetOpenAuth.Test/OAuth2/UserAgentClientAuthorizeTests.cs @@ -38,12 +38,13 @@ namespace DotNetOpenAuth.Test.OAuth2 { return await server.HandleTokenRequestAsync(req, ct); }); { - var client = new UserAgentClient(AuthorizationServerDescription); + var client = new UserAgentClient(AuthorizationServerDescription, ClientId, ClientSecret, this.HostFactories); var authState = new AuthorizationState(TestScopes) { Callback = ClientCallback, }; var request = client.PrepareRequestUserAuthorization(authState); Assert.AreEqual(EndUserAuthorizationResponseType.AuthorizationCode, request.ResponseType); var authRequestRedirect = await client.Channel.PrepareResponseAsync(request); Uri authRequestResponse; + this.HostFactories.AllowAutoRedirects = false; using (var httpClient = this.HostFactories.CreateHttpClient()) { using (var httpResponse = await httpClient.GetAsync(authRequestRedirect.Headers.Location)) { authRequestResponse = httpResponse.Headers.Location; @@ -74,12 +75,13 @@ namespace DotNetOpenAuth.Test.OAuth2 { return await server.Channel.PrepareResponseAsync(response, ct); }); { - var client = new UserAgentClient(AuthorizationServerDescription); + var client = new UserAgentClient(AuthorizationServerDescription, ClientId, ClientSecret, this.HostFactories); var authState = new AuthorizationState(TestScopes) { Callback = ClientCallback, }; var request = client.PrepareRequestUserAuthorization(authState, implicitResponseType: true); Assert.That(request.ResponseType, Is.EqualTo(EndUserAuthorizationResponseType.AccessToken)); var authRequestRedirect = await client.Channel.PrepareResponseAsync(request); Uri authRequestResponse; + this.HostFactories.AllowAutoRedirects = false; using (var httpClient = this.HostFactories.CreateHttpClient()) { using (var httpResponse = await httpClient.GetAsync(authRequestRedirect.Headers.Location)) { authRequestResponse = httpResponse.Headers.Location; diff --git a/src/DotNetOpenAuth.Test/OpenId/AuthenticationTests.cs b/src/DotNetOpenAuth.Test/OpenId/AuthenticationTests.cs index 01a1b7f..8679399 100644 --- a/src/DotNetOpenAuth.Test/OpenId/AuthenticationTests.cs +++ b/src/DotNetOpenAuth.Test/OpenId/AuthenticationTests.cs @@ -6,6 +6,7 @@ namespace DotNetOpenAuth.Test.OpenId { using System; + using System.Net; using System.Net.Http; using System.Threading; using System.Threading.Tasks; @@ -258,8 +259,10 @@ namespace DotNetOpenAuth.Test.OpenId { request.Realm = RPUri; var redirectRequest = await rp.Channel.PrepareResponseAsync(request); Uri redirectResponse; + this.HostFactories.AllowAutoRedirects = false; using (var httpClient = rp.Channel.HostFactories.CreateHttpClient()) { using (var response = await httpClient.GetAsync(redirectRequest.Headers.Location)) { + Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Redirect)); redirectResponse = response.Headers.Location; } } |