Skip to content

Commit

Permalink
Add credential manager tests
Browse files Browse the repository at this point in the history
  • Loading branch information
AliveDevil committed Mar 4, 2018
1 parent 76637e4 commit f5e9831
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 2 deletions.
6 changes: 4 additions & 2 deletions Cyberduck Test.csproj
Expand Up @@ -10,8 +10,9 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Ch.Cyberduck</RootNamespace>
<AssemblyName>Test</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
Expand Down Expand Up @@ -75,6 +76,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="core\src\test\csharp\ch\cyberduck\core\credentialmanager\WinCredentialManagerTest.cs" />
<Compile Include="core\src\test\csharp\ch\cyberduck\core\ssl\HostnameVerifierTest.cs" />
<Compile Include="core\src\test\csharp\ch\cyberduck\core\SystemCertificateStoreTest.cs" />
<Compile Include="windows\src\test\csharp\ch\cyberduck\ui\controller\PersistentFormHandlerTest.cs" />
Expand All @@ -100,4 +102,4 @@
<Target Name="AfterBuild">
</Target>
-->
</Project>
</Project>
@@ -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);
}
}
}

0 comments on commit f5e9831

Please sign in to comment.