[Fixes #441] Removed constructors from TagHelperAttributeDescriptor and
TagHelperDescriptor
This commit is contained in:
parent
96f1090ff1
commit
dad3e3ade3
|
|
@ -223,16 +223,17 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
TagStructure tagStructure,
|
||||
TagHelperDesignTimeDescriptor designTimeDescriptor)
|
||||
{
|
||||
return new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: tagName,
|
||||
typeName: typeName,
|
||||
assemblyName: assemblyName,
|
||||
attributes: attributeDescriptors,
|
||||
requiredAttributes: requiredAttributes,
|
||||
allowedChildren: allowedChildren,
|
||||
tagStructure: tagStructure,
|
||||
designTimeDescriptor: designTimeDescriptor);
|
||||
return new TagHelperDescriptor
|
||||
{
|
||||
TagName = tagName,
|
||||
TypeName = typeName,
|
||||
AssemblyName = assemblyName,
|
||||
Attributes = attributeDescriptors,
|
||||
RequiredAttributes = requiredAttributes,
|
||||
AllowedChildren = allowedChildren,
|
||||
TagStructure = tagStructure,
|
||||
DesignTimeDescriptor = designTimeDescriptor
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -647,12 +648,14 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
}
|
||||
#endif
|
||||
|
||||
return new TagHelperAttributeDescriptor(
|
||||
attributeName,
|
||||
property.Name,
|
||||
typeName,
|
||||
isIndexer,
|
||||
propertyDesignTimeDescriptor);
|
||||
return new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = attributeName,
|
||||
PropertyName = property.Name,
|
||||
TypeName = typeName,
|
||||
IsIndexer = isIndexer,
|
||||
DesignTimeDescriptor = propertyDesignTimeDescriptor
|
||||
};
|
||||
}
|
||||
|
||||
private static bool IsAccessibleProperty(PropertyInfo property)
|
||||
|
|
|
|||
|
|
@ -147,16 +147,18 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
if (!string.IsNullOrEmpty(tagHelperPrefix))
|
||||
{
|
||||
return descriptors.Select(descriptor =>
|
||||
new TagHelperDescriptor(
|
||||
tagHelperPrefix,
|
||||
descriptor.TagName,
|
||||
descriptor.TypeName,
|
||||
descriptor.AssemblyName,
|
||||
descriptor.Attributes,
|
||||
descriptor.RequiredAttributes,
|
||||
descriptor.AllowedChildren,
|
||||
descriptor.TagStructure,
|
||||
descriptor.DesignTimeDescriptor));
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
Prefix = tagHelperPrefix,
|
||||
TagName = descriptor.TagName,
|
||||
TypeName = descriptor.TypeName,
|
||||
AssemblyName = descriptor.AssemblyName,
|
||||
Attributes = descriptor.Attributes,
|
||||
RequiredAttributes = descriptor.RequiredAttributes,
|
||||
AllowedChildren = descriptor.AllowedChildren,
|
||||
TagStructure = descriptor.TagStructure,
|
||||
DesignTimeDescriptor = descriptor.DesignTimeDescriptor
|
||||
});
|
||||
}
|
||||
|
||||
return descriptors;
|
||||
|
|
|
|||
|
|
@ -12,70 +12,21 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
/// </summary>
|
||||
public class TagHelperAttributeDescriptor
|
||||
{
|
||||
// Internal for testing i.e. for easy TagHelperAttributeDescriptor creation when PropertyInfo is available.
|
||||
internal TagHelperAttributeDescriptor([NotNull] string name, [NotNull] PropertyInfo propertyInfo)
|
||||
: this(
|
||||
name,
|
||||
propertyInfo.Name,
|
||||
propertyInfo.PropertyType.FullName,
|
||||
isIndexer: false,
|
||||
isStringProperty: propertyInfo.PropertyType == typeof(string),
|
||||
designTimeDescriptor: null)
|
||||
{
|
||||
}
|
||||
private string _typeName;
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a new instance of the <see cref="TagHelperAttributeDescriptor"/> class.
|
||||
/// </summary>
|
||||
/// <param name="name">
|
||||
/// The HTML attribute name or, if <paramref name="isIndexer"/> is <c>true</c>, the prefix for matching
|
||||
/// attribute names.
|
||||
/// </param>
|
||||
/// <param name="propertyName">The name of the CLR property that corresponds to the HTML attribute.</param>
|
||||
/// <param name="typeName">
|
||||
/// The full name of the named (see <paramref name="propertyName"/>) property's <see cref="Type"/> or,
|
||||
/// if <paramref name="isIndexer"/> is <c>true</c>, the full name of the indexer's value <see cref="Type"/>.
|
||||
/// </param>
|
||||
/// <param name="isIndexer">
|
||||
/// If <c>true</c> this <see cref="TagHelperAttributeDescriptor"/> is used for dictionary indexer assignments.
|
||||
/// Otherwise this <see cref="TagHelperAttributeDescriptor"/> is used for property assignment.
|
||||
/// </param>
|
||||
/// <param name="designTimeDescriptor">The <see cref="TagHelperAttributeDesignTimeDescriptor"/> that contains
|
||||
/// design time information about this attribute.</param>
|
||||
/// <remarks>
|
||||
/// HTML attribute names are matched case-insensitively, regardless of <paramref name="isIndexer"/>.
|
||||
/// </remarks>
|
||||
public TagHelperAttributeDescriptor(
|
||||
[NotNull] string name,
|
||||
[NotNull] string propertyName,
|
||||
[NotNull] string typeName,
|
||||
bool isIndexer,
|
||||
TagHelperAttributeDesignTimeDescriptor designTimeDescriptor)
|
||||
: this(
|
||||
name,
|
||||
propertyName,
|
||||
typeName,
|
||||
isIndexer,
|
||||
isStringProperty: string.Equals(typeName, typeof(string).FullName, StringComparison.Ordinal),
|
||||
designTimeDescriptor: designTimeDescriptor)
|
||||
public TagHelperAttributeDescriptor()
|
||||
{
|
||||
}
|
||||
|
||||
// Internal for testing i.e. for confirming above constructor sets IsStringProperty as expected.
|
||||
internal TagHelperAttributeDescriptor(
|
||||
[NotNull] string name,
|
||||
[NotNull] string propertyName,
|
||||
[NotNull] string typeName,
|
||||
bool isIndexer,
|
||||
bool isStringProperty,
|
||||
TagHelperAttributeDesignTimeDescriptor designTimeDescriptor)
|
||||
// Internal for testing i.e. for easy TagHelperAttributeDescriptor creation when PropertyInfo is available.
|
||||
internal TagHelperAttributeDescriptor(string name, PropertyInfo propertyInfo)
|
||||
{
|
||||
Name = name;
|
||||
PropertyName = propertyName;
|
||||
TypeName = typeName;
|
||||
IsIndexer = isIndexer;
|
||||
IsStringProperty = isStringProperty;
|
||||
DesignTimeDescriptor = designTimeDescriptor;
|
||||
PropertyName = propertyInfo.Name;
|
||||
TypeName = propertyInfo.PropertyType.FullName;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -88,7 +39,10 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
/// <see cref="TagHelperAttributeDescriptor"/> is used for property assignment and is only associated with an
|
||||
/// HTML attribute that has the exact <see cref="Name"/>.
|
||||
/// </value>
|
||||
public bool IsIndexer { get; }
|
||||
/// <remarks>
|
||||
/// HTML attribute names are matched case-insensitively, regardless of <see cref="IsIndexer"/>.
|
||||
/// </remarks>
|
||||
public bool IsIndexer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets an indication whether this property is of type <see cref="string"/> or, if <see cref="IsIndexer"/> is
|
||||
|
|
@ -99,30 +53,41 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
/// to allow empty values for HTML attributes matching this <see cref="TagHelperAttributeDescriptor"/>. If
|
||||
/// <c>false</c> empty values for such matching attributes lead to errors.
|
||||
/// </value>
|
||||
public bool IsStringProperty { get; }
|
||||
public bool IsStringProperty { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// The HTML attribute name or, if <see cref="IsIndexer"/> is <c>true</c>, the prefix for matching attribute
|
||||
/// names.
|
||||
/// </summary>
|
||||
public string Name { get; }
|
||||
public string Name { get; [param: NotNull] set; }
|
||||
|
||||
/// <summary>
|
||||
/// The name of the CLR property that corresponds to the HTML attribute.
|
||||
/// </summary>
|
||||
public string PropertyName { get; }
|
||||
public string PropertyName { get; [param: NotNull] set; }
|
||||
|
||||
/// <summary>
|
||||
/// The full name of the named (see <see name="PropertyName"/>) property's <see cref="Type"/> or, if
|
||||
/// <see cref="IsIndexer"/> is <c>true</c>, the full name of the indexer's value <see cref="Type"/>.
|
||||
/// </summary>
|
||||
public string TypeName { get; }
|
||||
public string TypeName
|
||||
{
|
||||
get
|
||||
{
|
||||
return _typeName;
|
||||
}
|
||||
[param: NotNull] set
|
||||
{
|
||||
_typeName = value;
|
||||
IsStringProperty = string.Equals(_typeName, typeof(string).FullName, StringComparison.Ordinal);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The <see cref="TagHelperAttributeDesignTimeDescriptor"/> that contains design time information about
|
||||
/// this attribute.
|
||||
/// </summary>
|
||||
public TagHelperAttributeDesignTimeDescriptor DesignTimeDescriptor { get; }
|
||||
public TagHelperAttributeDesignTimeDescriptor DesignTimeDescriptor { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether HTML attribute <paramref name="name"/> matches this
|
||||
|
|
|
|||
|
|
@ -13,142 +13,44 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
/// </summary>
|
||||
public class TagHelperDescriptor
|
||||
{
|
||||
/// <summary>
|
||||
/// Internal for testing.
|
||||
/// </summary>
|
||||
internal TagHelperDescriptor(
|
||||
[NotNull] string tagName,
|
||||
[NotNull] string typeName,
|
||||
[NotNull] string assemblyName)
|
||||
: this(
|
||||
tagName,
|
||||
typeName,
|
||||
assemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>())
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Internal for testing.
|
||||
/// </summary>
|
||||
internal TagHelperDescriptor(
|
||||
[NotNull] string tagName,
|
||||
[NotNull] string typeName,
|
||||
[NotNull] string assemblyName,
|
||||
[NotNull] IEnumerable<TagHelperAttributeDescriptor> attributes)
|
||||
: this(
|
||||
tagName,
|
||||
typeName,
|
||||
assemblyName,
|
||||
attributes,
|
||||
requiredAttributes: Enumerable.Empty<string>())
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Internal for testing.
|
||||
/// </summary>
|
||||
internal TagHelperDescriptor(
|
||||
[NotNull] string tagName,
|
||||
[NotNull] string typeName,
|
||||
[NotNull] string assemblyName,
|
||||
[NotNull] IEnumerable<TagHelperAttributeDescriptor> attributes,
|
||||
[NotNull] IEnumerable<string> requiredAttributes)
|
||||
: this(
|
||||
prefix: string.Empty,
|
||||
tagName: tagName,
|
||||
typeName: typeName,
|
||||
assemblyName: assemblyName,
|
||||
attributes: attributes,
|
||||
requiredAttributes: requiredAttributes,
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a new instance of the <see cref="TagHelperDescriptor"/> class with the given
|
||||
/// <paramref name="attributes"/>.
|
||||
/// </summary>
|
||||
/// <param name="prefix">
|
||||
/// Text used as a required prefix when matching HTML start and end tags in the Razor source to available
|
||||
/// tag helpers.
|
||||
/// </param>
|
||||
/// <param name="tagName">The tag name that the tag helper targets. '*' indicates a catch-all
|
||||
/// <see cref="TagHelperDescriptor"/> which applies to every HTML tag.</param>
|
||||
/// <param name="typeName">The full name of the tag helper class.</param>
|
||||
/// <param name="assemblyName">The name of the assembly containing the tag helper class.</param>
|
||||
/// <param name="attributes">
|
||||
/// The <see cref="TagHelperAttributeDescriptor"/>s to request from the HTML tag.
|
||||
/// </param>
|
||||
/// <param name="requiredAttributes">
|
||||
/// The attribute names required for the tag helper to target the HTML tag.
|
||||
/// </param>
|
||||
/// <param name="allowedChildren">
|
||||
/// The names of elements allowed as children. Tag helpers must target all such elements.
|
||||
/// </param>
|
||||
/// <param name="tagStructure">The expected tag structure.</param>
|
||||
/// <param name="designTimeDescriptor">The <see cref="TagHelperDesignTimeDescriptor"/> that contains design
|
||||
/// time information about the tag helper.</param>
|
||||
public TagHelperDescriptor(
|
||||
string prefix,
|
||||
[NotNull] string tagName,
|
||||
[NotNull] string typeName,
|
||||
[NotNull] string assemblyName,
|
||||
[NotNull] IEnumerable<TagHelperAttributeDescriptor> attributes,
|
||||
[NotNull] IEnumerable<string> requiredAttributes,
|
||||
IEnumerable<string> allowedChildren,
|
||||
TagStructure tagStructure,
|
||||
TagHelperDesignTimeDescriptor designTimeDescriptor)
|
||||
{
|
||||
Prefix = prefix ?? string.Empty;
|
||||
TagName = tagName;
|
||||
FullTagName = Prefix + TagName;
|
||||
TypeName = typeName;
|
||||
AssemblyName = assemblyName;
|
||||
Attributes = new List<TagHelperAttributeDescriptor>(attributes);
|
||||
RequiredAttributes = new List<string>(requiredAttributes);
|
||||
TagStructure = tagStructure;
|
||||
DesignTimeDescriptor = designTimeDescriptor;
|
||||
|
||||
if (allowedChildren != null)
|
||||
{
|
||||
AllowedChildren = new List<string>(allowedChildren);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Text used as a required prefix when matching HTML start and end tags in the Razor source to available
|
||||
/// tag helpers.
|
||||
/// </summary>
|
||||
public string Prefix { get; }
|
||||
public string Prefix { get; [param: NotNull] set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// The tag name that the tag helper should target.
|
||||
/// </summary>
|
||||
public string TagName { get; }
|
||||
public string TagName { get; [param: NotNull] set; }
|
||||
|
||||
/// <summary>
|
||||
/// The full tag name that is required for the tag helper to target an HTML element.
|
||||
/// </summary>
|
||||
/// <remarks>This is equivalent to <see cref="Prefix"/> and <see cref="TagName"/> concatenated.</remarks>
|
||||
public string FullTagName { get; }
|
||||
public string FullTagName
|
||||
{
|
||||
get
|
||||
{
|
||||
return Prefix + TagName;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The full name of the tag helper class.
|
||||
/// </summary>
|
||||
public string TypeName { get; }
|
||||
public string TypeName { get; [param: NotNull] set; }
|
||||
|
||||
/// <summary>
|
||||
/// The name of the assembly containing the tag helper class.
|
||||
/// </summary>
|
||||
public string AssemblyName { get; }
|
||||
public string AssemblyName { get; [param: NotNull] set; }
|
||||
|
||||
/// <summary>
|
||||
/// The list of attributes the tag helper expects.
|
||||
/// </summary>
|
||||
public IReadOnlyList<TagHelperAttributeDescriptor> Attributes { get; }
|
||||
public IEnumerable<TagHelperAttributeDescriptor> Attributes { get; [param: NotNull] set; }
|
||||
= Enumerable.Empty<TagHelperAttributeDescriptor>();
|
||||
|
||||
/// <summary>
|
||||
/// The list of required attribute names the tag helper expects to target an element.
|
||||
|
|
@ -156,13 +58,13 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
/// <remarks>
|
||||
/// <c>*</c> at the end of an attribute name acts as a prefix match.
|
||||
/// </remarks>
|
||||
public IReadOnlyList<string> RequiredAttributes { get; }
|
||||
public IEnumerable<string> RequiredAttributes { get; [param: NotNull] set; } = Enumerable.Empty<string>();
|
||||
|
||||
/// <summary>
|
||||
/// Get the names of elements allowed as children. Tag helpers must target all such elements.
|
||||
/// </summary>
|
||||
/// <remarks><c>null</c> indicates all children are allowed.</remarks>
|
||||
public IReadOnlyList<string> AllowedChildren { get; }
|
||||
public IEnumerable<string> AllowedChildren { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The expected tag structure.
|
||||
|
|
@ -188,12 +90,12 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
/// </code>
|
||||
/// </para>
|
||||
/// </remarks>
|
||||
public TagStructure TagStructure { get; }
|
||||
public TagStructure TagStructure { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The <see cref="TagHelperDesignTimeDescriptor"/> that contains design time information about this
|
||||
/// tag helper.
|
||||
/// </summary>
|
||||
public TagHelperDesignTimeDescriptor DesignTimeDescriptor { get; }
|
||||
public TagHelperDesignTimeDescriptor DesignTimeDescriptor { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -28,58 +28,46 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
typeof(RestrictChildrenTagHelper),
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "restrict-children",
|
||||
typeName: typeof(RestrictChildrenTagHelper).FullName,
|
||||
assemblyName: AssemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: new[] { "p" },
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "restrict-children",
|
||||
TypeName = typeof(RestrictChildrenTagHelper).FullName,
|
||||
AssemblyName = AssemblyName,
|
||||
AllowedChildren = new[] { "p" },
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
typeof(DoubleRestrictChildrenTagHelper),
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "double-restrict-children",
|
||||
typeName: typeof(DoubleRestrictChildrenTagHelper).FullName,
|
||||
assemblyName: AssemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: new[] { "p", "strong" },
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "double-restrict-children",
|
||||
TypeName = typeof(DoubleRestrictChildrenTagHelper).FullName,
|
||||
AssemblyName = AssemblyName,
|
||||
AllowedChildren = new[] { "p", "strong" },
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
typeof(MultiTargetRestrictChildrenTagHelper),
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "div",
|
||||
typeName: typeof(MultiTargetRestrictChildrenTagHelper).FullName,
|
||||
assemblyName: AssemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: new[] { "p", "strong" },
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "p",
|
||||
typeName: typeof(MultiTargetRestrictChildrenTagHelper).FullName,
|
||||
assemblyName: AssemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: new[] { "p", "strong" },
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = typeof(MultiTargetRestrictChildrenTagHelper).FullName,
|
||||
AssemblyName = AssemblyName,
|
||||
AllowedChildren = new[] { "p", "strong" },
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = typeof(MultiTargetRestrictChildrenTagHelper).FullName,
|
||||
AssemblyName = AssemblyName,
|
||||
AllowedChildren = new[] { "p", "strong" },
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
@ -123,68 +111,52 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
typeof(TagStructureTagHelper),
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "input",
|
||||
typeName: typeof(TagStructureTagHelper).FullName,
|
||||
assemblyName: AssemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.WithoutEndTag,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = typeof(TagStructureTagHelper).FullName,
|
||||
AssemblyName = AssemblyName,
|
||||
TagStructure = TagStructure.WithoutEndTag
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
typeof(MultiSpecifiedTagStructureTagHelper),
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "input",
|
||||
typeName: typeof(MultiSpecifiedTagStructureTagHelper).FullName,
|
||||
assemblyName: AssemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.WithoutEndTag,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "p",
|
||||
typeName: typeof(MultiSpecifiedTagStructureTagHelper).FullName,
|
||||
assemblyName: AssemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.NormalOrSelfClosing,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = typeof(MultiSpecifiedTagStructureTagHelper).FullName,
|
||||
AssemblyName = AssemblyName,
|
||||
TagStructure = TagStructure.WithoutEndTag
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = typeof(MultiSpecifiedTagStructureTagHelper).FullName,
|
||||
AssemblyName = AssemblyName,
|
||||
TagStructure = TagStructure.NormalOrSelfClosing
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
typeof(MultiWithUnspecifiedTagStructureTagHelper),
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "input",
|
||||
typeName: typeof(MultiWithUnspecifiedTagStructureTagHelper).FullName,
|
||||
assemblyName: AssemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.WithoutEndTag,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "p",
|
||||
typeName: typeof(MultiWithUnspecifiedTagStructureTagHelper).FullName,
|
||||
assemblyName: AssemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = typeof(MultiWithUnspecifiedTagStructureTagHelper).FullName,
|
||||
AssemblyName = AssemblyName,
|
||||
TagStructure = TagStructure.WithoutEndTag
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = typeof(MultiWithUnspecifiedTagStructureTagHelper).FullName,
|
||||
AssemblyName = AssemblyName
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
@ -230,51 +202,42 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
typeof(OutputElementHintTagHelper),
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "output-element-hint",
|
||||
typeName: typeof(OutputElementHintTagHelper).FullName,
|
||||
assemblyName: AssemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: new TagHelperDesignTimeDescriptor
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "output-element-hint",
|
||||
TypeName = typeof(OutputElementHintTagHelper).FullName,
|
||||
AssemblyName = AssemblyName,
|
||||
DesignTimeDescriptor = new TagHelperDesignTimeDescriptor
|
||||
{
|
||||
OutputElementHint = "strong"
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
typeof(MulitpleDescriptorTagHelperWithOutputElementHint),
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "a",
|
||||
typeName: typeof(MulitpleDescriptorTagHelperWithOutputElementHint).FullName,
|
||||
assemblyName: AssemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: new TagHelperDesignTimeDescriptor
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "a",
|
||||
TypeName = typeof(MulitpleDescriptorTagHelperWithOutputElementHint).FullName,
|
||||
AssemblyName = AssemblyName,
|
||||
DesignTimeDescriptor = new TagHelperDesignTimeDescriptor
|
||||
{
|
||||
OutputElementHint = "div"
|
||||
}),
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "p",
|
||||
typeName: typeof(MulitpleDescriptorTagHelperWithOutputElementHint).FullName,
|
||||
assemblyName: AssemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: new TagHelperDesignTimeDescriptor
|
||||
}
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = typeof(MulitpleDescriptorTagHelperWithOutputElementHint).FullName,
|
||||
AssemblyName = AssemblyName,
|
||||
DesignTimeDescriptor = new TagHelperDesignTimeDescriptor
|
||||
{
|
||||
OutputElementHint = "div"
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -326,12 +289,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
assemblyName: AssemblyName,
|
||||
attributes: new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "property",
|
||||
propertyName: nameof(InheritedEditorBrowsableTagHelper.Property),
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "property",
|
||||
PropertyName = nameof(InheritedEditorBrowsableTagHelper.Property),
|
||||
TypeName = typeof(int).FullName
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
|
@ -347,12 +310,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
assemblyName: AssemblyName,
|
||||
attributes: new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "property",
|
||||
propertyName: nameof(EditorBrowsableTagHelper.Property),
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "property",
|
||||
PropertyName = nameof(EditorBrowsableTagHelper.Property),
|
||||
TypeName = typeof(int).FullName
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
|
@ -379,12 +342,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
assemblyName: AssemblyName,
|
||||
attributes: new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "property",
|
||||
propertyName: nameof(HiddenPropertyEditorBrowsableTagHelper.Property),
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "property",
|
||||
PropertyName = nameof(HiddenPropertyEditorBrowsableTagHelper.Property),
|
||||
TypeName = typeof(int).FullName
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
|
@ -399,12 +362,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
assemblyName: AssemblyName,
|
||||
attributes: new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "property",
|
||||
propertyName: nameof(OverriddenEditorBrowsableTagHelper.Property),
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "property",
|
||||
PropertyName = nameof(OverriddenEditorBrowsableTagHelper.Property),
|
||||
TypeName = typeof(int).FullName
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
|
@ -419,12 +382,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
assemblyName: AssemblyName,
|
||||
attributes: new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "property2",
|
||||
propertyName: nameof(MultiPropertyEditorBrowsableTagHelper.Property2),
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "property2",
|
||||
PropertyName = nameof(MultiPropertyEditorBrowsableTagHelper.Property2),
|
||||
TypeName = typeof(int).FullName
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
|
@ -439,18 +402,18 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
assemblyName: AssemblyName,
|
||||
attributes: new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "property",
|
||||
propertyName: nameof(MultiPropertyEditorBrowsableTagHelper.Property),
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "property2",
|
||||
propertyName: nameof(MultiPropertyEditorBrowsableTagHelper.Property2),
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "property",
|
||||
PropertyName = nameof(MultiPropertyEditorBrowsableTagHelper.Property),
|
||||
TypeName = typeof(int).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "property2",
|
||||
PropertyName = nameof(MultiPropertyEditorBrowsableTagHelper.Property2),
|
||||
TypeName = typeof(int).FullName
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
|
@ -477,19 +440,18 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
assemblyName: AssemblyName,
|
||||
attributes: new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "property2",
|
||||
propertyName: nameof(OverriddenPropertyEditorBrowsableTagHelper.Property2),
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "property",
|
||||
propertyName: nameof(OverriddenPropertyEditorBrowsableTagHelper.Property),
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "property2",
|
||||
PropertyName = nameof(OverriddenPropertyEditorBrowsableTagHelper.Property2),
|
||||
TypeName = typeof(int).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "property",
|
||||
PropertyName = nameof(OverriddenPropertyEditorBrowsableTagHelper.Property),
|
||||
TypeName = typeof(int).FullName
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
|
@ -504,12 +466,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
assemblyName: AssemblyName,
|
||||
attributes: new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "property",
|
||||
propertyName: nameof(DefaultEditorBrowsableTagHelper.Property),
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "property",
|
||||
PropertyName = nameof(DefaultEditorBrowsableTagHelper.Property),
|
||||
TypeName = typeof(int).FullName
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
|
@ -929,12 +891,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
AssemblyName,
|
||||
new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
"int-attribute",
|
||||
nameof(InheritedSingleAttributeTagHelper.IntAttribute),
|
||||
typeof(int).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "int-attribute",
|
||||
PropertyName = nameof(InheritedSingleAttributeTagHelper.IntAttribute),
|
||||
TypeName = typeof(int).FullName
|
||||
}
|
||||
});
|
||||
|
||||
// Act
|
||||
|
|
@ -1047,12 +1009,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
AssemblyName,
|
||||
new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
"bound-property",
|
||||
nameof(NotBoundAttributeTagHelper.BoundProperty),
|
||||
typeof(object).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "bound-property",
|
||||
PropertyName = nameof(NotBoundAttributeTagHelper.BoundProperty),
|
||||
TypeName = typeof(object).FullName
|
||||
}
|
||||
});
|
||||
|
||||
// Act
|
||||
|
|
@ -1099,12 +1061,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
AssemblyName,
|
||||
new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
"valid-attribute",
|
||||
nameof(MultiTagTagHelper.ValidAttribute),
|
||||
typeof(string).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-attribute",
|
||||
PropertyName = nameof(MultiTagTagHelper.ValidAttribute),
|
||||
TypeName = typeof(string).FullName
|
||||
}
|
||||
}),
|
||||
CreateTagHelperDescriptor(
|
||||
"p",
|
||||
|
|
@ -1112,12 +1074,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
AssemblyName,
|
||||
new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
"valid-attribute",
|
||||
nameof(MultiTagTagHelper.ValidAttribute),
|
||||
typeof(string).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-attribute",
|
||||
PropertyName = nameof(MultiTagTagHelper.ValidAttribute),
|
||||
TypeName = typeof(string).FullName
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
|
|
@ -1445,18 +1407,19 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
typeof(DefaultValidHtmlAttributePrefix),
|
||||
new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "dictionary-property",
|
||||
propertyName: nameof(DefaultValidHtmlAttributePrefix.DictionaryProperty),
|
||||
typeName: typeof(IDictionary<string, string>).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "dictionary-property-",
|
||||
propertyName: nameof(DefaultValidHtmlAttributePrefix.DictionaryProperty),
|
||||
typeName: typeof(string).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "dictionary-property",
|
||||
PropertyName = nameof(DefaultValidHtmlAttributePrefix.DictionaryProperty),
|
||||
TypeName = typeof(IDictionary<string, string>).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "dictionary-property-",
|
||||
PropertyName = nameof(DefaultValidHtmlAttributePrefix.DictionaryProperty),
|
||||
TypeName = typeof(string).FullName,
|
||||
IsIndexer = true
|
||||
}
|
||||
},
|
||||
new string[0]
|
||||
},
|
||||
|
|
@ -1464,18 +1427,19 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
typeof(SingleValidHtmlAttributePrefix),
|
||||
new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "valid-name",
|
||||
propertyName: nameof(SingleValidHtmlAttributePrefix.DictionaryProperty),
|
||||
typeName: typeof(IDictionary<string, string>).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "valid-name-",
|
||||
propertyName: nameof(SingleValidHtmlAttributePrefix.DictionaryProperty),
|
||||
typeName: typeof(string).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-name",
|
||||
PropertyName = nameof(SingleValidHtmlAttributePrefix.DictionaryProperty),
|
||||
TypeName = typeof(IDictionary<string, string>).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-name-",
|
||||
PropertyName = nameof(SingleValidHtmlAttributePrefix.DictionaryProperty),
|
||||
TypeName = typeof(string).FullName,
|
||||
IsIndexer = true
|
||||
}
|
||||
},
|
||||
new string[0]
|
||||
},
|
||||
|
|
@ -1483,84 +1447,91 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
typeof(MultipleValidHtmlAttributePrefix),
|
||||
new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "valid-name1",
|
||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionaryProperty),
|
||||
typeName: typeof(Dictionary<string, object>).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "valid-name2",
|
||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionarySubclassProperty),
|
||||
typeName: typeof(DictionarySubclass).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "valid-name3",
|
||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionaryWithoutParameterlessConstructorProperty),
|
||||
typeName: typeof(DictionaryWithoutParameterlessConstructor).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "valid-name4",
|
||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.GenericDictionarySubclassProperty),
|
||||
typeName: typeof(GenericDictionarySubclass<object>).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "valid-name5",
|
||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.SortedDictionaryProperty),
|
||||
typeName: typeof(SortedDictionary<string, int>).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "valid-name6",
|
||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.StringProperty),
|
||||
typeName: typeof(string).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "valid-prefix1-",
|
||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionaryProperty),
|
||||
typeName: typeof(object).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "valid-prefix2-",
|
||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionarySubclassProperty),
|
||||
typeName: typeof(string).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "valid-prefix3-",
|
||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionaryWithoutParameterlessConstructorProperty),
|
||||
typeName: typeof(string).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "valid-prefix4-",
|
||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.GenericDictionarySubclassProperty),
|
||||
typeName: typeof(object).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "valid-prefix5-",
|
||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.SortedDictionaryProperty),
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "get-only-dictionary-property-",
|
||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.GetOnlyDictionaryProperty),
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "valid-prefix6",
|
||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.GetOnlyDictionaryPropertyWithAttributePrefix),
|
||||
typeName: typeof(string).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-name1",
|
||||
PropertyName = nameof(MultipleValidHtmlAttributePrefix.DictionaryProperty),
|
||||
TypeName = typeof(Dictionary<string, object>).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-name2",
|
||||
PropertyName = nameof(MultipleValidHtmlAttributePrefix.DictionarySubclassProperty),
|
||||
TypeName = typeof(DictionarySubclass).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-name3",
|
||||
PropertyName = nameof(MultipleValidHtmlAttributePrefix.DictionaryWithoutParameterlessConstructorProperty),
|
||||
TypeName = typeof(DictionaryWithoutParameterlessConstructor).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-name4",
|
||||
PropertyName = nameof(MultipleValidHtmlAttributePrefix.GenericDictionarySubclassProperty),
|
||||
TypeName = typeof(GenericDictionarySubclass<object>).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-name5",
|
||||
PropertyName = nameof(MultipleValidHtmlAttributePrefix.SortedDictionaryProperty),
|
||||
TypeName = typeof(SortedDictionary<string, int>).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-name6",
|
||||
PropertyName = nameof(MultipleValidHtmlAttributePrefix.StringProperty),
|
||||
TypeName = typeof(string).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-prefix1-",
|
||||
PropertyName = nameof(MultipleValidHtmlAttributePrefix.DictionaryProperty),
|
||||
TypeName = typeof(object).FullName,
|
||||
IsIndexer = true
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-prefix2-",
|
||||
PropertyName = nameof(MultipleValidHtmlAttributePrefix.DictionarySubclassProperty),
|
||||
TypeName = typeof(string).FullName,
|
||||
IsIndexer = true
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-prefix3-",
|
||||
PropertyName = nameof(MultipleValidHtmlAttributePrefix.DictionaryWithoutParameterlessConstructorProperty),
|
||||
TypeName = typeof(string).FullName,
|
||||
IsIndexer = true
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-prefix4-",
|
||||
PropertyName = nameof(MultipleValidHtmlAttributePrefix.GenericDictionarySubclassProperty),
|
||||
TypeName = typeof(object).FullName,
|
||||
IsIndexer = true
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-prefix5-",
|
||||
PropertyName = nameof(MultipleValidHtmlAttributePrefix.SortedDictionaryProperty),
|
||||
TypeName = typeof(int).FullName,
|
||||
IsIndexer = true
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "get-only-dictionary-property-",
|
||||
PropertyName = nameof(MultipleValidHtmlAttributePrefix.GetOnlyDictionaryProperty),
|
||||
TypeName = typeof(int).FullName,
|
||||
IsIndexer = true
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-prefix6",
|
||||
PropertyName = nameof(MultipleValidHtmlAttributePrefix.GetOnlyDictionaryPropertyWithAttributePrefix),
|
||||
TypeName = typeof(string).FullName,
|
||||
IsIndexer = true
|
||||
}
|
||||
},
|
||||
new string[0]
|
||||
},
|
||||
|
|
@ -1578,12 +1549,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
typeof(MultipleInvalidHtmlAttributePrefix),
|
||||
new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "valid-name1",
|
||||
propertyName: nameof(MultipleInvalidHtmlAttributePrefix.LongProperty),
|
||||
typeName: typeof(long).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "valid-name1",
|
||||
PropertyName = nameof(MultipleInvalidHtmlAttributePrefix.LongProperty),
|
||||
TypeName = typeof(long).FullName
|
||||
}
|
||||
},
|
||||
new[]
|
||||
{
|
||||
|
|
@ -1669,12 +1640,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
public void ValidateTagHelperAttributeDescriptor_WithValidName_ReturnsTrue(string name)
|
||||
{
|
||||
// Arrange
|
||||
var descriptor = new TagHelperAttributeDescriptor(
|
||||
name,
|
||||
propertyName: "ValidProperty",
|
||||
typeName: "PropertyType",
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null);
|
||||
var descriptor = new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = name,
|
||||
PropertyName = "ValidProperty",
|
||||
TypeName = "PropertyType"
|
||||
};
|
||||
var errorSink = new ErrorSink();
|
||||
|
||||
// Act
|
||||
|
|
@ -1710,12 +1681,13 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
public void ValidateTagHelperAttributeDescriptor_WithValidPrefix_ReturnsTrue(string prefix)
|
||||
{
|
||||
// Arrange
|
||||
var descriptor = new TagHelperAttributeDescriptor(
|
||||
name: prefix,
|
||||
propertyName: "ValidProperty",
|
||||
typeName: "PropertyType",
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null);
|
||||
var descriptor = new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = prefix,
|
||||
PropertyName = "ValidProperty",
|
||||
TypeName = "PropertyType",
|
||||
IsIndexer = true
|
||||
};
|
||||
var errorSink = new ErrorSink();
|
||||
|
||||
// Act
|
||||
|
|
@ -1756,12 +1728,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
string[] expectedErrorMessages)
|
||||
{
|
||||
// Arrange
|
||||
var descriptor = new TagHelperAttributeDescriptor(
|
||||
name,
|
||||
propertyName: "InvalidProperty",
|
||||
typeName: "PropertyType",
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null);
|
||||
var descriptor = new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = name,
|
||||
PropertyName = "InvalidProperty",
|
||||
TypeName = "PropertyType"
|
||||
};
|
||||
var errorSink = new ErrorSink();
|
||||
|
||||
// Act
|
||||
|
|
@ -1810,12 +1782,13 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
string[] expectedErrorMessages)
|
||||
{
|
||||
// Arrange
|
||||
var descriptor = new TagHelperAttributeDescriptor(
|
||||
name: prefix,
|
||||
propertyName: "InvalidProperty",
|
||||
typeName: "ValuesType",
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null);
|
||||
var descriptor = new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = prefix,
|
||||
PropertyName = "InvalidProperty",
|
||||
TypeName = "ValuesType",
|
||||
IsIndexer = true
|
||||
};
|
||||
var errorSink = new ErrorSink();
|
||||
|
||||
// Act
|
||||
|
|
@ -2105,28 +2078,26 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
IEnumerable<TagHelperAttributeDescriptor> attributes = null,
|
||||
IEnumerable<string> requiredAttributes = null)
|
||||
{
|
||||
return new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: tagName,
|
||||
typeName: typeName,
|
||||
assemblyName: assemblyName,
|
||||
attributes: attributes ?? Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: requiredAttributes ?? Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: null);
|
||||
return new TagHelperDescriptor
|
||||
{
|
||||
TagName = tagName,
|
||||
TypeName = typeName,
|
||||
AssemblyName = assemblyName,
|
||||
Attributes = attributes ?? Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
RequiredAttributes = requiredAttributes ?? Enumerable.Empty<string>()
|
||||
};
|
||||
}
|
||||
|
||||
private static TagHelperAttributeDescriptor CreateTagHelperAttributeDescriptor(
|
||||
string name,
|
||||
PropertyInfo propertyInfo)
|
||||
{
|
||||
return new TagHelperAttributeDescriptor(
|
||||
name,
|
||||
propertyInfo.Name,
|
||||
propertyInfo.PropertyType.FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null);
|
||||
return new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = name,
|
||||
PropertyName = propertyInfo.Name,
|
||||
TypeName = propertyInfo.PropertyType.FullName
|
||||
};
|
||||
}
|
||||
|
||||
[RestrictChildren("p")]
|
||||
|
|
|
|||
|
|
@ -25,16 +25,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
{
|
||||
get
|
||||
{
|
||||
return new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "valid_plain",
|
||||
typeName: Valid_PlainTagHelperType.FullName,
|
||||
assemblyName: AssemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: null);
|
||||
return new TagHelperDescriptor
|
||||
{
|
||||
TagName = "valid_plain",
|
||||
TypeName = Valid_PlainTagHelperType.FullName,
|
||||
AssemblyName = AssemblyName
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -42,16 +38,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
{
|
||||
get
|
||||
{
|
||||
return new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "valid_inherited",
|
||||
typeName: Valid_InheritedTagHelperType.FullName,
|
||||
assemblyName: AssemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: null);
|
||||
return new TagHelperDescriptor
|
||||
{
|
||||
TagName = "valid_inherited",
|
||||
TypeName = Valid_InheritedTagHelperType.FullName,
|
||||
AssemblyName = AssemblyName
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -604,16 +596,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
// We're treating 'string' as a TagHelper so we can test TagHelpers in multiple assemblies without
|
||||
// building a separate assembly with a single TagHelper.
|
||||
var stringTagHelperDescriptor =
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "string",
|
||||
typeName: "System.String",
|
||||
assemblyName: assemblyB,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: null);
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "string",
|
||||
TypeName = "System.String",
|
||||
AssemblyName = assemblyB
|
||||
};
|
||||
|
||||
return new TheoryData<Dictionary<string, IEnumerable<Type>>, // descriptorAssemblyLookups
|
||||
IEnumerable<TagHelperDirectiveDescriptor>, // directiveDescriptors
|
||||
|
|
@ -1041,16 +1029,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
|
||||
var assemblyB = stringType.GetTypeInfo().Assembly.GetName().Name;
|
||||
var stringTagHelperDescriptor =
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "string",
|
||||
typeName: "System.String",
|
||||
assemblyName: assemblyB,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: null);
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "string",
|
||||
TypeName = "System.String",
|
||||
AssemblyName = assemblyB
|
||||
};
|
||||
|
||||
return new TheoryData<Dictionary<string, IEnumerable<Type>>, // descriptorAssemblyLookups
|
||||
IEnumerable<TagHelperDirectiveDescriptor>> // directiveDescriptors
|
||||
|
|
@ -1441,16 +1425,13 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
|||
string typeName,
|
||||
string assemblyName)
|
||||
{
|
||||
return new TagHelperDescriptor(
|
||||
prefix,
|
||||
tagName,
|
||||
typeName,
|
||||
assemblyName,
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: null);
|
||||
return new TagHelperDescriptor
|
||||
{
|
||||
Prefix = prefix,
|
||||
TagName = tagName,
|
||||
TypeName = typeName,
|
||||
AssemblyName = assemblyName
|
||||
};
|
||||
}
|
||||
|
||||
private static TagHelperDescriptor CreatePrefixedValidPlainDescriptor(string prefix)
|
||||
|
|
|
|||
|
|
@ -26,40 +26,44 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
{
|
||||
return new[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
tagName: "*",
|
||||
typeName: "CatchAllTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new[]
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "*",
|
||||
TypeName = "CatchAllTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
"catchall-bound-string",
|
||||
"BoundRequiredString",
|
||||
typeof(string).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "catchall-bound-string",
|
||||
PropertyName = "BoundRequiredString",
|
||||
TypeName = typeof(string).FullName
|
||||
}
|
||||
},
|
||||
requiredAttributes: new[] { "catchall-unbound-required" }),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new[]
|
||||
RequiredAttributes = new[] { "catchall-unbound-required" },
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
"input-bound-required-string",
|
||||
"BoundRequiredString",
|
||||
typeof(string).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
"input-bound-string",
|
||||
"BoundString",
|
||||
typeof(string).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "input-bound-required-string",
|
||||
PropertyName = "BoundRequiredString",
|
||||
TypeName = typeof(string).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "input-bound-string",
|
||||
PropertyName = "BoundString",
|
||||
TypeName = typeof(string).FullName
|
||||
}
|
||||
},
|
||||
requiredAttributes: new[] { "input-bound-required-string", "input-unbound-required" }),
|
||||
RequiredAttributes = new[] { "input-bound-required-string", "input-unbound-required" },
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -70,19 +74,21 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
{
|
||||
return new[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new[]
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
"bound",
|
||||
"Bound",
|
||||
typeof(string).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
}),
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "bound",
|
||||
PropertyName = "Bound",
|
||||
TypeName = typeof(string).FullName
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -95,46 +101,54 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
var inputCheckedPropertyInfo = typeof(TestType).GetProperty("Checked");
|
||||
return new[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
tagName: "*",
|
||||
typeName: "CatchAllTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[]
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "*",
|
||||
TypeName = "CatchAllTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new TagHelperAttributeDescriptor[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor("type", inputTypePropertyInfo),
|
||||
new TagHelperAttributeDescriptor("checked", inputCheckedPropertyInfo)
|
||||
},
|
||||
requiredAttributes: new[] { "type" }),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "*",
|
||||
typeName: "CatchAllTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[]
|
||||
RequiredAttributes = new[] { "type" },
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "*",
|
||||
TypeName = "CatchAllTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new TagHelperAttributeDescriptor[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor("type", inputTypePropertyInfo),
|
||||
new TagHelperAttributeDescriptor("checked", inputCheckedPropertyInfo)
|
||||
},
|
||||
requiredAttributes: new[] { "checked" }),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[]
|
||||
RequiredAttributes = new[] { "checked" },
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new TagHelperAttributeDescriptor[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor("type", inputTypePropertyInfo),
|
||||
new TagHelperAttributeDescriptor("checked", inputCheckedPropertyInfo)
|
||||
},
|
||||
requiredAttributes: new[] { "type" }),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[]
|
||||
RequiredAttributes = new[] { "type" },
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new TagHelperAttributeDescriptor[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor("type", inputTypePropertyInfo),
|
||||
new TagHelperAttributeDescriptor("checked", inputCheckedPropertyInfo)
|
||||
},
|
||||
requiredAttributes: new[] { "checked" })
|
||||
RequiredAttributes = new[] { "checked" },
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -147,37 +161,43 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
var inputCheckedPropertyInfo = typeof(TestType).GetProperty("Checked");
|
||||
return new[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
tagName: "p",
|
||||
typeName: "PTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: new[] { "class" }),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[]
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = "PTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
RequiredAttributes = new[] { "class" },
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new TagHelperAttributeDescriptor[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor("type", inputTypePropertyInfo)
|
||||
},
|
||||
requiredAttributes: new[] { "type" }),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper2",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[]
|
||||
RequiredAttributes = new[] { "type" },
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper2",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new TagHelperAttributeDescriptor[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor("type", inputTypePropertyInfo),
|
||||
new TagHelperAttributeDescriptor("checked", inputCheckedPropertyInfo)
|
||||
},
|
||||
requiredAttributes: new[] { "type", "checked" }),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "*",
|
||||
typeName: "CatchAllTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: new[] { "catchAll" })
|
||||
RequiredAttributes = new[] { "type", "checked" },
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "*",
|
||||
TypeName = "CatchAllTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
RequiredAttributes = new[] { "catchAll" },
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -188,80 +208,88 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
{
|
||||
return new[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper1",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new[]
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper1",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "int-prefix-grabber",
|
||||
propertyName: "IntProperty",
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "int-dictionary",
|
||||
propertyName: "IntDictionaryProperty",
|
||||
typeName: typeof(IDictionary<string, int>).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "string-dictionary",
|
||||
propertyName: "StringDictionaryProperty",
|
||||
typeName: "Namespace.DictionaryWithoutParameterlessConstructor<string, string>",
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "string-prefix-grabber",
|
||||
propertyName: "StringProperty",
|
||||
typeName: typeof(string).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "int-prefix-",
|
||||
propertyName: "IntDictionaryProperty",
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "string-prefix-",
|
||||
propertyName: "StringDictionaryProperty",
|
||||
typeName: typeof(string).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
}),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper2",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new[]
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "int-prefix-grabber",
|
||||
PropertyName = "IntProperty",
|
||||
TypeName = typeof(int).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "int-dictionary",
|
||||
PropertyName = "IntDictionaryProperty",
|
||||
TypeName = typeof(IDictionary<string, int>).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "string-dictionary",
|
||||
PropertyName = "StringDictionaryProperty",
|
||||
TypeName = "Namespace.DictionaryWithoutParameterlessConstructor<string, string>"
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "string-prefix-grabber",
|
||||
PropertyName = "StringProperty",
|
||||
TypeName = typeof(string).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "int-prefix-",
|
||||
PropertyName = "IntDictionaryProperty",
|
||||
TypeName = typeof(int).FullName,
|
||||
IsIndexer = true
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "string-prefix-",
|
||||
PropertyName = "StringDictionaryProperty",
|
||||
TypeName = typeof(string).FullName,
|
||||
IsIndexer = true
|
||||
}
|
||||
}
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper2",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "int-dictionary",
|
||||
propertyName: "IntDictionaryProperty",
|
||||
typeName: typeof(IDictionary<string, int>).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "string-dictionary",
|
||||
propertyName: "StringDictionaryProperty",
|
||||
typeName: "Namespace.DictionaryWithoutParameterlessConstructor<string, string>",
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "int-prefix-",
|
||||
propertyName: "IntDictionaryProperty",
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "string-prefix-",
|
||||
propertyName: "StringDictionaryProperty",
|
||||
typeName: typeof(string).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
}),
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "int-dictionary",
|
||||
PropertyName = "IntDictionaryProperty",
|
||||
TypeName = typeof(int).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "string-dictionary",
|
||||
PropertyName = "StringDictionaryProperty",
|
||||
TypeName = "Namespace.DictionaryWithoutParameterlessConstructor<string, string>"
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "int-prefix-",
|
||||
PropertyName = "IntDictionaryProperty",
|
||||
TypeName = typeof(int).FullName,
|
||||
IsIndexer = true
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "string-prefix-",
|
||||
PropertyName = "StringDictionaryProperty",
|
||||
TypeName = typeof(string).FullName,
|
||||
IsIndexer = true
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -1507,7 +1535,12 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
designTimeMode: true,
|
||||
tagHelperDescriptors: new[]
|
||||
{
|
||||
new TagHelperDescriptor("p", "pTagHelper", "SomeAssembly")
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = "pTagHelper",
|
||||
AssemblyName = "SomeAssembly"
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -1518,14 +1551,22 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
var propertyInfo = typeof(TestType).GetProperty("BoundProperty");
|
||||
var tagHelperDescriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor("MyTagHelper",
|
||||
"MyTagHelper",
|
||||
"SomeAssembly",
|
||||
new []
|
||||
{
|
||||
new TagHelperAttributeDescriptor("BoundProperty", propertyInfo)
|
||||
}),
|
||||
new TagHelperDescriptor("NestedTagHelper", "NestedTagHelper", "SomeAssembly")
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "MyTagHelper",
|
||||
TypeName = "MyTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new []
|
||||
{
|
||||
new TagHelperAttributeDescriptor("BoundProperty", propertyInfo)
|
||||
}
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "NestedTagHelper",
|
||||
TypeName = "NestedTagHelper",
|
||||
AssemblyName = "SomeAssembly"
|
||||
}
|
||||
};
|
||||
|
||||
// Act & Assert
|
||||
|
|
@ -1540,46 +1581,42 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
|
||||
return new[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix,
|
||||
tagName: "p",
|
||||
typeName: "PTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new []
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
Prefix = prefix,
|
||||
TagName = "p",
|
||||
TypeName = "PTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new TagHelperAttributeDescriptor[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor("age", pAgePropertyInfo)
|
||||
},
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.NormalOrSelfClosing,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix,
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[]
|
||||
TagStructure = TagStructure.NormalOrSelfClosing
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
Prefix = prefix,
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new TagHelperAttributeDescriptor[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor("type", inputTypePropertyInfo)
|
||||
},
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.WithoutEndTag,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix,
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper2",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[]
|
||||
TagStructure = TagStructure.WithoutEndTag
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
Prefix = prefix,
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper2",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new TagHelperAttributeDescriptor[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor("type", inputTypePropertyInfo),
|
||||
new TagHelperAttributeDescriptor("checked", checkedPropertyInfo)
|
||||
},
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null)
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,12 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
"div",
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName")
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = "DivTagHelper",
|
||||
AssemblyName = "FakeAssemblyName"
|
||||
}
|
||||
});
|
||||
var codeRenderer = CreateCodeRenderer();
|
||||
|
||||
|
|
@ -41,8 +46,18 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
"div",
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName"),
|
||||
new TagHelperDescriptor("div", "Div2TagHelper", "FakeAssemblyName")
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = "DivTagHelper",
|
||||
AssemblyName = "FakeAssemblyName"
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = "Div2TagHelper",
|
||||
AssemblyName = "FakeAssemblyName"
|
||||
}
|
||||
});
|
||||
var codeRenderer = CreateCodeRenderer();
|
||||
|
||||
|
|
@ -61,13 +76,23 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
"div",
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName")
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = "DivTagHelper",
|
||||
AssemblyName = "FakeAssemblyName"
|
||||
}
|
||||
});
|
||||
var chunk2 = CreateTagHelperChunk(
|
||||
"div",
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName")
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = "DivTagHelper",
|
||||
AssemblyName = "FakeAssemblyName"
|
||||
}
|
||||
});
|
||||
var codeRenderer = CreateCodeRenderer();
|
||||
|
||||
|
|
@ -87,13 +112,23 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
"div",
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName")
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = "DivTagHelper",
|
||||
AssemblyName = "FakeAssemblyName"
|
||||
}
|
||||
});
|
||||
var childChunk = CreateTagHelperChunk(
|
||||
"div",
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName")
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = "DivTagHelper",
|
||||
AssemblyName = "FakeAssemblyName"
|
||||
}
|
||||
});
|
||||
parentChunk.Children.Add(childChunk);
|
||||
var codeRenderer = CreateCodeRenderer();
|
||||
|
|
@ -113,13 +148,23 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
"div",
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName")
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = "DivTagHelper",
|
||||
AssemblyName = "FakeAssemblyName"
|
||||
}
|
||||
});
|
||||
var spanChunk = CreateTagHelperChunk(
|
||||
"span",
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor("span", "SpanTagHelper", "FakeAssemblyName")
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "span",
|
||||
TypeName = "SpanTagHelper",
|
||||
AssemblyName = "FakeAssemblyName"
|
||||
}
|
||||
});
|
||||
var codeRenderer = CreateCodeRenderer();
|
||||
|
||||
|
|
@ -139,21 +184,46 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
"div",
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor("div", "DivTagHelper", "FakeAssemblyName"),
|
||||
new TagHelperDescriptor("div", "Div2TagHelper", "FakeAssemblyName")
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = "DivTagHelper",
|
||||
AssemblyName = "FakeAssemblyName"
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = "Div2TagHelper",
|
||||
AssemblyName = "FakeAssemblyName"
|
||||
}
|
||||
});
|
||||
var chunk2 = CreateTagHelperChunk(
|
||||
"span",
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor("span", "SpanTagHelper", "FakeAssemblyName")
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "span",
|
||||
TypeName = "SpanTagHelper",
|
||||
AssemblyName = "FakeAssemblyName"
|
||||
}
|
||||
});
|
||||
var chunk3 = CreateTagHelperChunk(
|
||||
"span",
|
||||
new[]
|
||||
{
|
||||
new TagHelperDescriptor("span", "SpanTagHelper", "FakeAssemblyName"),
|
||||
new TagHelperDescriptor("span", "Span2TagHelper", "FakeAssemblyName")
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "span",
|
||||
TypeName = "SpanTagHelper",
|
||||
AssemblyName = "FakeAssemblyName"
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "span",
|
||||
TypeName = "Span2TagHelper",
|
||||
AssemblyName = "FakeAssemblyName"
|
||||
}
|
||||
});
|
||||
var codeRenderer = CreateCodeRenderer();
|
||||
|
||||
|
|
|
|||
|
|
@ -23,29 +23,34 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
var checkedPropertyInfo = typeof(TestType).GetProperty("Checked");
|
||||
var tagHelperDescriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor("p", "PTagHelper", "SomeAssembly"),
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[]
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = "PTagHelper",
|
||||
AssemblyName = "SomeAssembly"
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new TagHelperAttributeDescriptor[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor("type", inputTypePropertyInfo)
|
||||
},
|
||||
requiredAttributes: new string[0],
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.WithoutEndTag,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper2",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[]
|
||||
TagStructure = TagStructure.WithoutEndTag
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper2",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new TagHelperAttributeDescriptor[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor("type", inputTypePropertyInfo),
|
||||
new TagHelperAttributeDescriptor("checked", checkedPropertyInfo)
|
||||
})
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Act & Assert
|
||||
|
|
|
|||
|
|
@ -36,12 +36,13 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
|
|||
bool expectedIsStringProperty)
|
||||
{
|
||||
// Arrange
|
||||
var attributeDescriptor = new TagHelperAttributeDescriptor(
|
||||
"someAttribute",
|
||||
"someProperty",
|
||||
attributeType.FullName,
|
||||
isIndexer,
|
||||
designTimeDescriptor: null);
|
||||
var attributeDescriptor = new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "someAttribute",
|
||||
PropertyName = "someProperty",
|
||||
TypeName = attributeType.FullName,
|
||||
IsIndexer = isIndexer
|
||||
};
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expectedIsStringProperty, attributeDescriptor.IsStringProperty);
|
||||
|
|
|
|||
|
|
@ -80,16 +80,13 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
// Arrange
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.WithoutEndTag,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
TagStructure = TagStructure.WithoutEndTag,
|
||||
}
|
||||
};
|
||||
var descriptorProvider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -183,26 +180,20 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
var blockFactory = new BlockFactory(factory);
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper1",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: structure1,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper2",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: structure2,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper1",
|
||||
AssemblyName = "SomeAssembly",
|
||||
TagStructure = structure1
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper2",
|
||||
AssemblyName = "SomeAssembly",
|
||||
TagStructure = structure2
|
||||
}
|
||||
};
|
||||
var descriptorProvider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -1024,28 +1015,33 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
// Arrange
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor("person", "PersonTagHelper", "personAssembly",
|
||||
attributes: new[]
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "person",
|
||||
TypeName = "PersonTagHelper",
|
||||
AssemblyName = "personAssembly",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "age",
|
||||
propertyName: "Age",
|
||||
typeName: typeof(int).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "birthday",
|
||||
propertyName: "BirthDay",
|
||||
typeName: typeof(DateTime).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "name",
|
||||
propertyName: "Name",
|
||||
typeName: typeof(string).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
})
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "age",
|
||||
PropertyName = "Age",
|
||||
TypeName = typeof(int).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "birthday",
|
||||
PropertyName = "BirthDay",
|
||||
TypeName = typeof(DateTime).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "name",
|
||||
PropertyName = "Name",
|
||||
TypeName = typeof(string).FullName
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
var providerContext = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -2067,25 +2063,27 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
// Arrange
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
tagName: "myth",
|
||||
typeName: "mythTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new[]
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "myth",
|
||||
TypeName = "mythTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "bound",
|
||||
propertyName: "Bound",
|
||||
typeName: typeof(bool).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "name",
|
||||
propertyName: "Name",
|
||||
typeName: typeof(string).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
})
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "bound",
|
||||
PropertyName = "Bound",
|
||||
TypeName = typeof(bool).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "name",
|
||||
PropertyName = "Name",
|
||||
TypeName = typeof(string).FullName
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
var descriptorProvider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -3657,100 +3655,110 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
// Arrange
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper1",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new[]
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper1",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
"bound-required-string",
|
||||
"BoundRequiredString",
|
||||
typeof(string).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "bound-required-string",
|
||||
PropertyName = "BoundRequiredString",
|
||||
TypeName = typeof(string).FullName
|
||||
}
|
||||
},
|
||||
requiredAttributes: new[] { "unbound-required" }),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper1",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new[]
|
||||
RequiredAttributes = new[] { "unbound-required" }
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper1",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
"bound-required-string",
|
||||
"BoundRequiredString",
|
||||
typeof(string).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "bound-required-string",
|
||||
PropertyName = "BoundRequiredString",
|
||||
TypeName = typeof(string).FullName
|
||||
}
|
||||
},
|
||||
requiredAttributes: new[] { "bound-required-string" }),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper2",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new[]
|
||||
RequiredAttributes = new[] { "bound-required-string" }
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper2",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
"bound-required-int",
|
||||
"BoundRequiredInt",
|
||||
typeof(int).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "bound-required-int",
|
||||
PropertyName = "BoundRequiredInt",
|
||||
TypeName = typeof(int).FullName
|
||||
}
|
||||
},
|
||||
requiredAttributes: new[] { "bound-required-int" }),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper3",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new[]
|
||||
RequiredAttributes = new[] { "bound-required-int" }
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper3",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
"int-dictionary",
|
||||
"DictionaryOfIntProperty",
|
||||
typeof(IDictionary<string, int>).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
"string-dictionary",
|
||||
"DictionaryOfStringProperty",
|
||||
typeof(IDictionary<string, string>).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
"int-prefix-",
|
||||
"DictionaryOfIntProperty",
|
||||
typeof(int).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
"string-prefix-",
|
||||
"DictionaryOfStringProperty",
|
||||
typeof(string).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
},
|
||||
requiredAttributes: Enumerable.Empty<string>()),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "p",
|
||||
typeName: "PTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new[]
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "int-dictionary",
|
||||
PropertyName ="DictionaryOfIntProperty",
|
||||
TypeName = typeof(IDictionary<string, int>).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "string-dictionary",
|
||||
PropertyName = "DictionaryOfStringProperty",
|
||||
TypeName = typeof(IDictionary<string, string>).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "int-prefix-",
|
||||
PropertyName = "DictionaryOfIntProperty",
|
||||
TypeName = typeof(int).FullName,
|
||||
IsIndexer = true
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "string-prefix-",
|
||||
PropertyName = "DictionaryOfStringProperty",
|
||||
TypeName = typeof(string).FullName,
|
||||
IsIndexer = true
|
||||
}
|
||||
}
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = "PTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
"bound-string",
|
||||
"BoundRequiredString",
|
||||
typeof(string).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
"bound-int",
|
||||
"BoundRequiredString",
|
||||
typeof(int).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null)
|
||||
},
|
||||
requiredAttributes: Enumerable.Empty<string>()),
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "bound-string",
|
||||
PropertyName = "BoundRequiredString",
|
||||
TypeName = typeof(string).FullName
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "bound-int",
|
||||
PropertyName = "BoundRequiredString",
|
||||
TypeName = typeof(int).FullName
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
var descriptorProvider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
|
|||
|
|
@ -14,42 +14,48 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
{
|
||||
get
|
||||
{
|
||||
var divDescriptor = new TagHelperDescriptor(
|
||||
tagName: "div",
|
||||
typeName: "DivTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: new[] { "style" });
|
||||
var inputDescriptor = new TagHelperDescriptor(
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: new[] { "class", "style" });
|
||||
var inputWildcardPrefixDescriptor = new TagHelperDescriptor(
|
||||
tagName: "input",
|
||||
typeName: "InputWildCardAttribute",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: new[] { "nodashprefix*" });
|
||||
var catchAllDescriptor = new TagHelperDescriptor(
|
||||
tagName: TagHelperDescriptorProvider.ElementCatchAllTarget,
|
||||
typeName: "CatchAllTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: new[] { "class" });
|
||||
var catchAllDescriptor2 = new TagHelperDescriptor(
|
||||
tagName: TagHelperDescriptorProvider.ElementCatchAllTarget,
|
||||
typeName: "CatchAllTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: new[] { "custom", "class" });
|
||||
var catchAllWildcardPrefixDescriptor = new TagHelperDescriptor(
|
||||
tagName: TagHelperDescriptorProvider.ElementCatchAllTarget,
|
||||
typeName: "CatchAllWildCardAttribute",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: new[] { "prefix-*" });
|
||||
var divDescriptor = new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = "DivTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
RequiredAttributes = new[] { "style" }
|
||||
};
|
||||
var inputDescriptor = new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
RequiredAttributes = new[] { "class", "style" }
|
||||
};
|
||||
var inputWildcardPrefixDescriptor = new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputWildCardAttribute",
|
||||
AssemblyName = "SomeAssembly",
|
||||
RequiredAttributes = new[] { "nodashprefix*" }
|
||||
};
|
||||
var catchAllDescriptor = new TagHelperDescriptor
|
||||
{
|
||||
TagName = TagHelperDescriptorProvider.ElementCatchAllTarget,
|
||||
TypeName = "CatchAllTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
RequiredAttributes = new[] { "class" }
|
||||
};
|
||||
var catchAllDescriptor2 = new TagHelperDescriptor
|
||||
{
|
||||
TagName = TagHelperDescriptorProvider.ElementCatchAllTarget,
|
||||
TypeName = "CatchAllTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
RequiredAttributes = new[] { "custom", "class" }
|
||||
};
|
||||
var catchAllWildcardPrefixDescriptor = new TagHelperDescriptor
|
||||
{
|
||||
TagName = TagHelperDescriptorProvider.ElementCatchAllTarget,
|
||||
TypeName = "CatchAllWildCardAttribute",
|
||||
AssemblyName = "SomeAssembly",
|
||||
RequiredAttributes = new[] { "prefix-*" }
|
||||
};
|
||||
var defaultAvailableDescriptors =
|
||||
new[] { divDescriptor, inputDescriptor, catchAllDescriptor, catchAllDescriptor2 };
|
||||
var defaultWildcardDescriptors =
|
||||
|
|
@ -256,8 +262,18 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
public void GetDescriptors_ReturnsNothingForUnregisteredTags()
|
||||
{
|
||||
// Arrange
|
||||
var divDescriptor = new TagHelperDescriptor("div", "foo1", "SomeAssembly");
|
||||
var spanDescriptor = new TagHelperDescriptor("span", "foo2", "SomeAssembly");
|
||||
var divDescriptor = new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = "foo1",
|
||||
AssemblyName = "SomeAssembly",
|
||||
};
|
||||
var spanDescriptor = new TagHelperDescriptor
|
||||
{
|
||||
TagName = "span",
|
||||
TypeName = "foo2",
|
||||
AssemblyName = "SomeAssembly",
|
||||
};
|
||||
var descriptors = new TagHelperDescriptor[] { divDescriptor, spanDescriptor };
|
||||
var provider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -272,12 +288,24 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
public void GetDescriptors_ReturnsCatchAllsWithEveryTagName()
|
||||
{
|
||||
// Arrange
|
||||
var divDescriptor = new TagHelperDescriptor("div", "foo1", "SomeAssembly");
|
||||
var spanDescriptor = new TagHelperDescriptor("span", "foo2", "SomeAssembly");
|
||||
var catchAllDescriptor = new TagHelperDescriptor(
|
||||
TagHelperDescriptorProvider.ElementCatchAllTarget,
|
||||
"foo3",
|
||||
"SomeAssembly");
|
||||
var divDescriptor = new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = "foo1",
|
||||
AssemblyName = "SomeAssembly",
|
||||
};
|
||||
var spanDescriptor = new TagHelperDescriptor
|
||||
{
|
||||
TagName = "span",
|
||||
TypeName = "foo2",
|
||||
AssemblyName = "SomeAssembly",
|
||||
};
|
||||
var catchAllDescriptor = new TagHelperDescriptor
|
||||
{
|
||||
TagName = TagHelperDescriptorProvider.ElementCatchAllTarget,
|
||||
TypeName = "foo3",
|
||||
AssemblyName = "SomeAssembly",
|
||||
};
|
||||
var descriptors = new TagHelperDescriptor[] { divDescriptor, spanDescriptor, catchAllDescriptor };
|
||||
var provider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -301,7 +329,12 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
public void GetDescriptors_DuplicateDescriptorsAreNotPartOfTagHelperDescriptorPool()
|
||||
{
|
||||
// Arrange
|
||||
var divDescriptor = new TagHelperDescriptor("div", "foo1", "SomeAssembly");
|
||||
var divDescriptor = new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = "foo1",
|
||||
AssemblyName = "SomeAssembly",
|
||||
};
|
||||
var descriptors = new TagHelperDescriptor[] { divDescriptor, divDescriptor };
|
||||
var provider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -315,16 +348,13 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
|
||||
private static TagHelperDescriptor CreatePrefixedDescriptor(string prefix, string tagName, string typeName)
|
||||
{
|
||||
return new TagHelperDescriptor(
|
||||
prefix,
|
||||
tagName,
|
||||
typeName,
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: null);
|
||||
return new TagHelperDescriptor
|
||||
{
|
||||
Prefix = prefix,
|
||||
TagName = tagName,
|
||||
TypeName = typeName,
|
||||
AssemblyName = "SomeAssembly"
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -16,21 +16,21 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
public void TagHelperDescriptor_CanBeSerialized()
|
||||
{
|
||||
// Arrange
|
||||
var descriptor = new TagHelperDescriptor(
|
||||
prefix: "prefix:",
|
||||
tagName: "tag name",
|
||||
typeName: "type name",
|
||||
assemblyName: "assembly name",
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: new[] { "required attribute one", "required attribute two" },
|
||||
allowedChildren: new[] { "allowed child one" },
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: new TagHelperDesignTimeDescriptor
|
||||
var descriptor = new TagHelperDescriptor
|
||||
{
|
||||
Prefix = "prefix:",
|
||||
TagName = "tag name",
|
||||
TypeName = "type name",
|
||||
AssemblyName = "assembly name",
|
||||
RequiredAttributes = new[] { "required attribute one", "required attribute two" },
|
||||
AllowedChildren = new[] { "allowed child one" },
|
||||
DesignTimeDescriptor = new TagHelperDesignTimeDescriptor
|
||||
{
|
||||
Summary = "usage summary",
|
||||
Remarks = "usage remarks",
|
||||
OutputElementHint = "some-tag"
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
var expectedSerializedDescriptor =
|
||||
$"{{\"{ nameof(TagHelperDescriptor.Prefix) }\":\"prefix:\"," +
|
||||
|
|
@ -59,30 +59,30 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
public void TagHelperDescriptor_WithAttributes_CanBeSerialized()
|
||||
{
|
||||
// Arrange
|
||||
var descriptor = new TagHelperDescriptor(
|
||||
prefix: "prefix:",
|
||||
tagName: "tag name",
|
||||
typeName: "type name",
|
||||
assemblyName: "assembly name",
|
||||
attributes: new[]
|
||||
var descriptor = new TagHelperDescriptor
|
||||
{
|
||||
Prefix = "prefix:",
|
||||
TagName = "tag name",
|
||||
TypeName = "type name",
|
||||
AssemblyName = "assembly name",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "attribute one",
|
||||
propertyName: "property name",
|
||||
typeName: "property type name",
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "attribute two",
|
||||
propertyName: "property name",
|
||||
typeName: typeof(string).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "attribute one",
|
||||
PropertyName = "property name",
|
||||
TypeName = "property type name"
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "attribute two",
|
||||
PropertyName = "property name",
|
||||
TypeName = typeof(string).FullName
|
||||
},
|
||||
},
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.NormalOrSelfClosing,
|
||||
designTimeDescriptor: null);
|
||||
TagStructure = TagStructure.NormalOrSelfClosing
|
||||
};
|
||||
|
||||
var expectedSerializedDescriptor =
|
||||
$"{{\"{ nameof(TagHelperDescriptor.Prefix) }\":\"prefix:\"," +
|
||||
$"\"{ nameof(TagHelperDescriptor.TagName) }\":\"tag name\"," +
|
||||
|
|
@ -118,30 +118,32 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
public void TagHelperDescriptor_WithIndexerAttributes_CanBeSerialized()
|
||||
{
|
||||
// Arrange
|
||||
var descriptor = new TagHelperDescriptor(
|
||||
prefix: "prefix:",
|
||||
tagName: "tag name",
|
||||
typeName: "type name",
|
||||
assemblyName: "assembly name",
|
||||
attributes: new[]
|
||||
var descriptor = new TagHelperDescriptor
|
||||
{
|
||||
Prefix = "prefix:",
|
||||
TagName = "tag name",
|
||||
TypeName = "type name",
|
||||
AssemblyName = "assembly name",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "attribute one",
|
||||
propertyName: "property name",
|
||||
typeName: "property type name",
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "attribute two",
|
||||
propertyName: "property name",
|
||||
typeName: typeof(string).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "attribute one",
|
||||
PropertyName = "property name",
|
||||
TypeName = "property type name",
|
||||
IsIndexer = true
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "attribute two",
|
||||
PropertyName = "property name",
|
||||
TypeName = typeof(string).FullName,
|
||||
IsIndexer = true
|
||||
},
|
||||
},
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: new[] { "allowed child one", "allowed child two" },
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: null);
|
||||
AllowedChildren = new[] { "allowed child one", "allowed child two" }
|
||||
};
|
||||
|
||||
var expectedSerializedDescriptor =
|
||||
$"{{\"{ nameof(TagHelperDescriptor.Prefix) }\":\"prefix:\"," +
|
||||
$"\"{ nameof(TagHelperDescriptor.TagName) }\":\"tag name\"," +
|
||||
|
|
@ -192,21 +194,21 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
$"\"{ nameof(TagHelperDesignTimeDescriptor.Summary) }\":\"usage summary\"," +
|
||||
$"\"{ nameof(TagHelperDesignTimeDescriptor.Remarks) }\":\"usage remarks\"," +
|
||||
$"\"{ nameof(TagHelperDesignTimeDescriptor.OutputElementHint) }\":\"some-tag\"}}}}";
|
||||
var expectedDescriptor = new TagHelperDescriptor(
|
||||
prefix: "prefix:",
|
||||
tagName: "tag name",
|
||||
typeName: "type name",
|
||||
assemblyName: "assembly name",
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: new[] { "required attribute one", "required attribute two" },
|
||||
allowedChildren: new[] { "allowed child one", "allowed child two" },
|
||||
tagStructure: TagStructure.WithoutEndTag,
|
||||
designTimeDescriptor: new TagHelperDesignTimeDescriptor
|
||||
var expectedDescriptor = new TagHelperDescriptor
|
||||
{
|
||||
Prefix = "prefix:",
|
||||
TagName = "tag name",
|
||||
TypeName = "type name",
|
||||
AssemblyName = "assembly name",
|
||||
RequiredAttributes = new[] { "required attribute one", "required attribute two" },
|
||||
AllowedChildren = new[] { "allowed child one", "allowed child two" },
|
||||
DesignTimeDescriptor = new TagHelperDesignTimeDescriptor
|
||||
{
|
||||
Summary = "usage summary",
|
||||
Remarks = "usage remarks",
|
||||
OutputElementHint = "some-tag"
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// Act
|
||||
var descriptor = JsonConvert.DeserializeObject<TagHelperDescriptor>(serializedDescriptor);
|
||||
|
|
@ -253,30 +255,29 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
$"\"{ nameof(TagHelperDescriptor.AllowedChildren) }\":null," +
|
||||
$"\"{nameof(TagHelperDescriptor.TagStructure)}\":0," +
|
||||
$"\"{ nameof(TagHelperDescriptor.DesignTimeDescriptor) }\":null}}";
|
||||
var expectedDescriptor = new TagHelperDescriptor(
|
||||
prefix: "prefix:",
|
||||
tagName: "tag name",
|
||||
typeName: "type name",
|
||||
assemblyName: "assembly name",
|
||||
attributes: new[]
|
||||
var expectedDescriptor = new TagHelperDescriptor
|
||||
{
|
||||
Prefix = "prefix:",
|
||||
TagName = "tag name",
|
||||
TypeName = "type name",
|
||||
AssemblyName = "assembly name",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "attribute one",
|
||||
propertyName: "property name",
|
||||
typeName: "property type name",
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "attribute two",
|
||||
propertyName: "property name",
|
||||
typeName: typeof(string).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "attribute one",
|
||||
PropertyName = "property name",
|
||||
TypeName = "property type name"
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "attribute two",
|
||||
PropertyName = "property name",
|
||||
TypeName = typeof(string).FullName
|
||||
},
|
||||
},
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null);
|
||||
AllowedChildren = new[] { "allowed child one", "allowed child two" }
|
||||
};
|
||||
|
||||
// Act
|
||||
var descriptor = JsonConvert.DeserializeObject<TagHelperDescriptor>(serializedDescriptor);
|
||||
|
|
@ -288,32 +289,7 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
Assert.Equal(expectedDescriptor.FullTagName, descriptor.FullTagName, StringComparer.Ordinal);
|
||||
Assert.Equal(expectedDescriptor.TypeName, descriptor.TypeName, StringComparer.Ordinal);
|
||||
Assert.Equal(expectedDescriptor.AssemblyName, descriptor.AssemblyName, StringComparer.Ordinal);
|
||||
|
||||
Assert.Equal(2, descriptor.Attributes.Count);
|
||||
Assert.Equal(expectedDescriptor.Attributes[0].IsIndexer, descriptor.Attributes[0].IsIndexer);
|
||||
Assert.Equal(expectedDescriptor.Attributes[0].IsStringProperty, descriptor.Attributes[0].IsStringProperty);
|
||||
Assert.Equal(expectedDescriptor.Attributes[0].Name, descriptor.Attributes[0].Name, StringComparer.Ordinal);
|
||||
Assert.Equal(
|
||||
expectedDescriptor.Attributes[0].PropertyName,
|
||||
descriptor.Attributes[0].PropertyName,
|
||||
StringComparer.Ordinal);
|
||||
Assert.Equal(
|
||||
expectedDescriptor.Attributes[0].TypeName,
|
||||
descriptor.Attributes[0].TypeName,
|
||||
StringComparer.Ordinal);
|
||||
|
||||
Assert.Equal(expectedDescriptor.Attributes[1].IsIndexer, descriptor.Attributes[1].IsIndexer);
|
||||
Assert.Equal(expectedDescriptor.Attributes[1].IsStringProperty, descriptor.Attributes[1].IsStringProperty);
|
||||
Assert.Equal(expectedDescriptor.Attributes[1].Name, descriptor.Attributes[1].Name, StringComparer.Ordinal);
|
||||
Assert.Equal(
|
||||
expectedDescriptor.Attributes[1].PropertyName,
|
||||
descriptor.Attributes[1].PropertyName,
|
||||
StringComparer.Ordinal);
|
||||
Assert.Equal(
|
||||
expectedDescriptor.Attributes[1].TypeName,
|
||||
descriptor.Attributes[1].TypeName,
|
||||
StringComparer.Ordinal);
|
||||
|
||||
Assert.Equal(expectedDescriptor.Attributes, descriptor.Attributes, TagHelperAttributeDescriptorComparer.Default);
|
||||
Assert.Empty(descriptor.RequiredAttributes);
|
||||
}
|
||||
|
||||
|
|
@ -344,30 +320,31 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
$"\"{ nameof(TagHelperDescriptor.AllowedChildren) }\":null," +
|
||||
$"\"{nameof(TagHelperDescriptor.TagStructure)}\":1," +
|
||||
$"\"{ nameof(TagHelperDescriptor.DesignTimeDescriptor) }\":null}}";
|
||||
var expectedDescriptor = new TagHelperDescriptor(
|
||||
prefix: "prefix:",
|
||||
tagName: "tag name",
|
||||
typeName: "type name",
|
||||
assemblyName: "assembly name",
|
||||
attributes: new[]
|
||||
var expectedDescriptor = new TagHelperDescriptor
|
||||
{
|
||||
Prefix = "prefix:",
|
||||
TagName = "tag name",
|
||||
TypeName = "type name",
|
||||
AssemblyName = "assembly name",
|
||||
Attributes = new[]
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "attribute one",
|
||||
propertyName: "property name",
|
||||
typeName: "property type name",
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "attribute two",
|
||||
propertyName: "property name",
|
||||
typeName: typeof(string).FullName,
|
||||
isIndexer: true,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "attribute one",
|
||||
PropertyName = "property name",
|
||||
TypeName = "property type name",
|
||||
IsIndexer = true
|
||||
},
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "attribute two",
|
||||
PropertyName = "property name",
|
||||
TypeName = typeof(string).FullName,
|
||||
IsIndexer = true
|
||||
}
|
||||
},
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.NormalOrSelfClosing,
|
||||
designTimeDescriptor: null);
|
||||
TagStructure = TagStructure.NormalOrSelfClosing
|
||||
};
|
||||
|
||||
// Act
|
||||
var descriptor = JsonConvert.DeserializeObject<TagHelperDescriptor>(serializedDescriptor);
|
||||
|
|
@ -379,32 +356,7 @@ namespace Microsoft.AspNet.Razor.TagHelpers
|
|||
Assert.Equal(expectedDescriptor.FullTagName, descriptor.FullTagName, StringComparer.Ordinal);
|
||||
Assert.Equal(expectedDescriptor.TypeName, descriptor.TypeName, StringComparer.Ordinal);
|
||||
Assert.Equal(expectedDescriptor.AssemblyName, descriptor.AssemblyName, StringComparer.Ordinal);
|
||||
|
||||
Assert.Equal(2, descriptor.Attributes.Count);
|
||||
Assert.Equal(expectedDescriptor.Attributes[0].IsIndexer, descriptor.Attributes[0].IsIndexer);
|
||||
Assert.Equal(expectedDescriptor.Attributes[0].IsStringProperty, descriptor.Attributes[0].IsStringProperty);
|
||||
Assert.Equal(expectedDescriptor.Attributes[0].Name, descriptor.Attributes[0].Name, StringComparer.Ordinal);
|
||||
Assert.Equal(
|
||||
expectedDescriptor.Attributes[0].PropertyName,
|
||||
descriptor.Attributes[0].PropertyName,
|
||||
StringComparer.Ordinal);
|
||||
Assert.Equal(
|
||||
expectedDescriptor.Attributes[0].TypeName,
|
||||
descriptor.Attributes[0].TypeName,
|
||||
StringComparer.Ordinal);
|
||||
|
||||
Assert.Equal(expectedDescriptor.Attributes[1].IsIndexer, descriptor.Attributes[1].IsIndexer);
|
||||
Assert.Equal(expectedDescriptor.Attributes[1].IsStringProperty, descriptor.Attributes[1].IsStringProperty);
|
||||
Assert.Equal(expectedDescriptor.Attributes[1].Name, descriptor.Attributes[1].Name, StringComparer.Ordinal);
|
||||
Assert.Equal(
|
||||
expectedDescriptor.Attributes[1].PropertyName,
|
||||
descriptor.Attributes[1].PropertyName,
|
||||
StringComparer.Ordinal);
|
||||
Assert.Equal(
|
||||
expectedDescriptor.Attributes[1].TypeName,
|
||||
descriptor.Attributes[1].TypeName,
|
||||
StringComparer.Ordinal);
|
||||
|
||||
Assert.Equal(expectedDescriptor.Attributes, descriptor.Attributes, TagHelperAttributeDescriptorComparer.Default);
|
||||
Assert.Empty(descriptor.RequiredAttributes);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,16 +56,13 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
|
|||
factory.Markup(Environment.NewLine)));
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "p",
|
||||
typeName: "PTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: new[] { "br" },
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = "PTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
AllowedChildren = new[] { "br" },
|
||||
}
|
||||
};
|
||||
var descriptorProvider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -105,16 +102,14 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
|
|||
blockFactory.MarkupTagBlock("</strong>")));
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "strong",
|
||||
typeName: "StrongTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: new[] { "required" },
|
||||
allowedChildren: new[] { "br" },
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "strong",
|
||||
TypeName = "StrongTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
RequiredAttributes = new[] { "required" },
|
||||
AllowedChildren = new[] { "br" }
|
||||
}
|
||||
};
|
||||
var descriptorProvider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -135,46 +130,32 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
|
|||
new MarkupTagHelperBlock("br", TagMode.StartTagOnly)));
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "p",
|
||||
typeName: "PTagHelper1",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: new[] { "strong", "br" },
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "p",
|
||||
typeName: "PTagHelper2",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "strong",
|
||||
typeName: "StrongTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "br",
|
||||
typeName: "BRTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.WithoutEndTag,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = "PTagHelper1",
|
||||
AssemblyName = "SomeAssembly",
|
||||
AllowedChildren = new[] { "strong", "br" }
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = "PTagHelper2",
|
||||
AssemblyName = "SomeAssembly"
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "strong",
|
||||
TypeName = "StrongTagHelper",
|
||||
AssemblyName = "SomeAssembly"
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "br",
|
||||
TypeName = "BRTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
TagStructure = TagStructure.WithoutEndTag
|
||||
}
|
||||
};
|
||||
var descriptorProvider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -195,46 +176,33 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
|
|||
new MarkupTagHelperBlock("br", TagMode.StartTagOnly)));
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "p",
|
||||
typeName: "PTagHelper1",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: new[] { "strong" },
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "p",
|
||||
typeName: "PTagHelper2",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: new[] { "br" },
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "strong",
|
||||
typeName: "StrongTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "br",
|
||||
typeName: "BRTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.WithoutEndTag,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = "PTagHelper1",
|
||||
AssemblyName = "SomeAssembly",
|
||||
AllowedChildren = new[] { "strong" }
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = "PTagHelper2",
|
||||
AssemblyName = "SomeAssembly",
|
||||
AllowedChildren = new[] { "br" }
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "strong",
|
||||
TypeName = "StrongTagHelper",
|
||||
AssemblyName = "SomeAssembly"
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "br",
|
||||
TypeName = "BRTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
TagStructure = TagStructure.WithoutEndTag
|
||||
}
|
||||
};
|
||||
var descriptorProvider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -426,36 +394,27 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
|
|||
// Arrange
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "p",
|
||||
typeName: "PTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: allowedChildren,
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "strong",
|
||||
typeName: "StrongTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: allowedChildren,
|
||||
tagStructure: TagStructure.Unspecified,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "br",
|
||||
typeName: "BRTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.WithoutEndTag,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = "PTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
AllowedChildren = allowedChildren
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "strong",
|
||||
TypeName = "StrongTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
AllowedChildren = allowedChildren
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "br",
|
||||
TypeName = "BRTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
TagStructure = TagStructure.WithoutEndTag
|
||||
}
|
||||
};
|
||||
var descriptorProvider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -471,16 +430,13 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
|
|||
var expectedOutput = new MarkupBlock(new MarkupTagHelperBlock("input", TagMode.StartTagOnly));
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.WithoutEndTag,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
TagStructure = TagStructure.WithoutEndTag
|
||||
}
|
||||
};
|
||||
var descriptorProvider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -507,16 +463,13 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
|
|||
var expectedOutput = new MarkupBlock(blockFactory.MarkupTagBlock("</input>"));
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.WithoutEndTag,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
TagStructure = TagStructure.WithoutEndTag
|
||||
}
|
||||
};
|
||||
var descriptorProvider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -544,26 +497,20 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
|
|||
var expectedOutput = new MarkupBlock(new MarkupTagHelperBlock("input", TagMode.StartTagOnly));
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper1",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.WithoutEndTag,
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix: string.Empty,
|
||||
tagName: "input",
|
||||
typeName: "InputTagHelper2",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: TagStructure.NormalOrSelfClosing,
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper1",
|
||||
AssemblyName = "SomeAssembly",
|
||||
TagStructure = TagStructure.WithoutEndTag
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "input",
|
||||
TypeName = "InputTagHelper2",
|
||||
AssemblyName = "SomeAssembly",
|
||||
TagStructure = TagStructure.NormalOrSelfClosing
|
||||
}
|
||||
};
|
||||
var descriptorProvider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -975,24 +922,27 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
|
|||
// Arrange
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
tagName: "p",
|
||||
typeName: "pTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: new[] { "class" }),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "div",
|
||||
typeName: "divTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: new[] { "class", "style" }),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "*",
|
||||
typeName: "catchAllTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: new[] { "catchAll" })
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = "pTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
RequiredAttributes = new[] { "class" }
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "div",
|
||||
TypeName = "divTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
RequiredAttributes = new[] { "class", "style" }
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "*",
|
||||
TypeName = "catchAllTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
RequiredAttributes = new[] { "catchAll" }
|
||||
}
|
||||
};
|
||||
var descriptorProvider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -1235,18 +1185,20 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
|
|||
// Arrange
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
tagName: "p",
|
||||
typeName: "pTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: new[] { "class" }),
|
||||
new TagHelperDescriptor(
|
||||
tagName: "*",
|
||||
typeName: "catchAllTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: new[] { "catchAll" })
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = "pTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
RequiredAttributes = new[] { "class" }
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "*",
|
||||
TypeName = "catchAllTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
RequiredAttributes = new[] { "catchAll" }
|
||||
}
|
||||
};
|
||||
var descriptorProvider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -1443,12 +1395,13 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
|
|||
// Arrange
|
||||
var descriptors = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
tagName: "p",
|
||||
typeName: "pTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new TagHelperAttributeDescriptor[0],
|
||||
requiredAttributes: new[] { "class" })
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = "p",
|
||||
TypeName = "pTagHelper",
|
||||
AssemblyName = "SomeAssembly",
|
||||
RequiredAttributes = new[] { "class" }
|
||||
}
|
||||
};
|
||||
var descriptorProvider = new TagHelperDescriptorProvider(descriptors);
|
||||
|
||||
|
|
@ -1464,78 +1417,65 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
|
|||
var blockFactory = new BlockFactory(factory);
|
||||
var availableDescriptorsColon = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: "th:",
|
||||
tagName: "myth",
|
||||
typeName: "mythTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix: "th:",
|
||||
tagName: "myth2",
|
||||
typeName: "mythTagHelper2",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new []
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
Prefix = "th:",
|
||||
TagName = "myth",
|
||||
TypeName = "mythTagHelper",
|
||||
AssemblyName = "SomeAssembly"
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
Prefix = "th:",
|
||||
TagName = "myth2",
|
||||
TypeName = "mythTagHelper2",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new []
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "bound",
|
||||
propertyName: "Bound",
|
||||
typeName: typeof(bool).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
},
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "bound",
|
||||
PropertyName = "Bound",
|
||||
TypeName = typeof(bool).FullName
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
var availableDescriptorsText = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: "PREFIX",
|
||||
tagName: "myth",
|
||||
typeName: "mythTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor(
|
||||
prefix: "PREFIX",
|
||||
tagName: "myth2",
|
||||
typeName: "mythTagHelper2",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: new []
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
Prefix = "PREFIX",
|
||||
TagName = "myth",
|
||||
TypeName = "mythTagHelper",
|
||||
AssemblyName = "SomeAssembly"
|
||||
},
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
Prefix = "PREFIX",
|
||||
TagName = "myth2",
|
||||
TypeName = "mythTagHelper2",
|
||||
AssemblyName = "SomeAssembly",
|
||||
Attributes = new []
|
||||
{
|
||||
new TagHelperAttributeDescriptor(
|
||||
name: "bound",
|
||||
propertyName: "Bound",
|
||||
typeName: typeof(bool).FullName,
|
||||
isIndexer: false,
|
||||
designTimeDescriptor: null),
|
||||
},
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: null)
|
||||
new TagHelperAttributeDescriptor
|
||||
{
|
||||
Name = "bound",
|
||||
PropertyName = "Bound",
|
||||
TypeName = typeof(bool).FullName
|
||||
},
|
||||
}
|
||||
}
|
||||
};
|
||||
var availableDescriptorsCatchAll = new TagHelperDescriptor[]
|
||||
{
|
||||
new TagHelperDescriptor(
|
||||
prefix: "myth",
|
||||
tagName: "*",
|
||||
typeName: "mythTagHelper",
|
||||
assemblyName: "SomeAssembly",
|
||||
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||
requiredAttributes: Enumerable.Empty<string>(),
|
||||
allowedChildren: null,
|
||||
tagStructure: default(TagStructure),
|
||||
designTimeDescriptor: null),
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
Prefix = "myth",
|
||||
TagName = "*",
|
||||
TypeName = "mythTagHelper",
|
||||
AssemblyName = "SomeAssembly"
|
||||
}
|
||||
};
|
||||
|
||||
// documentContent, expectedOutput, availableDescriptors
|
||||
|
|
|
|||
|
|
@ -44,7 +44,12 @@ namespace Microsoft.AspNet.Razor.Test.TagHelpers
|
|||
foreach (var tagName in tagNames)
|
||||
{
|
||||
descriptors.Add(
|
||||
new TagHelperDescriptor(tagName, tagName + "taghelper", "SomeAssembly"));
|
||||
new TagHelperDescriptor
|
||||
{
|
||||
TagName = tagName,
|
||||
TypeName = tagName + "taghelper",
|
||||
AssemblyName = "SomeAssembly"
|
||||
});
|
||||
}
|
||||
|
||||
return new TagHelperDescriptorProvider(descriptors);
|
||||
|
|
|
|||
Loading…
Reference in New Issue