diff options
Diffstat (limited to 'src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs')
-rw-r--r-- | src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs b/src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs index 87faac2..349be56 100644 --- a/src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs +++ b/src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs @@ -131,8 +131,21 @@ namespace DotNetOpenAuth.Test.Mocks { } internal static void RegisterMockResponse(this TestBase test, Uri requestUri, Uri responseUri, string contentType, WebHeaderCollection headers, string content) { + Requires.NotNull(requestUri, "requestUri"); + Requires.NotNull(responseUri, "responseUri"); + Requires.NotNullOrEmpty(contentType, "contentType"); + test.Handle(requestUri).By(req => { var response = new HttpResponseMessage(); + response.RequestMessage = req; + + if (requestUri != responseUri) { + // Simulate having followed redirects to get the final response. + var clonedRequest = MessagingUtilities.Clone(req); + clonedRequest.RequestUri = responseUri; + response.RequestMessage = clonedRequest; + } + response.CopyHeadersFrom(headers); response.Content = new StringContent(content, Encoding.Default, contentType); return response; |