summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.Test
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenAuth.Test')
-rw-r--r--src/DotNetOpenAuth.Test/Logging.config5
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/ChannelElements/ExtensionsBindingElementTests.cs48
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/RelyingParty/RelyingPartySecuritySettingsTests.cs8
3 files changed, 53 insertions, 8 deletions
diff --git a/src/DotNetOpenAuth.Test/Logging.config b/src/DotNetOpenAuth.Test/Logging.config
index f67c031..cd19de2 100644
--- a/src/DotNetOpenAuth.Test/Logging.config
+++ b/src/DotNetOpenAuth.Test/Logging.config
@@ -14,7 +14,7 @@
<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
<immediateFlush value="true" />
<layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%-5level - %message%newline" />
+ <conversionPattern value="[%thread] %-5level - %message%newline" />
</layout>
</appender>
<!-- Setup the root category, add the appenders and set the default level -->
@@ -30,4 +30,7 @@
<logger name="DotNetOpenAuth.Test">
<level value="Debug" />
</logger>
+ <logger name="DotNetOpenAuth.OpenId.ChannelElements.SigningBindingElement">
+ <level value="WARN" />
+ </logger>
</log4net>
diff --git a/src/DotNetOpenAuth.Test/OpenId/ChannelElements/ExtensionsBindingElementTests.cs b/src/DotNetOpenAuth.Test/OpenId/ChannelElements/ExtensionsBindingElementTests.cs
index 7a719ec..a9217eb 100644
--- a/src/DotNetOpenAuth.Test/OpenId/ChannelElements/ExtensionsBindingElementTests.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/ChannelElements/ExtensionsBindingElementTests.cs
@@ -93,11 +93,7 @@ namespace DotNetOpenAuth.Test.OpenId.ChannelElements {
public void ExtensionResponsesAreSigned() {
Protocol protocol = Protocol.Default;
var op = this.CreateProvider();
- IndirectSignedResponse response = new IndirectSignedResponse(protocol.Version, RPUri);
- response.ReturnTo = RPUri;
- response.ProviderEndpoint = ProviderUri;
- var ext = new MockOpenIdExtension("pv", "ev");
- response.Extensions.Add(ext);
+ IndirectSignedResponse response = CreateResponseWithExtensions(protocol);
op.Channel.Send(response);
ITamperResistantOpenIdMessage signedResponse = (ITamperResistantOpenIdMessage)response;
string extensionAliasKey = signedResponse.ExtraData.Single(kv => kv.Value == MockOpenIdExtension.MockTypeUri).Key;
@@ -115,9 +111,47 @@ namespace DotNetOpenAuth.Test.OpenId.ChannelElements {
/// <summary>
/// Verifies that unsigned extension responses (where any or all fields are unsigned) are ignored.
/// </summary>
- [TestMethod, Ignore]
+ [TestMethod]
public void UnsignedExtensionsAreIgnored() {
- Assert.Inconclusive("Not yet implemented.");
+ Protocol protocol = Protocol.Default;
+ OpenIdCoordinator coordinator = new OpenIdCoordinator(
+ rp => {
+ RegisterMockExtension(rp.Channel);
+ var response = rp.Channel.ReadFromRequest<IndirectSignedResponse>();
+ Assert.AreEqual(1, response.Extensions.Count, "Signed extension should have been received.");
+ response = rp.Channel.ReadFromRequest<IndirectSignedResponse>();
+ Assert.AreEqual(0, response.Extensions.Count, "Unsigned extension should have been ignored.");
+ },
+ op => {
+ RegisterMockExtension(op.Channel);
+ op.Channel.Send(CreateResponseWithExtensions(protocol)).Send();
+ op.GetRequest().Response.Send(); // check_auth
+ op.SecuritySettings.SignOutgoingExtensions = false;
+ op.Channel.Send(CreateResponseWithExtensions(protocol)).Send();
+ op.GetRequest().Response.Send(); // check_auth
+ }
+ );
+ coordinator.Run();
+ }
+
+ private static void RegisterMockExtension(Channel channel) {
+ ErrorUtilities.VerifyArgumentNotNull(channel, "channel");
+
+ ((OpenIdExtensionFactory)channel.BindingElements.OfType<ExtensionsBindingElement>().Single().ExtensionFactory).RegisterExtension(MockOpenIdExtension.Factory);
+ }
+
+ /// <summary>
+ /// Creates a response message with one extensions.
+ /// </summary>
+ /// <param name="protocol">The protocol to construct the message with.</param>
+ /// <returns>The message ready to send from OP to RP.</returns>
+ private IndirectSignedResponse CreateResponseWithExtensions(Protocol protocol) {
+ ErrorUtilities.VerifyArgumentNotNull(protocol, "protocol");
+
+ IndirectSignedResponse response = new IndirectSignedResponse(protocol.Version, RPUri);
+ response.ProviderEndpoint = ProviderUri;
+ response.Extensions.Add(new MockOpenIdExtension("pv", "ev"));
+ return response;
}
/// <summary>
diff --git a/src/DotNetOpenAuth.Test/OpenId/RelyingParty/RelyingPartySecuritySettingsTests.cs b/src/DotNetOpenAuth.Test/OpenId/RelyingParty/RelyingPartySecuritySettingsTests.cs
index cb5fbb5..8c5dc6a 100644
--- a/src/DotNetOpenAuth.Test/OpenId/RelyingParty/RelyingPartySecuritySettingsTests.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/RelyingParty/RelyingPartySecuritySettingsTests.cs
@@ -53,5 +53,13 @@ namespace DotNetOpenAuth.Test.OpenId.RelyingParty {
this.settings.RequireSsl = !this.settings.RequireSsl;
Assert.IsTrue(requireSslChanged);
}
+
+ /// <summary>
+ /// Verifies default value for AllowUnsignedIncomingExtensions.
+ /// </summary>
+ [TestMethod]
+ public void AllowUnsignedIncomingExtensionsDefault() {
+ Assert.IsFalse(this.settings.AllowUnsignedIncomingExtensions);
+ }
}
}