static MonoValidationTestParameters Create(TestContext ctx, ValidationTestCategory category, MonoValidationTestType type)
        {
            var parameters = CreateParameters(category, type);

            switch (type)
            {
            case MonoValidationTestType.MartinTest:
                parameters.Host = "tlstest-1.xamdev.com";
                parameters.Add(CertificateResourceType.TlsTestXamDevNew);
                parameters.Add(CertificateResourceType.TlsTestXamDevCA);
                parameters.UseTestRunnerCallback = true;
                parameters.ExpectSuccess         = true;
                break;

            case MonoValidationTestType.NoHost:
                parameters.Host = null;
                parameters.Add(CertificateResourceType.TlsTestXamDevNew);
                parameters.Add(CertificateResourceType.TlsTestXamDevCA);
                parameters.ExpectSuccess = true;
                break;

            case MonoValidationTestType.EmptyHost:
                parameters.Host = string.Empty;
                parameters.Add(CertificateResourceType.TlsTestXamDevNew);
                parameters.Add(CertificateResourceType.TlsTestXamDevCA);

                /*
                 * Older versions of AppleTls prior to Xamarin.iOS 10 incorrectly
                 * returned success.
                 */
                parameters.ExpectSuccess = false;
                break;

            case MonoValidationTestType.WrongHost:
                parameters.Host = "invalid.xamdev-error.com";
                parameters.Add(CertificateResourceType.TlsTestXamDevNew);
                parameters.Add(CertificateResourceType.TlsTestXamDevCA);
                parameters.ExpectSuccess = false;
                break;

            case MonoValidationTestType.Success:
                parameters.Host = "tlstest-1.xamdev.com";
                parameters.Add(CertificateResourceType.TlsTestXamDevNew);
                parameters.Add(CertificateResourceType.TlsTestXamDevCA);
                parameters.ExpectSuccess = true;
                break;

            case MonoValidationTestType.RejectSelfSigned:
                parameters.Host = string.Empty;
                parameters.Add(CertificateResourceType.SelfSignedServerCertificate);
                parameters.ExpectSuccess = false;
                break;

            case MonoValidationTestType.RejectHamillerTube:
                parameters.Host = string.Empty;
                parameters.Add(CertificateResourceType.ServerCertificateFromLocalCA);
                parameters.Add(CertificateResourceType.HamillerTubeCA);
                parameters.ExpectSuccess = false;
                break;

            case MonoValidationTestType.TestRunnerCallback:
                parameters.Host = "tlstest-1.xamdev.com";
                parameters.Add(CertificateResourceType.TlsTestXamDevNew);
                parameters.Add(CertificateResourceType.TlsTestXamDevCA);
                parameters.UseTestRunnerCallback = true;
                parameters.ExpectSuccess         = true;
                break;

            case MonoValidationTestType.TestRunnerCallbackChain:
                parameters.Host = "tlstest-1.xamdev.com";
                parameters.Add(CertificateResourceType.TlsTestXamDevNew);
                parameters.Add(CertificateResourceType.TlsTestXamDevCA);
                parameters.AddExpectedChainEntry(CertificateResourceType.TlsTestXamDevNew);
                parameters.AddExpectedChainEntry(CertificateResourceType.TlsTestXamDevCA);
                parameters.UseTestRunnerCallback = true;
                parameters.ExpectSuccess         = true;
                break;

            default:
                ctx.AssertFail("Unsupported validation type: '{0}'.", type);
                break;
            }

            return(parameters);
        }
        static MonoValidationTestParameters CreateParameters(ValidationTestCategory category, MonoValidationTestType type, params object[] args)
        {
            var sb = new StringBuilder();

            sb.Append(type);
            foreach (var arg in args)
            {
                sb.AppendFormat(":{0}", arg);
            }
            var name = sb.ToString();

            return(new MonoValidationTestParameters(category, type, name));
        }
Beispiel #3
0
 public MonoValidationTestParameters(ValidationTestCategory category, MonoValidationTestType type, string identifier)
     : base(category, identifier)
 {
     Type = type;
 }
Beispiel #4
0
 protected MonoValidationTestParameters(MonoValidationTestParameters other)
     : base(other)
 {
     Type = other.Type;
     UseTestRunnerCallback = other.UseTestRunnerCallback;
 }
Beispiel #5
0
 public MonoValidationTestParametersAttribute(MonoValidationTestType type)
     : base(null, TestFlags.Browsable | TestFlags.ContinueOnError)
 {
     Type = type;
 }