diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2013-03-24 20:00:42 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2013-03-24 20:00:42 -0700 |
commit | 9dbf195277d3cc31375eadbb429a5a0b077bc791 (patch) | |
tree | 4576bfd53fb4a09fb764b6732cf0b89ec4ef84d2 /src/DotNetOpenAuth.Test | |
parent | 982dc39402cdce39be4e1d3bb9e8c3ccf92348ed (diff) | |
download | DotNetOpenAuth-9dbf195277d3cc31375eadbb429a5a0b077bc791.zip DotNetOpenAuth-9dbf195277d3cc31375eadbb429a5a0b077bc791.tar.gz DotNetOpenAuth-9dbf195277d3cc31375eadbb429a5a0b077bc791.tar.bz2 |
Fixes RequireSsl in OpenID identifier discovery.
Makes UntrustedWebRequestHandler a DelegatingHandler.
Now 21 failures.
Diffstat (limited to 'src/DotNetOpenAuth.Test')
-rw-r--r-- | src/DotNetOpenAuth.Test/MockingHostFactories.cs | 11 | ||||
-rw-r--r-- | src/DotNetOpenAuth.Test/OpenId/OpenIdTestBase.cs | 57 |
2 files changed, 39 insertions, 29 deletions
diff --git a/src/DotNetOpenAuth.Test/MockingHostFactories.cs b/src/DotNetOpenAuth.Test/MockingHostFactories.cs index d9f6b02..ae10435 100644 --- a/src/DotNetOpenAuth.Test/MockingHostFactories.cs +++ b/src/DotNetOpenAuth.Test/MockingHostFactories.cs @@ -11,6 +11,9 @@ namespace DotNetOpenAuth.Test { using System.Threading; using System.Threading.Tasks; using System.Linq; + + using DotNetOpenAuth.OpenId; + using Validation; internal class MockingHostFactories : IHostFactories { @@ -30,10 +33,16 @@ namespace DotNetOpenAuth.Test { public bool AllowAutoRedirects { get; set; } + public bool InstallUntrustedWebReqestHandler { get; set; } + public HttpMessageHandler CreateHttpMessageHandler() { var forwardingMessageHandler = new ForwardingMessageHandler(this.handlers, this); var cookieDelegatingHandler = new CookieDelegatingHandler(forwardingMessageHandler, this.CookieContainer); - if (this.AllowAutoRedirects) { + if (this.InstallUntrustedWebReqestHandler) { + var untrustedHandler = new UntrustedWebRequestHandler(cookieDelegatingHandler); + untrustedHandler.AllowAutoRedirect = this.AllowAutoRedirects; + return untrustedHandler; + } else if (this.AllowAutoRedirects) { return new AutoRedirectHandler(cookieDelegatingHandler); } else { return cookieDelegatingHandler; diff --git a/src/DotNetOpenAuth.Test/OpenId/OpenIdTestBase.cs b/src/DotNetOpenAuth.Test/OpenId/OpenIdTestBase.cs index fed2402..e6b878a 100644 --- a/src/DotNetOpenAuth.Test/OpenId/OpenIdTestBase.cs +++ b/src/DotNetOpenAuth.Test/OpenId/OpenIdTestBase.cs @@ -79,6 +79,7 @@ namespace DotNetOpenAuth.Test.OpenId { this.AutoProviderScenario = Scenarios.AutoApproval; Identifier.EqualityOnStrings = true; + this.HostFactories.InstallUntrustedWebReqestHandler = true; } [TearDown] @@ -302,37 +303,37 @@ namespace DotNetOpenAuth.Test.OpenId { return await op.Channel.PrepareResponseAsync(response); }); - { - var rp = this.CreateRelyingParty(); - ExtensionTestUtilities.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 rp = this.CreateRelyingParty(); + ExtensionTestUtilities.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; - this.HostFactories.AllowAutoRedirects = false; - using (var httpClient = rp.Channel.HostFactories.CreateHttpClient()) { - using (var redirectingResponse = await httpClient.GetAsync(redirectingRequest.Headers.Location)) { - Assert.AreEqual(HttpStatusCode.Found, redirectingResponse.StatusCode); - redirectingResponseUri = redirectingResponse.Headers.Location; - } + var redirectingRequest = await rp.Channel.PrepareResponseAsync(requestBase); + Uri redirectingResponseUri; + this.HostFactories.AllowAutoRedirects = false; + using (var httpClient = rp.Channel.HostFactories.CreateHttpClient()) { + using (var redirectingResponse = await httpClient.GetAsync(redirectingRequest.Headers.Location)) { + Assert.AreEqual(HttpStatusCode.Found, redirectingResponse.StatusCode); + redirectingResponseUri = redirectingResponse.Headers.Location; } - - var response = - await - rp.Channel.ReadFromRequestAsync<PositiveAssertionResponse>( - new HttpRequestMessage(HttpMethod.Get, redirectingResponseUri), CancellationToken.None); - var receivedResponses = response.Extensions.Cast<IOpenIdMessageExtension>(); - CollectionAssert<IOpenIdMessageExtension>.AreEquivalentByEquality(responses.ToArray(), receivedResponses.ToArray()); } + + var response = + await + rp.Channel.ReadFromRequestAsync<PositiveAssertionResponse>( + new HttpRequestMessage(HttpMethod.Get, redirectingResponseUri), CancellationToken.None); + var receivedResponses = response.Extensions.Cast<IOpenIdMessageExtension>(); + CollectionAssert<IOpenIdMessageExtension>.AreEquivalentByEquality(responses.ToArray(), receivedResponses.ToArray()); + } } } } |