1
//-----------------------------------------------------------------------
2 // <copyright file="AuthenticationRequestTest.cs" company="Andrew Arnott">
3 // Copyright (c) Andrew Arnott. All rights reserved.
5 //-----------------------------------------------------------------------
7 namespace DotNetOpenAuth
.Test
.OpenId
.Provider
{
9 using DotNetOpenAuth
.Messaging
;
10 using DotNetOpenAuth
.OpenId
;
11 using DotNetOpenAuth
.OpenId
.Messages
;
12 using DotNetOpenAuth
.OpenId
.Provider
;
13 using Microsoft
.VisualStudio
.TestTools
.UnitTesting
;
16 public class AuthenticationRequestTest
: OpenIdTestBase
{
18 /// Verifies the user_setup_url is set properly for immediate negative responses.
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
);
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
);