using System.Security;
|
using System.Threading;
|
using OpenTap.Cli;
|
|
namespace OpenTap.UnitTests
|
{
|
[Display("input", Group: "test")]
|
public class TestInputs : ICliAction
|
{
|
[Display("Sudo Password Prompt")]
|
class PasswordPrompt
|
{
|
[Layout(LayoutMode.FloatBottom)]
|
[Display("Sudo Password")]
|
[Submit] public SecureString Response { get; set; } = new SecureString();
|
}
|
|
[Display("Normal Prompt")]
|
class NormalPrompt
|
{
|
[Layout(LayoutMode.FloatBottom)]
|
[Display("Normal Input")]
|
[Submit] public string Response { get; set; } = "";
|
}
|
|
|
[CommandLineArgument("secure")]
|
public bool Secure { get; set; }
|
|
public int Execute(CancellationToken cancellationToken)
|
{
|
string written;
|
if (Secure)
|
{
|
var x = new PasswordPrompt();
|
UserInput.Request(x);
|
written = x.Response.ConvertToUnsecureString();
|
}
|
else
|
{
|
var x = new NormalPrompt();
|
UserInput.Request(x);
|
written = x.Response;
|
}
|
|
Log.CreateSource("CLI").Info("Written: '{0}'", written);
|
|
return 0;
|
}
|
}
|
}
|