summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.Test/OpenId
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenAuth.Test/OpenId')
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/ChannelElements/ExtensionsBindingElementTests.cs36
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestBase.cs28
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/Extensions/SimpleRegistrationTests.cs4
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/OpenIdTestBase.cs78
4 files changed, 93 insertions, 53 deletions
diff --git a/src/DotNetOpenAuth.Test/OpenId/ChannelElements/ExtensionsBindingElementTests.cs b/src/DotNetOpenAuth.Test/OpenId/ChannelElements/ExtensionsBindingElementTests.cs
new file mode 100644
index 0000000..539b07d
--- /dev/null
+++ b/src/DotNetOpenAuth.Test/OpenId/ChannelElements/ExtensionsBindingElementTests.cs
@@ -0,0 +1,36 @@
+//-----------------------------------------------------------------------
+// <copyright file="ExtensionsBindingElementTests.cs" company="Andrew Arnott">
+// Copyright (c) Andrew Arnott. All rights reserved.
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace DotNetOpenAuth.Test.OpenId.ChannelElements {
+ using System;
+ using System.Collections.Generic;
+ using System.Linq;
+ using System.Text;
+ using Microsoft.VisualStudio.TestTools.UnitTesting;
+ using DotNetOpenAuth.OpenId.Messages;
+ using DotNetOpenAuth.Test.Mocks;
+ using DotNetOpenAuth.Test.OpenId.Extensions;
+ using DotNetOpenAuth.OpenId;
+ using DotNetOpenAuth.OpenId.Extensions;
+
+ [TestClass]
+ public class ExtensionsBindingElementTests : OpenIdTestBase {
+ [TestInitialize]
+ public override void SetUp() {
+ base.SetUp();
+ }
+
+ [TestMethod]
+ public void ExtensionTransportTest() {
+ IOpenIdMessageExtension request = new MockOpenIdExtension("requestPart", "requestData");
+ IOpenIdMessageExtension response = new MockOpenIdExtension("responsePart", "responseData");
+ ExtensionTestUtilities.Roundtrip(
+ Protocol.Default,
+ new IOpenIdMessageExtension[] { request },
+ new IOpenIdMessageExtension[] { response });
+ }
+ }
+}
diff --git a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestBase.cs b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestBase.cs
index 95026d4..b47ff55 100644
--- a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestBase.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestBase.cs
@@ -14,28 +14,24 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions {
using DotNetOpenAuth.OpenId.Messages;
using DotNetOpenAuth.Test.Messaging;
using Microsoft.VisualStudio.TestTools.UnitTesting;
+ using DotNetOpenAuth.OpenId.ChannelElements;
+ using DotNetOpenAuth.OpenId.Extensions;
- public class ExtensionTestBase : OpenIdTestBase {
- protected const ProtocolVersion Version = ProtocolVersion.V20;
-
- [TestInitialize]
- public override void SetUp() {
- base.SetUp();
- }
-
- internal void Roundtrip(
+ public static class ExtensionTestUtilities {
+ internal static void Roundtrip(
Protocol protocol,
IEnumerable<IOpenIdMessageExtension> requests,
IEnumerable<IOpenIdMessageExtension> responses) {
Association association = HmacShaAssociation.Create(protocol, protocol.Args.SignatureAlgorithm.Best, AssociationRelyingPartyType.Smart);
var coordinator = new OpenIdCoordinator(
rp => {
- var requestBase = new CheckIdRequest(protocol.Version, ProviderUri, true);
- rp.AssociationStore.StoreAssociation(ProviderUri, association);
+ RegisterExtension(rp.Channel, Mocks.MockOpenIdExtension.Factory);
+ var requestBase = new CheckIdRequest(protocol.Version, OpenIdTestBase.ProviderUri, true);
+ rp.AssociationStore.StoreAssociation(OpenIdTestBase.ProviderUri, association);
requestBase.AssociationHandle = association.Handle;
requestBase.ClaimedIdentifier = "http://claimedid";
requestBase.LocalIdentifier = "http://localid";
- requestBase.ReturnTo = RPUri;
+ requestBase.ReturnTo = OpenIdTestBase.RPUri;
foreach (IOpenIdMessageExtension extension in requests) {
requestBase.Extensions.Add(extension);
@@ -48,6 +44,7 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions {
CollectionAssert<IOpenIdMessageExtension>.AreEquivalentByEquality(responses.ToArray(), receivedResponses.ToArray());
},
op => {
+ RegisterExtension(op.Channel, Mocks.MockOpenIdExtension.Factory);
op.AssociationStore.StoreAssociation(AssociationRelyingPartyType.Smart, association);
var request = op.Channel.ReadFromRequest<CheckIdRequest>();
var response = new PositiveAssertionResponse(request);
@@ -62,5 +59,12 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions {
});
coordinator.Run();
}
+
+ internal static void RegisterExtension(Channel channel, OpenIdExtensionFactory.CreateDelegate extensionFactory) {
+ ErrorUtilities.VerifyArgumentNotNull(channel, "channel");
+
+ OpenIdExtensionFactory factory = (OpenIdExtensionFactory)channel.BindingElements.OfType<ExtensionsBindingElement>().Single().ExtensionFactory;
+ factory.RegisterExtension(extensionFactory);
+ }
}
}
diff --git a/src/DotNetOpenAuth.Test/OpenId/Extensions/SimpleRegistrationTests.cs b/src/DotNetOpenAuth.Test/OpenId/Extensions/SimpleRegistrationTests.cs
index c41ccb8..055bb80 100644
--- a/src/DotNetOpenAuth.Test/OpenId/Extensions/SimpleRegistrationTests.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/Extensions/SimpleRegistrationTests.cs
@@ -15,13 +15,13 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions {
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
- public class SimpleRegistrationTests : ExtensionTestBase {
+ public class SimpleRegistrationTests : OpenIdTestBase {
[TestMethod]
public void Simple() {
ClaimsRequest request = new ClaimsRequest() { Nickname = DemandLevel.Request };
ClaimsResponse response = new ClaimsResponse(Constants.sreg_ns);
response.Nickname = "Andrew";
- Roundtrip(Protocol.Default, new[] { request }, new[] { response });
+ ExtensionTestUtilities.Roundtrip(Protocol.Default, new[] { request }, new[] { response });
}
////[TestMethod]
diff --git a/src/DotNetOpenAuth.Test/OpenId/OpenIdTestBase.cs b/src/DotNetOpenAuth.Test/OpenId/OpenIdTestBase.cs
index 2a1b7bd..4708a2c 100644
--- a/src/DotNetOpenAuth.Test/OpenId/OpenIdTestBase.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/OpenIdTestBase.cs
@@ -1,39 +1,39 @@
-//-----------------------------------------------------------------------
-// <copyright file="OpenIdTestBase.cs" company="Andrew Arnott">
-// Copyright (c) Andrew Arnott. All rights reserved.
-// </copyright>
-//-----------------------------------------------------------------------
-
-namespace DotNetOpenAuth.Test.OpenId {
- using System;
- using DotNetOpenAuth.Configuration;
- using DotNetOpenAuth.Messaging;
- using DotNetOpenAuth.OpenId.Provider;
- using DotNetOpenAuth.OpenId.RelyingParty;
- using DotNetOpenAuth.Test.Mocks;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
-
- public class OpenIdTestBase : TestBase {
- internal IDirectSslWebRequestHandler RequestHandler;
-
- internal MockHttpRequest MockResponder;
-
- protected static readonly Uri ProviderUri = new Uri("http://provider");
- protected static readonly Uri RPUri = new Uri("http://rp");
-
- protected RelyingPartySecuritySettings RelyingPartySecuritySettings { get; private set; }
-
- protected ProviderSecuritySettings ProviderSecuritySettings { get; private set; }
-
- [TestInitialize]
- public override void SetUp() {
- base.SetUp();
-
- this.RelyingPartySecuritySettings = RelyingPartySection.Configuration.SecuritySettings.CreateSecuritySettings();
- this.ProviderSecuritySettings = ProviderSection.Configuration.SecuritySettings.CreateSecuritySettings();
-
- this.MockResponder = MockHttpRequest.CreateUntrustedMockHttpHandler();
- this.RequestHandler = this.MockResponder.MockWebRequestHandler;
- }
- }
-}
+//-----------------------------------------------------------------------
+// <copyright file="OpenIdTestBase.cs" company="Andrew Arnott">
+// Copyright (c) Andrew Arnott. All rights reserved.
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace DotNetOpenAuth.Test.OpenId {
+ using System;
+ using DotNetOpenAuth.Configuration;
+ using DotNetOpenAuth.Messaging;
+ using DotNetOpenAuth.OpenId.Provider;
+ using DotNetOpenAuth.OpenId.RelyingParty;
+ using DotNetOpenAuth.Test.Mocks;
+ using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+ public class OpenIdTestBase : TestBase {
+ internal IDirectSslWebRequestHandler RequestHandler;
+
+ internal MockHttpRequest MockResponder;
+
+ protected internal static readonly Uri ProviderUri = new Uri("http://provider");
+ protected internal static readonly Uri RPUri = new Uri("http://rp");
+
+ protected RelyingPartySecuritySettings RelyingPartySecuritySettings { get; private set; }
+
+ protected ProviderSecuritySettings ProviderSecuritySettings { get; private set; }
+
+ [TestInitialize]
+ public override void SetUp() {
+ base.SetUp();
+
+ this.RelyingPartySecuritySettings = RelyingPartySection.Configuration.SecuritySettings.CreateSecuritySettings();
+ this.ProviderSecuritySettings = ProviderSection.Configuration.SecuritySettings.CreateSecuritySettings();
+
+ this.MockResponder = MockHttpRequest.CreateUntrustedMockHttpHandler();
+ this.RequestHandler = this.MockResponder.MockWebRequestHandler;
+ }
+ }
+}