コード例 #1
0
 // ReSharper disable once ParameterOnlyUsedForPreconditionCheck.Local
 private static void VerifyLinkConstraints(int templateCode, LinkElementConstraints linkElementConstraints)
 {
     if (linkElementConstraints.MaxSymbols <= 0)
     {
         throw new TemplateValidationException(templateCode, TemplateElementValidationError.NegativeMaxSymbols);
     }
 }
コード例 #2
0
        public void TestHttpsLinkValidation()
        {
            var value = new TextElementValue {
                Raw = "https://дубль-гис.рф"
            };
            var constraints = new LinkElementConstraints();

            var error = TestHelpers.MakeValidationCheck <TextElementValue, IncorrectLinkError>(
                value,
                constraints,
                LinkValidator.CheckLink,
                val => val.Raw = "https://abc. com");

            Assert.Equal(nameof(constraints.ValidLink), error.ErrorType);
        }
コード例 #3
0
        public void TestLinkWithRtlAndLtrValidation()
        {
            var value = new TextElementValue {
                Raw = "http://дубль-гис.рф"
            };
            var constraints = new LinkElementConstraints {
                MaxSymbols = value.Raw.Length
            };

            var error = TestHelpers.MakeValidationCheck <TextElementValue, IncorrectLinkError>(
                value,
                constraints,
                LinkValidator.CheckLink,
                val => val.Raw = "\u200fhttp://дубль-гис.рф\u200e");

            Assert.Equal(nameof(constraints.ValidLink), error.ErrorType);
        }
コード例 #4
0
        public void TestLinkLengthValidation()
        {
            var value = new TextElementValue {
                Raw = "http://дубль-гис.рф"
            };
            var constraints = new LinkElementConstraints {
                MaxSymbols = value.Raw.Length
            };

            var error = TestHelpers.MakeValidationCheck <TextElementValue, ElementTextTooLongError>(
                value,
                constraints,
                PlainTextValidator.CheckLength,
                val => val.Raw += "/");

            Assert.Equal(nameof(constraints.MaxSymbols), error.ErrorType);
        }
コード例 #5
0
        public void TestLinkSchemeValidation()
        {
            var value = new TextElementValue {
                Raw = "http://дубль-гис.рф"
            };
            var constraints = new LinkElementConstraints();

            var error = TestHelpers.MakeValidationCheck <TextElementValue, IncorrectLinkError>(
                value,
                constraints,
                LinkValidator.CheckLink,
                val => val.Raw = "ftp://дубль-гис.рф");

            Assert.Equal(nameof(constraints.ValidLink), error.ErrorType);

            value.Raw = "http://xn----9sbhbxp9bk7f.xn--p1ai";
            error     = TestHelpers.MakeValidationCheck <TextElementValue, IncorrectLinkError>(
                value,
                constraints,
                LinkValidator.CheckLink,
                val => val.Raw = "file://дубль-гис.рф");
            Assert.Equal(nameof(constraints.ValidLink), error.ErrorType);
        }
コード例 #6
0
        public void TestLinkRestrictedSymbolsValidation()
        {
            var value = new TextElementValue {
                Raw = "http://дубль-гис.рф"
            };
            var constraints = new LinkElementConstraints();

            var controlCharsError = TestHelpers.MakeValidationCheck <TextElementValue, ControlCharactersInTextError>(
                value,
                constraints,
                PlainTextValidator.CheckRestrictedSymbols,
                val => val.Raw += "\r");

            Assert.Equal(nameof(constraints.WithoutControlChars), controlCharsError.ErrorType);

            value.Raw = "http://google.com/search?abc=123";
            var nonBreakingSpaceError = TestHelpers.MakeValidationCheck <TextElementValue, NonBreakingSpaceSymbolError>(
                value,
                constraints,
                PlainTextValidator.CheckRestrictedSymbols,
                val => val.Raw += (char)160);

            Assert.Equal(nameof(constraints.WithoutNonBreakingSpace), nonBreakingSpaceError.ErrorType);
        }