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