Refactored test helpers to remove TestSupport and move its functionality into OpenIdT...
[dotnetoauth.git] / src / DotNetOpenAuth.Test / OpenId / Provider / AuthenticationRequestTest.cs
blob078ffb458e9cedfa084b6542948c57b00f33e295
1 //-----------------------------------------------------------------------
2 // <copyright file="AuthenticationRequestTest.cs" company="Andrew Arnott">
3 // Copyright (c) Andrew Arnott. All rights reserved.
4 // </copyright>
5 //-----------------------------------------------------------------------
7 namespace DotNetOpenAuth.Test.OpenId.Provider {
8 using System;
9 using DotNetOpenAuth.Messaging;
10 using DotNetOpenAuth.OpenId;
11 using DotNetOpenAuth.OpenId.Messages;
12 using DotNetOpenAuth.OpenId.Provider;
13 using Microsoft.VisualStudio.TestTools.UnitTesting;
15 [TestClass]
16 public class AuthenticationRequestTest : OpenIdTestBase {
17 /// <summary>
18 /// Verifies the user_setup_url is set properly for immediate negative responses.
19 /// </summary>
20 [TestMethod]
21 public void UserSetupUrl() {
22 // Construct a V1 immediate request
23 Protocol protocol = Protocol.V11;
24 OpenIdProvider provider = this.CreateProvider();
25 CheckIdRequest immediateRequest = new CheckIdRequest(protocol.Version, OPUri, DotNetOpenAuth.OpenId.RelyingParty.AuthenticationRequestMode.Immediate);
26 immediateRequest.Realm = RPRealmUri;
27 immediateRequest.ReturnTo = RPUri;
28 immediateRequest.LocalIdentifier = "http://somebody";
29 AuthenticationRequest request = new AuthenticationRequest(provider, immediateRequest);
31 // Now simulate the request being rejected and extract the user_setup_url
32 request.IsAuthenticated = false;
33 Uri userSetupUrl = ((NegativeAssertionResponse)request.Response.OriginalMessage).UserSetupUrl;
34 Assert.IsNotNull(userSetupUrl);
36 // Now construct a new request as if it had just come in.
37 HttpRequestInfo httpRequest = new HttpRequestInfo { Url = userSetupUrl };
38 var setupRequest = AuthenticationRequest_Accessor.AttachShadow(provider.GetRequest(httpRequest));
39 CheckIdRequest_Accessor setupRequestMessage = setupRequest.RequestMessage;
41 // And make sure all the right properties are set.
42 Assert.IsFalse(setupRequestMessage.Immediate);
43 Assert.AreEqual(immediateRequest.Realm, setupRequestMessage.Realm);
44 Assert.AreEqual(immediateRequest.ReturnTo, setupRequestMessage.ReturnTo);
45 Assert.AreEqual(immediateRequest.LocalIdentifier, setupRequestMessage.LocalIdentifier);
46 Assert.AreEqual(immediateRequest.Version, setupRequestMessage.Version);
49 [TestMethod]
50 public void IsReturnUrlDiscoverable() {
51 Protocol protocol = Protocol.Default;
52 OpenIdProvider provider = this.CreateProvider();
53 CheckIdRequest checkIdRequest = new CheckIdRequest(protocol.Version, OPUri, DotNetOpenAuth.OpenId.RelyingParty.AuthenticationRequestMode.Setup);
54 checkIdRequest.Realm = RPRealmUri;
55 checkIdRequest.ReturnTo = RPUri;
56 AuthenticationRequest request = new AuthenticationRequest(provider, checkIdRequest);
57 Assert.IsFalse(request.IsReturnUrlDiscoverable);
59 this.MockResponder.RegisterMockRPDiscovery();
60 request = new AuthenticationRequest(provider, checkIdRequest);
61 Assert.IsTrue(request.IsReturnUrlDiscoverable);