// ReSharper disable once ParameterOnlyUsedForPreconditionCheck.Local private static void VerifyLinkConstraints(int templateCode, LinkElementConstraints linkElementConstraints) { if (linkElementConstraints.MaxSymbols <= 0) { throw new TemplateValidationException(templateCode, TemplateElementValidationError.NegativeMaxSymbols); } }
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); }
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); }
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); }
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); }
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); }