summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.Test/OpenId/NonIdentityTests.cs
blob: 393239b537569e626d46acc5c450e837f53de5c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//-----------------------------------------------------------------------
// <copyright file="NonIdentityTests.cs" company="Outercurve Foundation">
//     Copyright (c) Outercurve Foundation. All rights reserved.
// </copyright>
//-----------------------------------------------------------------------

namespace DotNetOpenAuth.Test.OpenId {
	using DotNetOpenAuth.OpenId;
	using DotNetOpenAuth.OpenId.Messages;
	using DotNetOpenAuth.OpenId.Provider;
	using DotNetOpenAuth.OpenId.RelyingParty;
	using NUnit.Framework;

	[TestFixture]
	public class NonIdentityTests : OpenIdTestBase {
		[Test]
		public void ExtensionOnlyChannelLevel() {
			Protocol protocol = Protocol.V20;
			AuthenticationRequestMode mode = AuthenticationRequestMode.Setup;

			var coordinator = new OpenIdCoordinator(
				rp => {
					var request = new SignedResponseRequest(protocol.Version, OPUri, mode);
					rp.Channel.Respond(request);
				},
				op => {
					var request = op.Channel.ReadFromRequest<SignedResponseRequest>();
					Assert.IsNotInstanceOf<CheckIdRequest>(request);
				});
			coordinator.Run();
		}

		[Test]
		public void ExtensionOnlyFacadeLevel() {
			Protocol protocol = Protocol.V20;
			var coordinator = new OpenIdCoordinator(
				rp => {
					var request = rp.CreateRequest(GetMockIdentifier(protocol.ProtocolVersion), RPRealmUri, RPUri);

					request.IsExtensionOnly = true;
					rp.Channel.Respond(request.RedirectingResponse.OriginalMessage);
					IAuthenticationResponse response = rp.GetResponse();
					Assert.AreEqual(AuthenticationStatus.ExtensionsOnly, response.Status);
				},
				op => {
					var assocRequest = op.GetRequest();
					op.Respond(assocRequest);

					var request = (IAnonymousRequest)op.GetRequest();
					request.IsApproved = true;
					Assert.IsNotInstanceOf<CheckIdRequest>(request);
					op.Respond(request);
				});
			coordinator.Run();
		}
	}
}