--- /dev/null
+//\r
+// FormsAuthenticationTest.cs - NUnit Test Cases for FormsAuthentication\r
+//\r
+// Author:\r
+// Sebastien Pouliot (sebastien@ximian.com)\r
+//\r
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//\r
+\r
+using System;
+using System.Security.Cryptography;
+using System.Text;\r
+using System.Web.Security;
+\r
+using NUnit.Framework;\r
+\r
+namespace MonoTests.System.Web.Security {\r
+\r
+ [TestFixture]\r
+ public class FormsAuthenticationTest {\r
+\r
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]\r
+ public void HashPasswordForStoringInConfigFile_NullPassword ()
+ {
+ FormsAuthentication.HashPasswordForStoringInConfigFile (null, "MD5");
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]\r
+ public void HashPasswordForStoringInConfigFile_NullPasswordFormat ()
+ {
+ FormsAuthentication.HashPasswordForStoringInConfigFile ("Mono", null);
+ }
+
+ [Test]
+ public void HashPasswordForStoringInConfigFile_MD5 ()
+ {
+ // § (C2-A7)
+ string s = Encoding.UTF8.GetString (new byte [2] { 0xC2, 0xA7 });
+ Assert.AreEqual ("BD9A4C255DEEC8944D99E01A64C1E322", FormsAuthentication.HashPasswordForStoringInConfigFile (s, "MD5"));
+
+ // ä (C3-A4)
+ s = Encoding.UTF8.GetString (new byte [2] { 0xC3, 0xA4 });
+ Assert.AreEqual ("8419B71C87A225A2C70B50486FBEE545", FormsAuthentication.HashPasswordForStoringInConfigFile (s, "MD5"));
+ }
+
+ [Test]
+ public void HashPasswordForStoringInConfigFile_SHA1 ()
+ {
+ // § (C2-A7)
+ string s = Encoding.UTF8.GetString (new byte [2] { 0xC2, 0xA7 });
+ Assert.AreEqual ("EB2CB244889599F736B6CDD633C5E324F521D1BB", FormsAuthentication.HashPasswordForStoringInConfigFile (s, "SHA1"));
+
+ // ä (C3-A4)
+ s = Encoding.UTF8.GetString (new byte [2] { 0xC3, 0xA4 });
+ Assert.AreEqual ("961FA22F61A56E19F3F5F8867901AC8CF5E6D11F", FormsAuthentication.HashPasswordForStoringInConfigFile (s, "SHA1"));
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentException))]\r
+ public void HashPasswordForStoringInConfigFile_SHA256 ()
+ {
+ FormsAuthentication.HashPasswordForStoringInConfigFile ("mono", "SHA256");
+ }
+ }
+}