/// <summary> /// Internal for testing. /// </summary> internal static bool ValidHtmlTargetElementAttributeNames( HtmlTargetElementAttribute attribute, ErrorSink errorSink) { var validTagName = ValidateName(attribute.Tag, targetingAttributes: false, errorSink: errorSink); IEnumerable<TagHelperRequiredAttributeDescriptor> requiredAttributeDescriptors; var validRequiredAttributes = TryGetRequiredAttributeDescriptors(attribute.Attributes, errorSink, out requiredAttributeDescriptors); var validParentTagName = ValidateParentTagName(attribute.ParentTag, errorSink); return validTagName && validRequiredAttributes && validParentTagName; }
/// <summary> /// Internal for testing. /// </summary> internal static bool ValidHtmlTargetElementAttributeNames( HtmlTargetElementAttribute attribute, ErrorSink errorSink) { var validTagName = ValidateName(attribute.Tag, targetingAttributes: false, errorSink: errorSink); var validAttributeNames = true; var attributeNames = GetCommaSeparatedValues(attribute.Attributes); foreach (var attributeName in attributeNames) { if (!ValidateName(attributeName, targetingAttributes: true, errorSink: errorSink)) { validAttributeNames = false; } } var validParentTagName = ValidateParentTagName(attribute.ParentTag, errorSink); return(validTagName && validAttributeNames && validParentTagName); }
private static TagHelperDescriptor BuildTagHelperDescriptor( string typeName, string assemblyName, IEnumerable <TagHelperAttributeDescriptor> attributeDescriptors, HtmlTargetElementAttribute targetElementAttribute, IEnumerable <string> allowedChildren, TagHelperDesignTimeDescriptor designTimeDescriptor) { var requiredAttributes = GetCommaSeparatedValues(targetElementAttribute.Attributes); return(BuildTagHelperDescriptor( targetElementAttribute.Tag, typeName, assemblyName, attributeDescriptors, requiredAttributes, allowedChildren, targetElementAttribute.ParentTag, targetElementAttribute.TagStructure, designTimeDescriptor)); }
private static TagHelperDescriptor BuildTagHelperDescriptor( string typeName, string assemblyName, IEnumerable<TagHelperAttributeDescriptor> attributeDescriptors, HtmlTargetElementAttribute targetElementAttribute, IEnumerable<string> allowedChildren, TagHelperDesignTimeDescriptor designTimeDescriptor) { IEnumerable<TagHelperRequiredAttributeDescriptor> requiredAttributeDescriptors; TryGetRequiredAttributeDescriptors(targetElementAttribute.Attributes, errorSink: null, descriptors: out requiredAttributeDescriptors); return BuildTagHelperDescriptor( targetElementAttribute.Tag, typeName, assemblyName, attributeDescriptors, requiredAttributeDescriptors, allowedChildren, targetElementAttribute.ParentTag, targetElementAttribute.TagStructure, designTimeDescriptor); }
/// <summary> /// Internal for testing. /// </summary> internal static bool ValidHtmlTargetElementAttributeNames( HtmlTargetElementAttribute attribute, ErrorSink errorSink) { var validTagName = ValidateName(attribute.Tag, targetingAttributes: false, errorSink: errorSink); var validAttributeNames = true; var attributeNames = GetCommaSeparatedValues(attribute.Attributes); foreach (var attributeName in attributeNames) { if (!ValidateName(attributeName, targetingAttributes: true, errorSink: errorSink)) { validAttributeNames = false; } } var validParentTagName = ValidateParentTagName(attribute.ParentTag, errorSink); return validTagName && validAttributeNames && validParentTagName; }
private static TagHelperDescriptor BuildTagHelperDescriptor( string typeName, string assemblyName, IEnumerable<TagHelperAttributeDescriptor> attributeDescriptors, HtmlTargetElementAttribute targetElementAttribute, IEnumerable<string> allowedChildren, TagHelperDesignTimeDescriptor designTimeDescriptor) { var requiredAttributes = GetCommaSeparatedValues(targetElementAttribute.Attributes); return BuildTagHelperDescriptor( targetElementAttribute.Tag, typeName, assemblyName, attributeDescriptors, requiredAttributes, allowedChildren, targetElementAttribute.ParentTag, targetElementAttribute.TagStructure, designTimeDescriptor); }
public void ValidHtmlTargetElementAttributeNames_CreatesErrorOnInvalidNames( string name, string[] expectedErrorMessages) { // Arrange var errorSink = new ErrorSink(); var attribute = new HtmlTargetElementAttribute(name); // Act TagHelperDescriptorFactory.ValidHtmlTargetElementAttributeNames(attribute, errorSink); // Assert var errors = errorSink.Errors.ToArray(); Assert.Equal(expectedErrorMessages.Length, errors.Length); for (var i = 0; i < expectedErrorMessages.Length; i++) { Assert.Equal(0, errors[i].Length); Assert.Equal(SourceLocation.Zero, errors[i].Location); Assert.Equal(expectedErrorMessages[i], errors[i].Message, StringComparer.Ordinal); } }