summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2008-08-08 15:46:40 -0700
committerAndrew Arnott <andrewarnott@gmail.com>2008-08-08 15:46:40 -0700
commit3fb65cccfa1e35de45b3b42cf0f7867b77dca254 (patch)
tree47b16124b0a19aa0e27662f24b9e41a891cf7ee0
parent47e9212eebc0bc4d002ce1822e0b2959bd14e244 (diff)
downloadDotNetOpenAuth-3fb65cccfa1e35de45b3b42cf0f7867b77dca254.zip
DotNetOpenAuth-3fb65cccfa1e35de45b3b42cf0f7867b77dca254.tar.gz
DotNetOpenAuth-3fb65cccfa1e35de45b3b42cf0f7867b77dca254.tar.bz2
Put all ASP.NET depending tests inside a UI directory.
-rw-r--r--src/DotNetOpenId.Test/DotNetOpenId.Test.csproj11
-rw-r--r--src/DotNetOpenId.Test/EndToEndTesting.cs77
-rw-r--r--src/DotNetOpenId.Test/UI/IdentityEndpointTest.cs (renamed from src/DotNetOpenId.Test/Provider/IdentityEndpointTest.cs)2
-rw-r--r--src/DotNetOpenId.Test/UI/OpenIdMobileTextBoxTest.cs (renamed from src/DotNetOpenId.Test/RelyingParty/OpenIdMobileTextBoxTest.cs)2
-rw-r--r--src/DotNetOpenId.Test/UI/OpenIdTextBoxTest.cs (renamed from src/DotNetOpenId.Test/RelyingParty/OpenIdTextBoxTest.cs)2
-rw-r--r--src/DotNetOpenId.Test/UI/ProviderEndpointTest.cs (renamed from src/DotNetOpenId.Test/Provider/ProviderEndpointTest.cs)2
-rw-r--r--src/DotNetOpenId.Test/UI/TestSupportSanityTest.cs (renamed from src/DotNetOpenId.Test/TestSupportSanityTest.cs)2
-rw-r--r--src/DotNetOpenId.Test/UI/WebControlTesting.cs103
8 files changed, 115 insertions, 86 deletions
diff --git a/src/DotNetOpenId.Test/DotNetOpenId.Test.csproj b/src/DotNetOpenId.Test/DotNetOpenId.Test.csproj
index 222424a..b95900f 100644
--- a/src/DotNetOpenId.Test/DotNetOpenId.Test.csproj
+++ b/src/DotNetOpenId.Test/DotNetOpenId.Test.csproj
@@ -74,25 +74,26 @@
<Compile Include="RelyingParty\AuthenticationRequestTests.cs" />
<Compile Include="RelyingParty\AuthenticationResponseTests.cs" />
<Compile Include="RelyingParty\IProviderEndpointTests.cs" />
- <Compile Include="RelyingParty\OpenIdMobileTextBoxTest.cs" />
+ <Compile Include="UI\OpenIdMobileTextBoxTest.cs" />
<Compile Include="RelyingParty\OpenIdRelyingPartyTest.cs" />
- <Compile Include="RelyingParty\OpenIdTextBoxTest.cs" />
+ <Compile Include="UI\OpenIdTextBoxTest.cs" />
<Compile Include="DiffieHellmanTestSuite.cs" />
<Compile Include="EndToEndTesting.cs" />
<Compile Include="KeyValueFormEncodingTests.cs" />
<Compile Include="RelyingParty\ServiceEndpointTests.cs" />
- <Compile Include="TestSupportSanityTest.cs" />
+ <Compile Include="UI\TestSupportSanityTest.cs" />
<Compile Include="Hosting\AspNetHost.cs" />
<Compile Include="Hosting\HttpHost.cs" />
<Compile Include="TestSupport.cs" />
<Compile Include="Hosting\TestingWorkerRequest.cs" />
<Compile Include="Extensions\ClaimsResponseTests.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="Provider\IdentityEndpointTest.cs" />
+ <Compile Include="UI\IdentityEndpointTest.cs" />
<Compile Include="Provider\OpenIdProviderTest.cs" />
- <Compile Include="Provider\ProviderEndpointTest.cs" />
+ <Compile Include="UI\ProviderEndpointTest.cs" />
<Compile Include="RelyingParty\TokenTest.cs" />
<Compile Include="RealmTestSuite.cs" />
+ <Compile Include="UI\WebControlTesting.cs" />
<Compile Include="UntrustedWebRequestTests.cs" />
<Compile Include="UriIdentifierTests.cs" />
<Compile Include="UriUtilTest.cs" />
diff --git a/src/DotNetOpenId.Test/EndToEndTesting.cs b/src/DotNetOpenId.Test/EndToEndTesting.cs
index 1aa41c0..1902cae 100644
--- a/src/DotNetOpenId.Test/EndToEndTesting.cs
+++ b/src/DotNetOpenId.Test/EndToEndTesting.cs
@@ -25,11 +25,9 @@ namespace DotNetOpenId.Test {
void parameterizedTest(TestSupport.Scenarios scenario, ProtocolVersion version,
AuthenticationRequestMode requestMode, AuthenticationStatus expectedResult) {
- Identifier userSuppliedIdentifier = TestSupport.GetMockIdentifier(scenario, version);
- Identifier claimedId = userSuppliedIdentifier;
+ Identifier claimedId = TestSupport.GetMockIdentifier(scenario, version);
parameterizedProgrammaticTest(scenario, version, claimedId, requestMode, expectedResult, true);
parameterizedProgrammaticTest(scenario, version, claimedId, requestMode, expectedResult, false);
- parameterizedWebClientTest(userSuppliedIdentifier, requestMode, expectedResult);
}
void parameterizedOPIdentifierTest(TestSupport.Scenarios scenario,
AuthenticationRequestMode requestMode, AuthenticationStatus expectedResult) {
@@ -38,7 +36,6 @@ namespace DotNetOpenId.Test {
Identifier opIdentifier = TestSupport.GetMockOPIdentifier(TestSupport.Scenarios.ApproveOnSetup, claimedIdentifier);
parameterizedProgrammaticOPIdentifierTest(opIdentifier, version, claimedIdentifier, requestMode, expectedResult, true);
parameterizedProgrammaticOPIdentifierTest(opIdentifier, version, claimedIdentifier, requestMode, expectedResult, false);
- parameterizedWebClientTest(opIdentifier, requestMode, expectedResult);
}
void parameterizedProgrammaticTest(TestSupport.Scenarios scenario, ProtocolVersion version,
Identifier claimedUrl, AuthenticationRequestMode requestMode,
@@ -73,78 +70,6 @@ namespace DotNetOpenId.Test {
Assert.AreEqual(claimedUrl, rpResponse.ClaimedIdentifier);
}
}
- void parameterizedWebClientTest(Identifier identityUrl,
- AuthenticationRequestMode requestMode, AuthenticationStatus expectedResult) {
-
- Uri redirectToProviderUrl;
- HttpWebRequest rpRequest = (HttpWebRequest)WebRequest.Create(TestSupport.GetFullUrl(TestSupport.ConsumerPage));
- NameValueCollection query = new NameValueCollection();
- using (HttpWebResponse response = (HttpWebResponse)rpRequest.GetResponse()) {
- using (StreamReader sr = new StreamReader(response.GetResponseStream())) {
- Regex regex = new Regex(@"\<input\b.*\bname=""(\w+)"".*\bvalue=""([^""]+)""", RegexOptions.IgnoreCase);
- while (!sr.EndOfStream) {
- string line = sr.ReadLine();
- Match m = regex.Match(line);
- if (m.Success) {
- query[m.Groups[1].Value] = m.Groups[2].Value;
- }
- }
- }
- }
- query["OpenIdTextBox1$wrappedTextBox"] = identityUrl;
- rpRequest = (HttpWebRequest)WebRequest.Create(TestSupport.GetFullUrl(TestSupport.ConsumerPage));
- rpRequest.Method = "POST";
- rpRequest.AllowAutoRedirect = false;
- string queryString = UriUtil.CreateQueryString(query);
- rpRequest.ContentLength = queryString.Length;
- rpRequest.ContentType = "application/x-www-form-urlencoded";
- using (StreamWriter sw = new StreamWriter(rpRequest.GetRequestStream())) {
- sw.Write(queryString);
- }
- using (HttpWebResponse response = (HttpWebResponse)rpRequest.GetResponse()) {
- using (StreamReader sr = new StreamReader(response.GetResponseStream())) {
- string doc = sr.ReadToEnd();
- Debug.WriteLine(doc);
- }
- redirectToProviderUrl = new Uri(response.Headers[HttpResponseHeader.Location]);
- }
-
- HttpWebRequest providerRequest = (HttpWebRequest)WebRequest.Create(redirectToProviderUrl);
- providerRequest.AllowAutoRedirect = false;
- Uri redirectUrl;
- try {
- using (HttpWebResponse providerResponse = (HttpWebResponse)providerRequest.GetResponse()) {
- Assert.AreEqual(HttpStatusCode.Redirect, providerResponse.StatusCode);
- redirectUrl = new Uri(providerResponse.Headers[HttpResponseHeader.Location]);
- }
- } catch (WebException ex) {
- Trace.WriteLine(ex);
- if (ex.Response != null) {
- using (StreamReader sr = new StreamReader(ex.Response.GetResponseStream())) {
- Trace.WriteLine(sr.ReadToEnd());
- }
- }
- throw;
- }
- rpRequest = (HttpWebRequest)WebRequest.Create(redirectUrl);
- rpRequest.AllowAutoRedirect = false;
- using (HttpWebResponse response = (HttpWebResponse)rpRequest.GetResponse()) {
- Assert.AreEqual(HttpStatusCode.Redirect, response.StatusCode); // redirect on login
- }
-
- // Try replay attack
- if (expectedResult == AuthenticationStatus.Authenticated) {
- // This simulates a network sniffing user who caught the
- // authenticating query en route to either the user agent or
- // the consumer, and tries the same query to the consumer in an
- // attempt to spoof the identity of the authenticating user.
- rpRequest = (HttpWebRequest)WebRequest.Create(redirectUrl);
- rpRequest.AllowAutoRedirect = false;
- using (HttpWebResponse response = (HttpWebResponse)rpRequest.GetResponse()) {
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); // error message
- }
- }
- }
[Test]
public void Pass_Setup_AutoApproval_11() {
parameterizedTest(
diff --git a/src/DotNetOpenId.Test/Provider/IdentityEndpointTest.cs b/src/DotNetOpenId.Test/UI/IdentityEndpointTest.cs
index 8a1d481..87dddb4 100644
--- a/src/DotNetOpenId.Test/Provider/IdentityEndpointTest.cs
+++ b/src/DotNetOpenId.Test/UI/IdentityEndpointTest.cs
@@ -9,7 +9,7 @@ using System.Text.RegularExpressions;
using System.Net;
using System.Globalization;
-namespace DotNetOpenId.Test.Provider {
+namespace DotNetOpenId.Test.UI {
[TestFixture]
public class IdentityEndpointTest {
void parameterizedIdentityEndpointPage(ProtocolVersion version) {
diff --git a/src/DotNetOpenId.Test/RelyingParty/OpenIdMobileTextBoxTest.cs b/src/DotNetOpenId.Test/UI/OpenIdMobileTextBoxTest.cs
index 0feea56..c56eaa9 100644
--- a/src/DotNetOpenId.Test/RelyingParty/OpenIdMobileTextBoxTest.cs
+++ b/src/DotNetOpenId.Test/UI/OpenIdMobileTextBoxTest.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using NUnit.Framework;
-namespace DotNetOpenId.Test.RelyingParty {
+namespace DotNetOpenId.Test.UI {
[TestFixture]
public class OpenIdMobileTextBoxTest {
[Test]
diff --git a/src/DotNetOpenId.Test/RelyingParty/OpenIdTextBoxTest.cs b/src/DotNetOpenId.Test/UI/OpenIdTextBoxTest.cs
index 9176096..6d5d703 100644
--- a/src/DotNetOpenId.Test/RelyingParty/OpenIdTextBoxTest.cs
+++ b/src/DotNetOpenId.Test/UI/OpenIdTextBoxTest.cs
@@ -5,7 +5,7 @@ using NUnit.Framework;
using DotNetOpenId.Test.Hosting;
using System.Net;
-namespace DotNetOpenId.Test.RelyingParty {
+namespace DotNetOpenId.Test.UI {
[TestFixture]
public class OpenIdTextBoxTest {
[Test]
diff --git a/src/DotNetOpenId.Test/Provider/ProviderEndpointTest.cs b/src/DotNetOpenId.Test/UI/ProviderEndpointTest.cs
index 7148f5b..6da933a 100644
--- a/src/DotNetOpenId.Test/Provider/ProviderEndpointTest.cs
+++ b/src/DotNetOpenId.Test/UI/ProviderEndpointTest.cs
@@ -6,7 +6,7 @@ using DotNetOpenId.Test.Hosting;
using DotNetOpenId.Provider;
using System.Net;
-namespace DotNetOpenId.Test.Provider {
+namespace DotNetOpenId.Test.UI {
[TestFixture]
public class ProviderEndpointTest {
[Test]
diff --git a/src/DotNetOpenId.Test/TestSupportSanityTest.cs b/src/DotNetOpenId.Test/UI/TestSupportSanityTest.cs
index df78dd5..49d1a1e 100644
--- a/src/DotNetOpenId.Test/TestSupportSanityTest.cs
+++ b/src/DotNetOpenId.Test/UI/TestSupportSanityTest.cs
@@ -8,7 +8,7 @@ using System.IO;
using System.Diagnostics;
using System.Text.RegularExpressions;
-namespace DotNetOpenId.Test {
+namespace DotNetOpenId.Test.UI {
[TestFixture]
public class TestSupportSanityTest {
[Test]
diff --git a/src/DotNetOpenId.Test/UI/WebControlTesting.cs b/src/DotNetOpenId.Test/UI/WebControlTesting.cs
new file mode 100644
index 0000000..08afecf
--- /dev/null
+++ b/src/DotNetOpenId.Test/UI/WebControlTesting.cs
@@ -0,0 +1,103 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using NUnit.Framework;
+using DotNetOpenId.RelyingParty;
+using System.Net;
+using System.Collections.Specialized;
+using System.IO;
+using System.Text.RegularExpressions;
+using System.Diagnostics;
+
+namespace DotNetOpenId.Test.UI {
+ [TestFixture]
+ public class WebControlTesting {
+ void parameterizedWebClientTest(Identifier identityUrl,
+ AuthenticationRequestMode requestMode, AuthenticationStatus expectedResult) {
+
+ Uri redirectToProviderUrl;
+ HttpWebRequest rpRequest = (HttpWebRequest)WebRequest.Create(TestSupport.GetFullUrl(TestSupport.ConsumerPage));
+ NameValueCollection query = new NameValueCollection();
+ using (HttpWebResponse response = (HttpWebResponse)rpRequest.GetResponse()) {
+ using (StreamReader sr = new StreamReader(response.GetResponseStream())) {
+ Regex regex = new Regex(@"\<input\b.*\bname=""(\w+)"".*\bvalue=""([^""]+)""", RegexOptions.IgnoreCase);
+ while (!sr.EndOfStream) {
+ string line = sr.ReadLine();
+ Match m = regex.Match(line);
+ if (m.Success) {
+ query[m.Groups[1].Value] = m.Groups[2].Value;
+ }
+ }
+ }
+ }
+ query["OpenIdTextBox1$wrappedTextBox"] = identityUrl;
+ rpRequest = (HttpWebRequest)WebRequest.Create(TestSupport.GetFullUrl(TestSupport.ConsumerPage));
+ rpRequest.Method = "POST";
+ rpRequest.AllowAutoRedirect = false;
+ string queryString = UriUtil.CreateQueryString(query);
+ rpRequest.ContentLength = queryString.Length;
+ rpRequest.ContentType = "application/x-www-form-urlencoded";
+ using (StreamWriter sw = new StreamWriter(rpRequest.GetRequestStream())) {
+ sw.Write(queryString);
+ }
+ using (HttpWebResponse response = (HttpWebResponse)rpRequest.GetResponse()) {
+ using (StreamReader sr = new StreamReader(response.GetResponseStream())) {
+ string doc = sr.ReadToEnd();
+ Debug.WriteLine(doc);
+ }
+ redirectToProviderUrl = new Uri(response.Headers[HttpResponseHeader.Location]);
+ }
+
+ HttpWebRequest providerRequest = (HttpWebRequest)WebRequest.Create(redirectToProviderUrl);
+ providerRequest.AllowAutoRedirect = false;
+ Uri redirectUrl;
+ try {
+ using (HttpWebResponse providerResponse = (HttpWebResponse)providerRequest.GetResponse()) {
+ Assert.AreEqual(HttpStatusCode.Redirect, providerResponse.StatusCode);
+ redirectUrl = new Uri(providerResponse.Headers[HttpResponseHeader.Location]);
+ }
+ } catch (WebException ex) {
+ Trace.WriteLine(ex);
+ if (ex.Response != null) {
+ using (StreamReader sr = new StreamReader(ex.Response.GetResponseStream())) {
+ Trace.WriteLine(sr.ReadToEnd());
+ }
+ }
+ throw;
+ }
+ rpRequest = (HttpWebRequest)WebRequest.Create(redirectUrl);
+ rpRequest.AllowAutoRedirect = false;
+ using (HttpWebResponse response = (HttpWebResponse)rpRequest.GetResponse()) {
+ Assert.AreEqual(HttpStatusCode.Redirect, response.StatusCode); // redirect on login
+ }
+
+ // Try replay attack
+ if (expectedResult == AuthenticationStatus.Authenticated) {
+ // This simulates a network sniffing user who caught the
+ // authenticating query en route to either the user agent or
+ // the consumer, and tries the same query to the consumer in an
+ // attempt to spoof the identity of the authenticating user.
+ rpRequest = (HttpWebRequest)WebRequest.Create(redirectUrl);
+ rpRequest.AllowAutoRedirect = false;
+ using (HttpWebResponse response = (HttpWebResponse)rpRequest.GetResponse()) {
+ Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); // error message
+ }
+ }
+ }
+
+ [Test]
+ public void Pass_Setup_AutoApproval_20() {
+ Identifier userSuppliedIdentifier = TestSupport.GetMockIdentifier(TestSupport.Scenarios.AutoApproval, ProtocolVersion.V20);
+ Identifier claimedId = userSuppliedIdentifier;
+ parameterizedWebClientTest(userSuppliedIdentifier, AuthenticationRequestMode.Setup, AuthenticationStatus.Authenticated);
+ }
+
+ [Test]
+ public void Fail_Immediate_ApproveOnSetup_20() {
+ Identifier userSuppliedIdentifier = TestSupport.GetMockIdentifier(TestSupport.Scenarios.ApproveOnSetup, ProtocolVersion.V20);
+ Identifier claimedId = userSuppliedIdentifier;
+ parameterizedWebClientTest(userSuppliedIdentifier, AuthenticationRequestMode.Immediate, AuthenticationStatus.Authenticated);
+ }
+ }
+}