summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.Test/OpenId/IdentifierTests.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenAuth.Test/OpenId/IdentifierTests.cs')
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/IdentifierTests.cs66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/DotNetOpenAuth.Test/OpenId/IdentifierTests.cs b/src/DotNetOpenAuth.Test/OpenId/IdentifierTests.cs
new file mode 100644
index 0000000..8c3bc3b
--- /dev/null
+++ b/src/DotNetOpenAuth.Test/OpenId/IdentifierTests.cs
@@ -0,0 +1,66 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using DotNetOpenAuth.OpenId;
+
+namespace DotNetOpenAuth.Test.OpenId {
+ [TestClass]
+ public class IdentifierTests {
+ string uri = "http://www.yahoo.com/";
+ string uriNoScheme = "www.yahoo.com";
+ string uriHttps = "https://www.yahoo.com/";
+ string xri = "=arnott*andrew";
+
+ [TestMethod]
+ public void Parse() {
+ Assert.IsInstanceOfType(typeof(UriIdentifier), Identifier.Parse(uri));
+ Assert.IsInstanceOfType(typeof(XriIdentifier), Identifier.Parse(xri));
+ }
+
+ /// <summary>
+ /// Tests conformance with 2.0 spec section 7.2#2
+ /// </summary>
+ [TestMethod]
+ public void ParseEndUserSuppliedXriIdentifer() {
+ List<char> symbols = new List<char>(XriIdentifier.GlobalContextSymbols);
+ symbols.Add('(');
+ List<string> prefixes = new List<string>();
+ prefixes.AddRange(symbols.Select(s => s.ToString()));
+ prefixes.AddRange(symbols.Select(s => "xri://" + s.ToString()));
+ foreach (string prefix in prefixes) {
+ var id = Identifier.Parse(prefix + "andrew");
+ Assert.IsInstanceOfType(typeof(XriIdentifier), id);
+ }
+ }
+
+ /// <summary>
+ /// Verifies conformance with 2.0 spec section 7.2#3
+ /// </summary>
+ [TestMethod]
+ public void ParseEndUserSuppliedUriIdentifier() {
+ // verify a fully-qualified Uri
+ var id = Identifier.Parse(uri);
+ Assert.IsInstanceOfType(typeof(UriIdentifier), id);
+ Assert.AreEqual(uri, ((UriIdentifier)id).Uri.AbsoluteUri);
+ // verify an HTTPS Uri
+ id = Identifier.Parse(uriHttps);
+ Assert.IsInstanceOfType(typeof(UriIdentifier), id);
+ Assert.AreEqual(uriHttps, ((UriIdentifier)id).Uri.AbsoluteUri);
+ // verify that if the scheme is missing it is added automatically
+ id = Identifier.Parse(uriNoScheme);
+ Assert.IsInstanceOfType(typeof(UriIdentifier), id);
+ Assert.AreEqual(uri, ((UriIdentifier)id).Uri.AbsoluteUri);
+ }
+
+ [TestMethod, ExpectedException(typeof(ArgumentNullException))]
+ public void ParseNull() {
+ Identifier.Parse(null);
+ }
+
+ [TestMethod, ExpectedException(typeof(ArgumentNullException))]
+ public void ParseEmpty() {
+ Identifier.Parse(string.Empty);
+ }
+ }
+}