summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs')
-rw-r--r--src/DotNetOpenAuth.Test/Mocks/MockHttpRequest.cs13
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;