From f5e98315f67338b426ab8c4b52961e8f1271f21c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6ran=20Malek?= Date: Sun, 4 Mar 2018 14:49:52 +0100 Subject: [PATCH] Add credential manager tests --- Cyberduck Test.csproj | 6 +- .../WinCredentialManagerTest.cs | 96 +++++++++++++++++++ 2 files changed, 100 insertions(+), 2 deletions(-) create mode 100644 core/src/test/csharp/ch/cyberduck/core/credentialmanager/WinCredentialManagerTest.cs diff --git a/Cyberduck Test.csproj b/Cyberduck Test.csproj index 3898d5bfef9..9666712a1a9 100644 --- a/Cyberduck Test.csproj +++ b/Cyberduck Test.csproj @@ -10,8 +10,9 @@ Properties Ch.Cyberduck Test - v4.0 + v4.5 512 + true @@ -75,6 +76,7 @@ + @@ -100,4 +102,4 @@ --> - + \ No newline at end of file diff --git a/core/src/test/csharp/ch/cyberduck/core/credentialmanager/WinCredentialManagerTest.cs b/core/src/test/csharp/ch/cyberduck/core/credentialmanager/WinCredentialManagerTest.cs new file mode 100644 index 00000000000..f7c95821aa0 --- /dev/null +++ b/core/src/test/csharp/ch/cyberduck/core/credentialmanager/WinCredentialManagerTest.cs @@ -0,0 +1,96 @@ +using Ch.Cyberduck.Core.CredentialManager; +using java.util; +using NUnit.Framework; +using System.Net; + +namespace Ch.Cyberduck.Core.credentialmanager +{ + [TestFixture] + public class WinCredentialManagerTest + { + public static string[] UserNames + { + get + { + return new string[] + { + "user", + "user@service.domain.tld", + "cdid1.credential.cd1..dywpmxvbnncbzmlappwofuzndjoqqonyenswravjbvuyckeihqcoirpumtxj", + "svimjbjpojbxgvhgqivytxodldswkvzkoqeqgwcjciwueewpsrvsnygloehmveuvakwvqtsddmioyvawgl", + "separated.user", + "dash-user" + }; + } + } + + [Test] + public void TestGetInvalid() + { + var credentials = WinCredentialManager.GetCredentials(UUID.randomUUID().toString()); + Assert.IsNullOrEmpty(credentials.UserName); + Assert.IsNullOrEmpty(credentials.Password); + Assert.IsNullOrEmpty(credentials.Domain); + } + + [Test] + public void TestSaveServiceEmbeddedUser([ValueSource(nameof(UserNames))] string user) + { + var target = $"protocol://{user}@service.{UUID.randomUUID().toString()}.tld"; + var credentials = new NetworkCredential(user, UUID.randomUUID().toString()); + var saveResult = WinCredentialManager.SaveCredentials(target, credentials); + Assert.True(saveResult); + var query = WinCredentialManager.GetCredentials(target); + Assert.AreEqual(credentials.UserName, query.UserName); + Assert.AreEqual(credentials.Password, query.Password); + Assert.AreEqual(credentials.Domain, query.Domain); + var removeResult = WinCredentialManager.RemoveCredentials(target); + Assert.True(removeResult); + } + + [Test] + public void TestSaveServiceUser([ValueSource(nameof(UserNames))] string user) + { + var target = $"protocol://service.{UUID.randomUUID().toString()}.tld"; + var credentials = new NetworkCredential(user, UUID.randomUUID().toString()); + var saveResult = WinCredentialManager.SaveCredentials(target, credentials); + Assert.True(saveResult); + var query = WinCredentialManager.GetCredentials(target); + Assert.AreEqual(credentials.UserName, query.UserName); + Assert.AreEqual(credentials.Password, query.Password); + Assert.AreEqual(credentials.Domain, query.Domain); + var removeResult = WinCredentialManager.RemoveCredentials(target); + Assert.True(removeResult); + } + + [Test] + public void TestSaveSimpleEmbeddedUser([ValueSource(nameof(UserNames))]string user) + { + var target = $"{user}@{UUID.randomUUID().toString()}"; + var credentials = new NetworkCredential(user, UUID.randomUUID().toString()); + var saveResult = WinCredentialManager.SaveCredentials(target, credentials); + Assert.True(saveResult); + var query = WinCredentialManager.GetCredentials(target); + Assert.AreEqual(credentials.UserName, query.UserName); + Assert.AreEqual(credentials.Password, query.Password); + Assert.AreEqual(credentials.Domain, query.Domain); + var removeResult = WinCredentialManager.RemoveCredentials(target); + Assert.True(removeResult); + } + + [Test] + public void TestSaveSimpleUser([ValueSource(nameof(UserNames))]string user) + { + var target = UUID.randomUUID().toString(); + var credentials = new NetworkCredential(user, UUID.randomUUID().toString()); + var saveResult = WinCredentialManager.SaveCredentials(target, credentials); + Assert.True(saveResult); + var query = WinCredentialManager.GetCredentials(target); + Assert.AreEqual(credentials.UserName, query.UserName); + Assert.AreEqual(credentials.Password, query.Password); + Assert.AreEqual(credentials.Domain, query.Domain); + var removeResult = WinCredentialManager.RemoveCredentials(target); + Assert.True(removeResult); + } + } +}