Removed extra IVT from `Microsoft.AspNet.Razor`.
- Added tests to validate `IsStringProperty` on `TagHelperAttributeDescriptor`s. #464
This commit is contained in:
parent
e722f90481
commit
3b5692a5a5
|
|
@ -30,6 +30,7 @@ namespace Microsoft.AspNet.Razor.Test.Internal
|
||||||
string.Equals(descriptorX.Name, descriptorY.Name, StringComparison.Ordinal) &&
|
string.Equals(descriptorX.Name, descriptorY.Name, StringComparison.Ordinal) &&
|
||||||
string.Equals(descriptorX.PropertyName, descriptorY.PropertyName, StringComparison.Ordinal) &&
|
string.Equals(descriptorX.PropertyName, descriptorY.PropertyName, StringComparison.Ordinal) &&
|
||||||
string.Equals(descriptorX.TypeName, descriptorY.TypeName, StringComparison.Ordinal) &&
|
string.Equals(descriptorX.TypeName, descriptorY.TypeName, StringComparison.Ordinal) &&
|
||||||
|
descriptorX.IsStringProperty == descriptorY.IsStringProperty &&
|
||||||
TagHelperAttributeDesignTimeDescriptorComparer.Default.Equals(
|
TagHelperAttributeDesignTimeDescriptorComparer.Default.Equals(
|
||||||
descriptorX.DesignTimeDescriptor,
|
descriptorX.DesignTimeDescriptor,
|
||||||
descriptorY.DesignTimeDescriptor);
|
descriptorY.DesignTimeDescriptor);
|
||||||
|
|
@ -37,13 +38,12 @@ namespace Microsoft.AspNet.Razor.Test.Internal
|
||||||
|
|
||||||
public int GetHashCode(TagHelperAttributeDescriptor descriptor)
|
public int GetHashCode(TagHelperAttributeDescriptor descriptor)
|
||||||
{
|
{
|
||||||
// Ignore IsStringProperty because it is directly inferred from TypeName and thus won't vary the hash
|
|
||||||
// bucket.
|
|
||||||
return HashCodeCombiner.Start()
|
return HashCodeCombiner.Start()
|
||||||
.Add(descriptor.IsIndexer)
|
.Add(descriptor.IsIndexer)
|
||||||
.Add(descriptor.Name, StringComparer.Ordinal)
|
.Add(descriptor.Name, StringComparer.Ordinal)
|
||||||
.Add(descriptor.PropertyName, StringComparer.Ordinal)
|
.Add(descriptor.PropertyName, StringComparer.Ordinal)
|
||||||
.Add(descriptor.TypeName, StringComparer.Ordinal)
|
.Add(descriptor.TypeName, StringComparer.Ordinal)
|
||||||
|
.Add(descriptor.IsStringProperty)
|
||||||
.Add(TagHelperAttributeDesignTimeDescriptorComparer.Default.GetHashCode(
|
.Add(TagHelperAttributeDesignTimeDescriptorComparer.Default.GetHashCode(
|
||||||
descriptor.DesignTimeDescriptor))
|
descriptor.DesignTimeDescriptor))
|
||||||
.CombinedHash;
|
.CombinedHash;
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,4 @@ using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
[assembly: InternalsVisibleTo("Microsoft.AspNet.Razor.Test")]
|
[assembly: InternalsVisibleTo("Microsoft.AspNet.Razor.Test")]
|
||||||
[assembly: InternalsVisibleTo("Microsoft.AspNet.Razor.Runtime.Test")]
|
|
||||||
[assembly: AssemblyMetadata("Serviceable", "True")]
|
[assembly: AssemblyMetadata("Serviceable", "True")]
|
||||||
|
|
|
||||||
|
|
@ -114,19 +114,19 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
true,
|
true,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
tagName: "inherited-editor-browsable",
|
tagName: "inherited-editor-browsable",
|
||||||
typeName: typeof(InheritedEditorBrowsableTagHelper).FullName,
|
typeName: typeof(InheritedEditorBrowsableTagHelper).FullName,
|
||||||
assemblyName: AssemblyName,
|
assemblyName: AssemblyName,
|
||||||
attributes: new[]
|
attributes: new[]
|
||||||
{
|
{
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "property",
|
name: "property",
|
||||||
propertyName: nameof(InheritedEditorBrowsableTagHelper.Property),
|
propertyName: nameof(InheritedEditorBrowsableTagHelper.Property),
|
||||||
typeName: typeof(int).FullName,
|
typeName: typeof(int).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
designTimeDescriptor: null)
|
designTimeDescriptor: null)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ typeof(EditorBrowsableTagHelper), true, new TagHelperDescriptor[0] },
|
{ typeof(EditorBrowsableTagHelper), true, new TagHelperDescriptor[0] },
|
||||||
|
|
@ -135,19 +135,19 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
false,
|
false,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
tagName: "editor-browsable",
|
tagName: "editor-browsable",
|
||||||
typeName: typeof(EditorBrowsableTagHelper).FullName,
|
typeName: typeof(EditorBrowsableTagHelper).FullName,
|
||||||
assemblyName: AssemblyName,
|
assemblyName: AssemblyName,
|
||||||
attributes: new[]
|
attributes: new[]
|
||||||
{
|
{
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "property",
|
name: "property",
|
||||||
propertyName: nameof(EditorBrowsableTagHelper.Property),
|
propertyName: nameof(EditorBrowsableTagHelper.Property),
|
||||||
typeName: typeof(int).FullName,
|
typeName: typeof(int).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
designTimeDescriptor: null)
|
designTimeDescriptor: null)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -155,11 +155,11 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
true,
|
true,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
tagName: "hidden-property-editor-browsable",
|
tagName: "hidden-property-editor-browsable",
|
||||||
typeName: typeof(HiddenPropertyEditorBrowsableTagHelper).FullName,
|
typeName: typeof(HiddenPropertyEditorBrowsableTagHelper).FullName,
|
||||||
assemblyName: AssemblyName,
|
assemblyName: AssemblyName,
|
||||||
attributes: new TagHelperAttributeDescriptor[0])
|
attributes: new TagHelperAttributeDescriptor[0])
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -167,19 +167,19 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
false,
|
false,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
tagName: "hidden-property-editor-browsable",
|
tagName: "hidden-property-editor-browsable",
|
||||||
typeName: typeof(HiddenPropertyEditorBrowsableTagHelper).FullName,
|
typeName: typeof(HiddenPropertyEditorBrowsableTagHelper).FullName,
|
||||||
assemblyName: AssemblyName,
|
assemblyName: AssemblyName,
|
||||||
attributes: new[]
|
attributes: new[]
|
||||||
{
|
{
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "property",
|
name: "property",
|
||||||
propertyName: nameof(HiddenPropertyEditorBrowsableTagHelper.Property),
|
propertyName: nameof(HiddenPropertyEditorBrowsableTagHelper.Property),
|
||||||
typeName: typeof(int).FullName,
|
typeName: typeof(int).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
designTimeDescriptor: null)
|
designTimeDescriptor: null)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -187,7 +187,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
true,
|
true,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
tagName: "overridden-editor-browsable",
|
tagName: "overridden-editor-browsable",
|
||||||
typeName: typeof(OverriddenEditorBrowsableTagHelper).FullName,
|
typeName: typeof(OverriddenEditorBrowsableTagHelper).FullName,
|
||||||
assemblyName: AssemblyName,
|
assemblyName: AssemblyName,
|
||||||
|
|
@ -207,7 +207,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
true,
|
true,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
tagName: "multi-property-editor-browsable",
|
tagName: "multi-property-editor-browsable",
|
||||||
typeName: typeof(MultiPropertyEditorBrowsableTagHelper).FullName,
|
typeName: typeof(MultiPropertyEditorBrowsableTagHelper).FullName,
|
||||||
assemblyName: AssemblyName,
|
assemblyName: AssemblyName,
|
||||||
|
|
@ -227,7 +227,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
false,
|
false,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
tagName: "multi-property-editor-browsable",
|
tagName: "multi-property-editor-browsable",
|
||||||
typeName: typeof(MultiPropertyEditorBrowsableTagHelper).FullName,
|
typeName: typeof(MultiPropertyEditorBrowsableTagHelper).FullName,
|
||||||
assemblyName: AssemblyName,
|
assemblyName: AssemblyName,
|
||||||
|
|
@ -253,7 +253,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
true,
|
true,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
tagName: "overridden-property-editor-browsable",
|
tagName: "overridden-property-editor-browsable",
|
||||||
typeName: typeof(OverriddenPropertyEditorBrowsableTagHelper).FullName,
|
typeName: typeof(OverriddenPropertyEditorBrowsableTagHelper).FullName,
|
||||||
assemblyName: AssemblyName,
|
assemblyName: AssemblyName,
|
||||||
|
|
@ -265,7 +265,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
false,
|
false,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
tagName: "overridden-property-editor-browsable",
|
tagName: "overridden-property-editor-browsable",
|
||||||
typeName: typeof(OverriddenPropertyEditorBrowsableTagHelper).FullName,
|
typeName: typeof(OverriddenPropertyEditorBrowsableTagHelper).FullName,
|
||||||
assemblyName: AssemblyName,
|
assemblyName: AssemblyName,
|
||||||
|
|
@ -292,19 +292,19 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
true,
|
true,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
tagName: "default-editor-browsable",
|
tagName: "default-editor-browsable",
|
||||||
typeName: typeof(DefaultEditorBrowsableTagHelper).FullName,
|
typeName: typeof(DefaultEditorBrowsableTagHelper).FullName,
|
||||||
assemblyName: AssemblyName,
|
assemblyName: AssemblyName,
|
||||||
attributes: new[]
|
attributes: new[]
|
||||||
{
|
{
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "property",
|
name: "property",
|
||||||
propertyName: nameof(DefaultEditorBrowsableTagHelper.Property),
|
propertyName: nameof(DefaultEditorBrowsableTagHelper.Property),
|
||||||
typeName: typeof(int).FullName,
|
typeName: typeof(int).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
designTimeDescriptor: null)
|
designTimeDescriptor: null)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ typeof(MultiEditorBrowsableTagHelper), true, new TagHelperDescriptor[0] }
|
{ typeof(MultiEditorBrowsableTagHelper), true, new TagHelperDescriptor[0] }
|
||||||
|
|
@ -347,7 +347,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
typeof(AttributeTargetingTagHelper),
|
typeof(AttributeTargetingTagHelper),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
TagHelperDescriptorProvider.ElementCatchAllTarget,
|
TagHelperDescriptorProvider.ElementCatchAllTarget,
|
||||||
typeof(AttributeTargetingTagHelper).FullName,
|
typeof(AttributeTargetingTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -359,7 +359,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
typeof(MultiAttributeTargetingTagHelper),
|
typeof(MultiAttributeTargetingTagHelper),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
TagHelperDescriptorProvider.ElementCatchAllTarget,
|
TagHelperDescriptorProvider.ElementCatchAllTarget,
|
||||||
typeof(MultiAttributeTargetingTagHelper).FullName,
|
typeof(MultiAttributeTargetingTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -371,13 +371,13 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
typeof(MultiAttributeAttributeTargetingTagHelper),
|
typeof(MultiAttributeAttributeTargetingTagHelper),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
TagHelperDescriptorProvider.ElementCatchAllTarget,
|
TagHelperDescriptorProvider.ElementCatchAllTarget,
|
||||||
typeof(MultiAttributeAttributeTargetingTagHelper).FullName,
|
typeof(MultiAttributeAttributeTargetingTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
attributes,
|
attributes,
|
||||||
requiredAttributes: new[] { "custom" }),
|
requiredAttributes: new[] { "custom" }),
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
TagHelperDescriptorProvider.ElementCatchAllTarget,
|
TagHelperDescriptorProvider.ElementCatchAllTarget,
|
||||||
typeof(MultiAttributeAttributeTargetingTagHelper).FullName,
|
typeof(MultiAttributeAttributeTargetingTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -389,7 +389,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
typeof(InheritedAttributeTargetingTagHelper),
|
typeof(InheritedAttributeTargetingTagHelper),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
TagHelperDescriptorProvider.ElementCatchAllTarget,
|
TagHelperDescriptorProvider.ElementCatchAllTarget,
|
||||||
typeof(InheritedAttributeTargetingTagHelper).FullName,
|
typeof(InheritedAttributeTargetingTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -401,7 +401,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
typeof(RequiredAttributeTagHelper),
|
typeof(RequiredAttributeTagHelper),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"input",
|
"input",
|
||||||
typeof(RequiredAttributeTagHelper).FullName,
|
typeof(RequiredAttributeTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -413,7 +413,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
typeof(InheritedRequiredAttributeTagHelper),
|
typeof(InheritedRequiredAttributeTagHelper),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"div",
|
"div",
|
||||||
typeof(InheritedRequiredAttributeTagHelper).FullName,
|
typeof(InheritedRequiredAttributeTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -425,13 +425,13 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
typeof(MultiAttributeRequiredAttributeTagHelper),
|
typeof(MultiAttributeRequiredAttributeTagHelper),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"div",
|
"div",
|
||||||
typeof(MultiAttributeRequiredAttributeTagHelper).FullName,
|
typeof(MultiAttributeRequiredAttributeTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
attributes,
|
attributes,
|
||||||
requiredAttributes: new[] { "class" }),
|
requiredAttributes: new[] { "class" }),
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"input",
|
"input",
|
||||||
typeof(MultiAttributeRequiredAttributeTagHelper).FullName,
|
typeof(MultiAttributeRequiredAttributeTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -443,13 +443,13 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
typeof(MultiAttributeSameTagRequiredAttributeTagHelper),
|
typeof(MultiAttributeSameTagRequiredAttributeTagHelper),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"input",
|
"input",
|
||||||
typeof(MultiAttributeSameTagRequiredAttributeTagHelper).FullName,
|
typeof(MultiAttributeSameTagRequiredAttributeTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
attributes,
|
attributes,
|
||||||
requiredAttributes: new[] { "style" }),
|
requiredAttributes: new[] { "style" }),
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"input",
|
"input",
|
||||||
typeof(MultiAttributeSameTagRequiredAttributeTagHelper).FullName,
|
typeof(MultiAttributeSameTagRequiredAttributeTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -461,7 +461,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
typeof(MultiRequiredAttributeTagHelper),
|
typeof(MultiRequiredAttributeTagHelper),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"input",
|
"input",
|
||||||
typeof(MultiRequiredAttributeTagHelper).FullName,
|
typeof(MultiRequiredAttributeTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -473,13 +473,13 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
typeof(MultiTagMultiRequiredAttributeTagHelper),
|
typeof(MultiTagMultiRequiredAttributeTagHelper),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"div",
|
"div",
|
||||||
typeof(MultiTagMultiRequiredAttributeTagHelper).FullName,
|
typeof(MultiTagMultiRequiredAttributeTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
attributes,
|
attributes,
|
||||||
requiredAttributes: new[] { "class", "style" }),
|
requiredAttributes: new[] { "class", "style" }),
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"input",
|
"input",
|
||||||
typeof(MultiTagMultiRequiredAttributeTagHelper).FullName,
|
typeof(MultiTagMultiRequiredAttributeTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -491,7 +491,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
typeof(AttributeWildcardTargetingTagHelper),
|
typeof(AttributeWildcardTargetingTagHelper),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
TagHelperDescriptorProvider.ElementCatchAllTarget,
|
TagHelperDescriptorProvider.ElementCatchAllTarget,
|
||||||
typeof(AttributeWildcardTargetingTagHelper).FullName,
|
typeof(AttributeWildcardTargetingTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -503,7 +503,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
typeof(MultiAttributeWildcardTargetingTagHelper),
|
typeof(MultiAttributeWildcardTargetingTagHelper),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
TagHelperDescriptorProvider.ElementCatchAllTarget,
|
TagHelperDescriptorProvider.ElementCatchAllTarget,
|
||||||
typeof(MultiAttributeWildcardTargetingTagHelper).FullName,
|
typeof(MultiAttributeWildcardTargetingTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -599,14 +599,14 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
nameof(OverriddenAttributeTagHelper.ValidAttribute2));
|
nameof(OverriddenAttributeTagHelper.ValidAttribute2));
|
||||||
var expectedDescriptors = new[]
|
var expectedDescriptors = new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"overridden-attribute",
|
"overridden-attribute",
|
||||||
typeof(OverriddenAttributeTagHelper).FullName,
|
typeof(OverriddenAttributeTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperAttributeDescriptor("SomethingElse", validProperty1),
|
CreateTagHelperAttributeDescriptor("SomethingElse", validProperty1),
|
||||||
new TagHelperAttributeDescriptor("Something-Else", validProperty2)
|
CreateTagHelperAttributeDescriptor("Something-Else", validProperty2)
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -633,14 +633,14 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
nameof(InheritedOverriddenAttributeTagHelper.ValidAttribute2));
|
nameof(InheritedOverriddenAttributeTagHelper.ValidAttribute2));
|
||||||
var expectedDescriptors = new[]
|
var expectedDescriptors = new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"inherited-overridden-attribute",
|
"inherited-overridden-attribute",
|
||||||
typeof(InheritedOverriddenAttributeTagHelper).FullName,
|
typeof(InheritedOverriddenAttributeTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperAttributeDescriptor("valid-attribute1", validProperty1),
|
CreateTagHelperAttributeDescriptor("valid-attribute1", validProperty1),
|
||||||
new TagHelperAttributeDescriptor("Something-Else", validProperty2)
|
CreateTagHelperAttributeDescriptor("Something-Else", validProperty2)
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -667,14 +667,14 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
nameof(InheritedNotOverriddenAttributeTagHelper.ValidAttribute2));
|
nameof(InheritedNotOverriddenAttributeTagHelper.ValidAttribute2));
|
||||||
var expectedDescriptors = new[]
|
var expectedDescriptors = new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"inherited-not-overridden-attribute",
|
"inherited-not-overridden-attribute",
|
||||||
typeof(InheritedNotOverriddenAttributeTagHelper).FullName,
|
typeof(InheritedNotOverriddenAttributeTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperAttributeDescriptor("SomethingElse", validProperty1),
|
CreateTagHelperAttributeDescriptor("SomethingElse", validProperty1),
|
||||||
new TagHelperAttributeDescriptor("Something-Else", validProperty2)
|
CreateTagHelperAttributeDescriptor("Something-Else", validProperty2)
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -697,7 +697,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
var errorSink = new ErrorSink();
|
var errorSink = new ErrorSink();
|
||||||
var objectAssemblyName = typeof(object).GetTypeInfo().Assembly.GetName().Name;
|
var objectAssemblyName = typeof(object).GetTypeInfo().Assembly.GetName().Name;
|
||||||
var expectedDescriptor =
|
var expectedDescriptor =
|
||||||
new TagHelperDescriptor("object", "System.Object", objectAssemblyName);
|
CreateTagHelperDescriptor("object", "System.Object", objectAssemblyName);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var descriptors = TagHelperDescriptorFactory.CreateDescriptors(
|
var descriptors = TagHelperDescriptorFactory.CreateDescriptors(
|
||||||
|
|
@ -717,9 +717,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var errorSink = new ErrorSink();
|
var errorSink = new ErrorSink();
|
||||||
|
var expectedDescriptor = CreateTagHelperDescriptor(
|
||||||
// Also confirm isStringProperty is calculated correctly.
|
|
||||||
var expectedDescriptor = new TagHelperDescriptor(
|
|
||||||
"inherited-single-attribute",
|
"inherited-single-attribute",
|
||||||
typeof(InheritedSingleAttributeTagHelper).FullName,
|
typeof(InheritedSingleAttributeTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -730,7 +728,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
nameof(InheritedSingleAttributeTagHelper.IntAttribute),
|
nameof(InheritedSingleAttributeTagHelper.IntAttribute),
|
||||||
typeof(int).FullName,
|
typeof(int).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
isStringProperty: false,
|
|
||||||
designTimeDescriptor: null)
|
designTimeDescriptor: null)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -753,13 +750,13 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
// Arrange
|
// Arrange
|
||||||
var errorSink = new ErrorSink();
|
var errorSink = new ErrorSink();
|
||||||
var intProperty = typeof(SingleAttributeTagHelper).GetProperty(nameof(SingleAttributeTagHelper.IntAttribute));
|
var intProperty = typeof(SingleAttributeTagHelper).GetProperty(nameof(SingleAttributeTagHelper.IntAttribute));
|
||||||
var expectedDescriptor = new TagHelperDescriptor(
|
var expectedDescriptor = CreateTagHelperDescriptor(
|
||||||
"single-attribute",
|
"single-attribute",
|
||||||
typeof(SingleAttributeTagHelper).FullName,
|
typeof(SingleAttributeTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperAttributeDescriptor("int-attribute", intProperty)
|
CreateTagHelperAttributeDescriptor("int-attribute", intProperty)
|
||||||
});
|
});
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -782,13 +779,13 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
var errorSink = new ErrorSink();
|
var errorSink = new ErrorSink();
|
||||||
var validProperty = typeof(MissingAccessorTagHelper).GetProperty(
|
var validProperty = typeof(MissingAccessorTagHelper).GetProperty(
|
||||||
nameof(MissingAccessorTagHelper.ValidAttribute));
|
nameof(MissingAccessorTagHelper.ValidAttribute));
|
||||||
var expectedDescriptor = new TagHelperDescriptor(
|
var expectedDescriptor = CreateTagHelperDescriptor(
|
||||||
"missing-accessor",
|
"missing-accessor",
|
||||||
typeof(MissingAccessorTagHelper).FullName,
|
typeof(MissingAccessorTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperAttributeDescriptor("valid-attribute", validProperty)
|
CreateTagHelperAttributeDescriptor("valid-attribute", validProperty)
|
||||||
});
|
});
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -811,13 +808,13 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
var errorSink = new ErrorSink();
|
var errorSink = new ErrorSink();
|
||||||
var validProperty = typeof(NonPublicAccessorTagHelper).GetProperty(
|
var validProperty = typeof(NonPublicAccessorTagHelper).GetProperty(
|
||||||
nameof(NonPublicAccessorTagHelper.ValidAttribute));
|
nameof(NonPublicAccessorTagHelper.ValidAttribute));
|
||||||
var expectedDescriptor = new TagHelperDescriptor(
|
var expectedDescriptor = CreateTagHelperDescriptor(
|
||||||
"non-public-accessor",
|
"non-public-accessor",
|
||||||
typeof(NonPublicAccessorTagHelper).FullName,
|
typeof(NonPublicAccessorTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperAttributeDescriptor("valid-attribute", validProperty)
|
CreateTagHelperAttributeDescriptor("valid-attribute", validProperty)
|
||||||
});
|
});
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -838,9 +835,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var errorSink = new ErrorSink();
|
var errorSink = new ErrorSink();
|
||||||
|
var expectedDescriptor = CreateTagHelperDescriptor(
|
||||||
// Also confirm isStringProperty is calculated correctly.
|
|
||||||
var expectedDescriptor = new TagHelperDescriptor(
|
|
||||||
"not-bound-attribute",
|
"not-bound-attribute",
|
||||||
typeof(NotBoundAttributeTagHelper).FullName,
|
typeof(NotBoundAttributeTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -851,7 +846,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
nameof(NotBoundAttributeTagHelper.BoundProperty),
|
nameof(NotBoundAttributeTagHelper.BoundProperty),
|
||||||
typeof(object).FullName,
|
typeof(object).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
isStringProperty: false,
|
|
||||||
designTimeDescriptor: null)
|
designTimeDescriptor: null)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -891,11 +885,9 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var errorSink = new ErrorSink();
|
var errorSink = new ErrorSink();
|
||||||
|
|
||||||
// Also confirm isStringProperty is calculated correctly.
|
|
||||||
var expectedDescriptors = new[]
|
var expectedDescriptors = new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"div",
|
"div",
|
||||||
typeof(MultiTagTagHelper).FullName,
|
typeof(MultiTagTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -906,10 +898,9 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
nameof(MultiTagTagHelper.ValidAttribute),
|
nameof(MultiTagTagHelper.ValidAttribute),
|
||||||
typeof(string).FullName,
|
typeof(string).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
isStringProperty: true,
|
|
||||||
designTimeDescriptor: null)
|
designTimeDescriptor: null)
|
||||||
}),
|
}),
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"p",
|
"p",
|
||||||
typeof(MultiTagTagHelper).FullName,
|
typeof(MultiTagTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
|
|
@ -920,7 +911,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
nameof(MultiTagTagHelper.ValidAttribute),
|
nameof(MultiTagTagHelper.ValidAttribute),
|
||||||
typeof(string).FullName,
|
typeof(string).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
isStringProperty: true,
|
|
||||||
designTimeDescriptor: null)
|
designTimeDescriptor: null)
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
@ -948,13 +938,13 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
// Arrange
|
// Arrange
|
||||||
var errorSink = new ErrorSink();
|
var errorSink = new ErrorSink();
|
||||||
var validProp = typeof(InheritedMultiTagTagHelper).GetProperty(nameof(InheritedMultiTagTagHelper.ValidAttribute));
|
var validProp = typeof(InheritedMultiTagTagHelper).GetProperty(nameof(InheritedMultiTagTagHelper.ValidAttribute));
|
||||||
var expectedDescriptor = new TagHelperDescriptor(
|
var expectedDescriptor = CreateTagHelperDescriptor(
|
||||||
"inherited-multi-tag",
|
"inherited-multi-tag",
|
||||||
typeof(InheritedMultiTagTagHelper).FullName,
|
typeof(InheritedMultiTagTagHelper).FullName,
|
||||||
AssemblyName,
|
AssemblyName,
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperAttributeDescriptor("valid-attribute", validProp)
|
CreateTagHelperAttributeDescriptor("valid-attribute", validProp)
|
||||||
});
|
});
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -977,11 +967,11 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
var errorSink = new ErrorSink();
|
var errorSink = new ErrorSink();
|
||||||
var expectedDescriptors = new[]
|
var expectedDescriptors = new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"div",
|
"div",
|
||||||
typeof(DuplicateTagNameTagHelper).FullName,
|
typeof(DuplicateTagNameTagHelper).FullName,
|
||||||
AssemblyName),
|
AssemblyName),
|
||||||
new TagHelperDescriptor(
|
CreateTagHelperDescriptor(
|
||||||
"p",
|
"p",
|
||||||
typeof(DuplicateTagNameTagHelper).FullName,
|
typeof(DuplicateTagNameTagHelper).FullName,
|
||||||
AssemblyName)
|
AssemblyName)
|
||||||
|
|
@ -1011,9 +1001,10 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
var errorSink = new ErrorSink();
|
var errorSink = new ErrorSink();
|
||||||
var expectedDescriptors = new[]
|
var expectedDescriptors = new[]
|
||||||
{
|
{
|
||||||
new TagHelperDescriptor("data-condition",
|
CreateTagHelperDescriptor(
|
||||||
typeof(OverrideNameTagHelper).FullName,
|
"data-condition",
|
||||||
AssemblyName),
|
typeof(OverrideNameTagHelper).FullName,
|
||||||
|
AssemblyName),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -1141,7 +1132,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
typeof(InvalidBoundAttributeWithValid),
|
typeof(InvalidBoundAttributeWithValid),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperAttributeDescriptor(
|
CreateTagHelperAttributeDescriptor(
|
||||||
"int-attribute",
|
"int-attribute",
|
||||||
typeof(InvalidBoundAttributeWithValid)
|
typeof(InvalidBoundAttributeWithValid)
|
||||||
.GetProperty(nameof(InvalidBoundAttributeWithValid.IntAttribute)))
|
.GetProperty(nameof(InvalidBoundAttributeWithValid.IntAttribute)))
|
||||||
|
|
@ -1159,7 +1150,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
typeof(OverriddenInvalidBoundAttributeWithValid),
|
typeof(OverriddenInvalidBoundAttributeWithValid),
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
new TagHelperAttributeDescriptor(
|
CreateTagHelperAttributeDescriptor(
|
||||||
"valid-something",
|
"valid-something",
|
||||||
typeof(OverriddenInvalidBoundAttributeWithValid)
|
typeof(OverriddenInvalidBoundAttributeWithValid)
|
||||||
.GetProperty(nameof(OverriddenInvalidBoundAttributeWithValid.DataSomething)))
|
.GetProperty(nameof(OverriddenInvalidBoundAttributeWithValid.DataSomething)))
|
||||||
|
|
@ -1253,14 +1244,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
propertyName: nameof(DefaultValidHtmlAttributePrefix.DictionaryProperty),
|
propertyName: nameof(DefaultValidHtmlAttributePrefix.DictionaryProperty),
|
||||||
typeName: typeof(IDictionary<string, string>).FullName,
|
typeName: typeof(IDictionary<string, string>).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
isStringProperty: false,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "dictionary-property-",
|
name: "dictionary-property-",
|
||||||
propertyName: nameof(DefaultValidHtmlAttributePrefix.DictionaryProperty),
|
propertyName: nameof(DefaultValidHtmlAttributePrefix.DictionaryProperty),
|
||||||
typeName: typeof(string).FullName,
|
typeName: typeof(string).FullName,
|
||||||
isIndexer: true,
|
isIndexer: true,
|
||||||
isStringProperty: true,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
},
|
},
|
||||||
new string[0]
|
new string[0]
|
||||||
|
|
@ -1274,14 +1263,12 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
propertyName: nameof(SingleValidHtmlAttributePrefix.DictionaryProperty),
|
propertyName: nameof(SingleValidHtmlAttributePrefix.DictionaryProperty),
|
||||||
typeName: typeof(IDictionary<string, string>).FullName,
|
typeName: typeof(IDictionary<string, string>).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
isStringProperty: false,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "valid-name-",
|
name: "valid-name-",
|
||||||
propertyName: nameof(SingleValidHtmlAttributePrefix.DictionaryProperty),
|
propertyName: nameof(SingleValidHtmlAttributePrefix.DictionaryProperty),
|
||||||
typeName: typeof(string).FullName,
|
typeName: typeof(string).FullName,
|
||||||
isIndexer: true,
|
isIndexer: true,
|
||||||
isStringProperty: true,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
},
|
},
|
||||||
new string[0]
|
new string[0]
|
||||||
|
|
@ -1295,91 +1282,78 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionaryProperty),
|
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionaryProperty),
|
||||||
typeName: typeof(Dictionary<string, object>).FullName,
|
typeName: typeof(Dictionary<string, object>).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
isStringProperty: false,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "valid-name2",
|
name: "valid-name2",
|
||||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionarySubclassProperty),
|
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionarySubclassProperty),
|
||||||
typeName: typeof(DictionarySubclass).FullName,
|
typeName: typeof(DictionarySubclass).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
isStringProperty: false,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "valid-name3",
|
name: "valid-name3",
|
||||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionaryWithoutParameterlessConstructorProperty),
|
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionaryWithoutParameterlessConstructorProperty),
|
||||||
typeName: typeof(DictionaryWithoutParameterlessConstructor).FullName,
|
typeName: typeof(DictionaryWithoutParameterlessConstructor).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
isStringProperty: false,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "valid-name4",
|
name: "valid-name4",
|
||||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.GenericDictionarySubclassProperty),
|
propertyName: nameof(MultipleValidHtmlAttributePrefix.GenericDictionarySubclassProperty),
|
||||||
typeName: typeof(GenericDictionarySubclass<object>).FullName,
|
typeName: typeof(GenericDictionarySubclass<object>).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
isStringProperty: false,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "valid-name5",
|
name: "valid-name5",
|
||||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.SortedDictionaryProperty),
|
propertyName: nameof(MultipleValidHtmlAttributePrefix.SortedDictionaryProperty),
|
||||||
typeName: typeof(SortedDictionary<string, int>).FullName,
|
typeName: typeof(SortedDictionary<string, int>).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
isStringProperty: false,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "valid-name6",
|
name: "valid-name6",
|
||||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.StringProperty),
|
propertyName: nameof(MultipleValidHtmlAttributePrefix.StringProperty),
|
||||||
typeName: typeof(string).FullName,
|
typeName: typeof(string).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
isStringProperty: true,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "valid-prefix1-",
|
name: "valid-prefix1-",
|
||||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionaryProperty),
|
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionaryProperty),
|
||||||
typeName: typeof(object).FullName,
|
typeName: typeof(object).FullName,
|
||||||
isIndexer: true,
|
isIndexer: true,
|
||||||
isStringProperty: false,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "valid-prefix2-",
|
name: "valid-prefix2-",
|
||||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionarySubclassProperty),
|
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionarySubclassProperty),
|
||||||
typeName: typeof(string).FullName,
|
typeName: typeof(string).FullName,
|
||||||
isIndexer: true,
|
isIndexer: true,
|
||||||
isStringProperty: true,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "valid-prefix3-",
|
name: "valid-prefix3-",
|
||||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionaryWithoutParameterlessConstructorProperty),
|
propertyName: nameof(MultipleValidHtmlAttributePrefix.DictionaryWithoutParameterlessConstructorProperty),
|
||||||
typeName: typeof(string).FullName,
|
typeName: typeof(string).FullName,
|
||||||
isIndexer: true,
|
isIndexer: true,
|
||||||
isStringProperty: true,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "valid-prefix4-",
|
name: "valid-prefix4-",
|
||||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.GenericDictionarySubclassProperty),
|
propertyName: nameof(MultipleValidHtmlAttributePrefix.GenericDictionarySubclassProperty),
|
||||||
typeName: typeof(object).FullName,
|
typeName: typeof(object).FullName,
|
||||||
isIndexer: true,
|
isIndexer: true,
|
||||||
isStringProperty: false,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "valid-prefix5-",
|
name: "valid-prefix5-",
|
||||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.SortedDictionaryProperty),
|
propertyName: nameof(MultipleValidHtmlAttributePrefix.SortedDictionaryProperty),
|
||||||
typeName: typeof(int).FullName,
|
typeName: typeof(int).FullName,
|
||||||
isIndexer: true,
|
isIndexer: true,
|
||||||
isStringProperty: false,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "get-only-dictionary-property-",
|
name: "get-only-dictionary-property-",
|
||||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.GetOnlyDictionaryProperty),
|
propertyName: nameof(MultipleValidHtmlAttributePrefix.GetOnlyDictionaryProperty),
|
||||||
typeName: typeof(int).FullName,
|
typeName: typeof(int).FullName,
|
||||||
isIndexer: true,
|
isIndexer: true,
|
||||||
isStringProperty: false,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
new TagHelperAttributeDescriptor(
|
new TagHelperAttributeDescriptor(
|
||||||
name: "valid-prefix6",
|
name: "valid-prefix6",
|
||||||
propertyName: nameof(MultipleValidHtmlAttributePrefix.GetOnlyDictionaryPropertyWithAttributePrefix),
|
propertyName: nameof(MultipleValidHtmlAttributePrefix.GetOnlyDictionaryPropertyWithAttributePrefix),
|
||||||
typeName: typeof(string).FullName,
|
typeName: typeof(string).FullName,
|
||||||
isIndexer: true,
|
isIndexer: true,
|
||||||
isStringProperty: true,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
},
|
},
|
||||||
new string[0]
|
new string[0]
|
||||||
|
|
@ -1403,7 +1377,6 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
propertyName: nameof(MultipleInvalidHtmlAttributePrefix.LongProperty),
|
propertyName: nameof(MultipleInvalidHtmlAttributePrefix.LongProperty),
|
||||||
typeName: typeof(long).FullName,
|
typeName: typeof(long).FullName,
|
||||||
isIndexer: false,
|
isIndexer: false,
|
||||||
isStringProperty: false,
|
|
||||||
designTimeDescriptor: null),
|
designTimeDescriptor: null),
|
||||||
},
|
},
|
||||||
new[]
|
new[]
|
||||||
|
|
@ -1883,6 +1856,35 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static TagHelperDescriptor CreateTagHelperDescriptor(
|
||||||
|
string tagName,
|
||||||
|
string typeName,
|
||||||
|
string assemblyName,
|
||||||
|
IEnumerable<TagHelperAttributeDescriptor> attributes = null,
|
||||||
|
IEnumerable<string> requiredAttributes = null)
|
||||||
|
{
|
||||||
|
return new TagHelperDescriptor(
|
||||||
|
prefix: string.Empty,
|
||||||
|
tagName: tagName,
|
||||||
|
typeName: typeName,
|
||||||
|
assemblyName: assemblyName,
|
||||||
|
attributes: attributes ?? Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||||
|
requiredAttributes: requiredAttributes ?? Enumerable.Empty<string>(),
|
||||||
|
designTimeDescriptor: null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static TagHelperAttributeDescriptor CreateTagHelperAttributeDescriptor(
|
||||||
|
string name,
|
||||||
|
PropertyInfo propertyInfo)
|
||||||
|
{
|
||||||
|
return new TagHelperAttributeDescriptor(
|
||||||
|
name,
|
||||||
|
propertyInfo.Name,
|
||||||
|
propertyInfo.PropertyType.FullName,
|
||||||
|
isIndexer: false,
|
||||||
|
designTimeDescriptor: null);
|
||||||
|
}
|
||||||
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Always)]
|
[EditorBrowsable(EditorBrowsableState.Always)]
|
||||||
private class DefaultEditorBrowsableTagHelper : TagHelper
|
private class DefaultEditorBrowsableTagHelper : TagHelper
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -25,9 +25,14 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return new TagHelperDescriptor("valid_plain",
|
return new TagHelperDescriptor(
|
||||||
Valid_PlainTagHelperType.FullName,
|
prefix: string.Empty,
|
||||||
AssemblyName);
|
tagName: "valid_plain",
|
||||||
|
typeName: Valid_PlainTagHelperType.FullName,
|
||||||
|
assemblyName: AssemblyName,
|
||||||
|
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||||
|
requiredAttributes: Enumerable.Empty<string>(),
|
||||||
|
designTimeDescriptor: null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -35,9 +40,14 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return new TagHelperDescriptor("valid_inherited",
|
return new TagHelperDescriptor(
|
||||||
Valid_InheritedTagHelperType.FullName,
|
prefix: string.Empty,
|
||||||
AssemblyName);
|
tagName: "valid_inherited",
|
||||||
|
typeName: Valid_InheritedTagHelperType.FullName,
|
||||||
|
assemblyName: AssemblyName,
|
||||||
|
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||||
|
requiredAttributes: Enumerable.Empty<string>(),
|
||||||
|
designTimeDescriptor: null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -365,8 +375,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
defaultAssemblyLookups,
|
defaultAssemblyLookups,
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("", TagHelperDirectiveType.TagHelperPrefix),
|
CreateTagHelperDirectiveDescriptor("", TagHelperDirectiveType.TagHelperPrefix),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*Plain*, " + assemblyA,
|
"*Plain*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
},
|
},
|
||||||
|
|
@ -376,8 +386,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
defaultAssemblyLookups,
|
defaultAssemblyLookups,
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("th:", TagHelperDirectiveType.TagHelperPrefix),
|
CreateTagHelperDirectiveDescriptor("th:", TagHelperDirectiveType.TagHelperPrefix),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*Plain*, " + assemblyA,
|
"*Plain*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
},
|
},
|
||||||
|
|
@ -387,10 +397,10 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
defaultAssemblyLookups,
|
defaultAssemblyLookups,
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*Plain*, " + assemblyA,
|
"*Plain*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("th:", TagHelperDirectiveType.TagHelperPrefix)
|
CreateTagHelperDirectiveDescriptor("th:", TagHelperDirectiveType.TagHelperPrefix)
|
||||||
},
|
},
|
||||||
new [] { CreatePrefixedValidPlainDescriptor("th:") }
|
new [] { CreatePrefixedValidPlainDescriptor("th:") }
|
||||||
},
|
},
|
||||||
|
|
@ -398,8 +408,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
defaultAssemblyLookups,
|
defaultAssemblyLookups,
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("th:", TagHelperDirectiveType.TagHelperPrefix)
|
CreateTagHelperDirectiveDescriptor("th:", TagHelperDirectiveType.TagHelperPrefix)
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
|
|
@ -411,11 +421,11 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
defaultAssemblyLookups,
|
defaultAssemblyLookups,
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("th-", TagHelperDirectiveType.TagHelperPrefix),
|
CreateTagHelperDirectiveDescriptor("th-", TagHelperDirectiveType.TagHelperPrefix),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*Plain*, " + assemblyA,
|
"*Plain*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*Inherited*, " + assemblyA,
|
"*Inherited*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper)
|
TagHelperDirectiveType.AddTagHelper)
|
||||||
},
|
},
|
||||||
|
|
@ -429,11 +439,11 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
defaultAssemblyLookups,
|
defaultAssemblyLookups,
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("", TagHelperDirectiveType.TagHelperPrefix),
|
CreateTagHelperDirectiveDescriptor("", TagHelperDirectiveType.TagHelperPrefix),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*Plain*, " + assemblyA,
|
"*Plain*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*Inherited*, " + assemblyA,
|
"*Inherited*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper)
|
TagHelperDirectiveType.AddTagHelper)
|
||||||
},
|
},
|
||||||
|
|
@ -443,13 +453,13 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
defaultAssemblyLookups,
|
defaultAssemblyLookups,
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*Plain*, " + assemblyA,
|
"*Plain*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*Inherited*, " + assemblyA,
|
"*Inherited*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("th:", TagHelperDirectiveType.TagHelperPrefix)
|
CreateTagHelperDirectiveDescriptor("th:", TagHelperDirectiveType.TagHelperPrefix)
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
|
|
@ -461,11 +471,11 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
defaultAssemblyLookups,
|
defaultAssemblyLookups,
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("th", TagHelperDirectiveType.TagHelperPrefix),
|
CreateTagHelperDirectiveDescriptor("th", TagHelperDirectiveType.TagHelperPrefix),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*, " + assemblyA,
|
"*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*, " + assemblyB,
|
"*, " + assemblyB,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
},
|
},
|
||||||
|
|
@ -480,11 +490,11 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
defaultAssemblyLookups,
|
defaultAssemblyLookups,
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*, " + assemblyA,
|
"*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("th:-", TagHelperDirectiveType.TagHelperPrefix),
|
CreateTagHelperDirectiveDescriptor("th:-", TagHelperDirectiveType.TagHelperPrefix),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*, " + assemblyB,
|
"*, " + assemblyB,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
},
|
},
|
||||||
|
|
@ -534,7 +544,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagHelperDescriptorResolver = new AssemblyCheckingTagHelperDescriptorResolver();
|
var tagHelperDescriptorResolver = new AssemblyCheckingTagHelperDescriptorResolver();
|
||||||
var context = new TagHelperDescriptorResolutionContext(
|
var context = new TagHelperDescriptorResolutionContext(
|
||||||
new[] { new TagHelperDirectiveDescriptor(lookupText, TagHelperDirectiveType.AddTagHelper) },
|
new[] { CreateTagHelperDirectiveDescriptor(lookupText, TagHelperDirectiveType.AddTagHelper) },
|
||||||
new ErrorSink());
|
new ErrorSink());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -556,9 +566,14 @@ 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("string",
|
new TagHelperDescriptor(
|
||||||
"System.String",
|
prefix: string.Empty,
|
||||||
assemblyB);
|
tagName: "string",
|
||||||
|
typeName: "System.String",
|
||||||
|
assemblyName: assemblyB,
|
||||||
|
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||||
|
requiredAttributes: Enumerable.Empty<string>(),
|
||||||
|
designTimeDescriptor: null);
|
||||||
|
|
||||||
return new TheoryData<Dictionary<string, IEnumerable<Type>>, // descriptorAssemblyLookups
|
return new TheoryData<Dictionary<string, IEnumerable<Type>>, // descriptorAssemblyLookups
|
||||||
IEnumerable<TagHelperDirectiveDescriptor>, // directiveDescriptors
|
IEnumerable<TagHelperDirectiveDescriptor>, // directiveDescriptors
|
||||||
|
|
@ -571,7 +586,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper)
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper)
|
||||||
},
|
},
|
||||||
new [] { Valid_PlainTagHelperDescriptor }
|
new [] { Valid_PlainTagHelperDescriptor }
|
||||||
},
|
},
|
||||||
|
|
@ -583,8 +598,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyB, TagHelperDirectiveType.AddTagHelper)
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyB, TagHelperDirectiveType.AddTagHelper)
|
||||||
},
|
},
|
||||||
new [] { Valid_PlainTagHelperDescriptor, stringTagHelperDescriptor }
|
new [] { Valid_PlainTagHelperDescriptor, stringTagHelperDescriptor }
|
||||||
},
|
},
|
||||||
|
|
@ -596,8 +611,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
||||||
},
|
},
|
||||||
new [] { Valid_PlainTagHelperDescriptor }
|
new [] { Valid_PlainTagHelperDescriptor }
|
||||||
},
|
},
|
||||||
|
|
@ -609,9 +624,9 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper)
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper)
|
||||||
},
|
},
|
||||||
new [] { stringTagHelperDescriptor }
|
new [] { stringTagHelperDescriptor }
|
||||||
},
|
},
|
||||||
|
|
@ -622,10 +637,10 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
Valid_PlainTagHelperType.FullName + ", " + assemblyA,
|
Valid_PlainTagHelperType.FullName + ", " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper)
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper)
|
||||||
},
|
},
|
||||||
new [] { Valid_PlainTagHelperDescriptor, Valid_InheritedTagHelperDescriptor }
|
new [] { Valid_PlainTagHelperDescriptor, Valid_InheritedTagHelperDescriptor }
|
||||||
},
|
},
|
||||||
|
|
@ -636,8 +651,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
Valid_PlainTagHelperType.FullName + ", " + assemblyA,
|
Valid_PlainTagHelperType.FullName + ", " + assemblyA,
|
||||||
TagHelperDirectiveType.RemoveTagHelper)
|
TagHelperDirectiveType.RemoveTagHelper)
|
||||||
},
|
},
|
||||||
|
|
@ -650,11 +665,11 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
Valid_PlainTagHelperType.FullName + ", " + assemblyA,
|
Valid_PlainTagHelperType.FullName + ", " + assemblyA,
|
||||||
TagHelperDirectiveType.RemoveTagHelper),
|
TagHelperDirectiveType.RemoveTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper)
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper)
|
||||||
},
|
},
|
||||||
new [] { Valid_InheritedTagHelperDescriptor, Valid_PlainTagHelperDescriptor }
|
new [] { Valid_InheritedTagHelperDescriptor, Valid_PlainTagHelperDescriptor }
|
||||||
},
|
},
|
||||||
|
|
@ -665,8 +680,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
},
|
},
|
||||||
new [] { Valid_InheritedTagHelperDescriptor, Valid_PlainTagHelperDescriptor }
|
new [] { Valid_InheritedTagHelperDescriptor, Valid_PlainTagHelperDescriptor }
|
||||||
},
|
},
|
||||||
|
|
@ -677,7 +692,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
Valid_PlainTagHelperType.Namespace + ".Valid_Plain*, " + assemblyA,
|
Valid_PlainTagHelperType.Namespace + ".Valid_Plain*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
},
|
},
|
||||||
|
|
@ -690,7 +705,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
Valid_PlainTagHelperType.Namespace + ".Valid?Plain*, " + assemblyA,
|
Valid_PlainTagHelperType.Namespace + ".Valid?Plain*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
},
|
},
|
||||||
|
|
@ -703,7 +718,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*Plain*, " + assemblyA,
|
"*Plain*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
},
|
},
|
||||||
|
|
@ -716,7 +731,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*Plain?*, " + assemblyA,
|
"*Plain?*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
},
|
},
|
||||||
|
|
@ -729,7 +744,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
Valid_PlainTagHelperType.Namespace + "*, " + assemblyA,
|
Valid_PlainTagHelperType.Namespace + "*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
},
|
},
|
||||||
|
|
@ -742,7 +757,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*_*lain*, " + assemblyA,
|
"*_*lain*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
},
|
},
|
||||||
|
|
@ -755,7 +770,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*?*l?in*, " + assemblyA,
|
"*?*l?in*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
},
|
},
|
||||||
|
|
@ -768,7 +783,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*" + Valid_PlainTagHelperType.FullName + "*, " + assemblyA,
|
"*" + Valid_PlainTagHelperType.FullName + "*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
},
|
},
|
||||||
|
|
@ -781,7 +796,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*" + Valid_PlainTagHelperType.FullName + "*, " + assemblyA,
|
"*" + Valid_PlainTagHelperType.FullName + "*, " + assemblyA,
|
||||||
TagHelperDirectiveType.AddTagHelper),
|
TagHelperDirectiveType.AddTagHelper),
|
||||||
},
|
},
|
||||||
|
|
@ -794,8 +809,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*_*la*, " + assemblyA,
|
"*_*la*, " + assemblyA,
|
||||||
TagHelperDirectiveType.RemoveTagHelper)
|
TagHelperDirectiveType.RemoveTagHelper)
|
||||||
},
|
},
|
||||||
|
|
@ -808,11 +823,11 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*Plain*, " + assemblyA,
|
"*Plain*, " + assemblyA,
|
||||||
TagHelperDirectiveType.RemoveTagHelper),
|
TagHelperDirectiveType.RemoveTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper)
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper)
|
||||||
},
|
},
|
||||||
new [] { Valid_InheritedTagHelperDescriptor, Valid_PlainTagHelperDescriptor }
|
new [] { Valid_InheritedTagHelperDescriptor, Valid_PlainTagHelperDescriptor }
|
||||||
},
|
},
|
||||||
|
|
@ -823,11 +838,11 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"?*Plain*?, " + assemblyA,
|
"?*Plain*?, " + assemblyA,
|
||||||
TagHelperDirectiveType.RemoveTagHelper),
|
TagHelperDirectiveType.RemoveTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper)
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper)
|
||||||
},
|
},
|
||||||
new [] { Valid_InheritedTagHelperDescriptor, Valid_PlainTagHelperDescriptor }
|
new [] { Valid_InheritedTagHelperDescriptor, Valid_PlainTagHelperDescriptor }
|
||||||
},
|
},
|
||||||
|
|
@ -839,8 +854,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*ring, " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
CreateTagHelperDirectiveDescriptor("*ring, " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
||||||
},
|
},
|
||||||
new [] { Valid_PlainTagHelperDescriptor }
|
new [] { Valid_PlainTagHelperDescriptor }
|
||||||
},
|
},
|
||||||
|
|
@ -852,8 +867,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("?*?, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("?*?, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*?r?n?, " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
CreateTagHelperDirectiveDescriptor("*?r?n?, " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
||||||
},
|
},
|
||||||
new [] { Valid_PlainTagHelperDescriptor }
|
new [] { Valid_PlainTagHelperDescriptor }
|
||||||
},
|
},
|
||||||
|
|
@ -865,8 +880,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("?*TagHelper, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("?*TagHelper, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("?" + stringType.FullName + ", " + assemblyB, TagHelperDirectiveType.AddTagHelper)
|
CreateTagHelperDirectiveDescriptor("?" + stringType.FullName + ", " + assemblyB, TagHelperDirectiveType.AddTagHelper)
|
||||||
},
|
},
|
||||||
new [] { Valid_PlainTagHelperDescriptor }
|
new [] { Valid_PlainTagHelperDescriptor }
|
||||||
},
|
},
|
||||||
|
|
@ -878,9 +893,9 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("Microsoft.*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper)
|
CreateTagHelperDirectiveDescriptor("Microsoft.*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper)
|
||||||
},
|
},
|
||||||
new [] { stringTagHelperDescriptor }
|
new [] { stringTagHelperDescriptor }
|
||||||
},
|
},
|
||||||
|
|
@ -892,9 +907,9 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*????*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*????*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*?, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*?, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("Microsoft?*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper)
|
CreateTagHelperDirectiveDescriptor("Microsoft?*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper)
|
||||||
},
|
},
|
||||||
new [] { stringTagHelperDescriptor }
|
new [] { stringTagHelperDescriptor }
|
||||||
},
|
},
|
||||||
|
|
@ -906,13 +921,13 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
"*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
"*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"?Microsoft*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
"?Microsoft*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"?" + stringType.FullName + ", " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
"?" + stringType.FullName + ", " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
|
|
@ -930,13 +945,13 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
"*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
"*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
"Microsoft*TagHelper?, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
"Microsoft*TagHelper?, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(
|
CreateTagHelperDirectiveDescriptor(
|
||||||
stringType.FullName + "?, " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
stringType.FullName + "?, " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
|
|
@ -986,9 +1001,14 @@ 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("string",
|
new TagHelperDescriptor(
|
||||||
"System.String",
|
prefix: string.Empty,
|
||||||
assemblyB);
|
tagName: "string",
|
||||||
|
typeName: "System.String",
|
||||||
|
assemblyName: assemblyB,
|
||||||
|
attributes: Enumerable.Empty<TagHelperAttributeDescriptor>(),
|
||||||
|
requiredAttributes: Enumerable.Empty<string>(),
|
||||||
|
designTimeDescriptor: null);
|
||||||
|
|
||||||
return new TheoryData<Dictionary<string, IEnumerable<Type>>, // descriptorAssemblyLookups
|
return new TheoryData<Dictionary<string, IEnumerable<Type>>, // descriptorAssemblyLookups
|
||||||
IEnumerable<TagHelperDirectiveDescriptor>> // directiveDescriptors
|
IEnumerable<TagHelperDirectiveDescriptor>> // directiveDescriptors
|
||||||
|
|
@ -1000,8 +1020,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -1011,9 +1031,9 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(Valid_PlainTagHelperType.FullName + ", " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
CreateTagHelperDirectiveDescriptor(Valid_PlainTagHelperType.FullName + ", " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(Valid_InheritedTagHelperType.FullName + ", " + assemblyA, TagHelperDirectiveType.RemoveTagHelper)
|
CreateTagHelperDirectiveDescriptor(Valid_InheritedTagHelperType.FullName + ", " + assemblyA, TagHelperDirectiveType.RemoveTagHelper)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -1024,10 +1044,10 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -1038,19 +1058,19 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(Valid_PlainTagHelperType.FullName + ", " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
CreateTagHelperDirectiveDescriptor(Valid_PlainTagHelperType.FullName + ", " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(Valid_InheritedTagHelperType.FullName + ", " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
CreateTagHelperDirectiveDescriptor(Valid_InheritedTagHelperType.FullName + ", " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(stringType.FullName + ", " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
CreateTagHelperDirectiveDescriptor(stringType.FullName + ", " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
new Dictionary<string, IEnumerable<Type>>(),
|
new Dictionary<string, IEnumerable<Type>>(),
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
||||||
new TagHelperDirectiveDescriptor(Valid_PlainTagHelperType.FullName + ", " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
CreateTagHelperDirectiveDescriptor(Valid_PlainTagHelperType.FullName + ", " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -1060,8 +1080,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*TagHelper, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
CreateTagHelperDirectiveDescriptor("*TagHelper, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -1071,8 +1091,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*TagHelpe?, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
CreateTagHelperDirectiveDescriptor("*TagHelpe?, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -1082,9 +1102,9 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("*_*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("*_*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*Plain*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
CreateTagHelperDirectiveDescriptor("*Plain*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*_*Inhe*ed*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper)
|
CreateTagHelperDirectiveDescriptor("*_*Inhe*ed*, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -1095,10 +1115,10 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("Microsoft.*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("Microsoft.*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("System.*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("System.*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*Helper, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
CreateTagHelperDirectiveDescriptor("*Helper, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("System.*, " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
CreateTagHelperDirectiveDescriptor("System.*, " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -1109,10 +1129,10 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("?icrosoft.*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("?icrosoft.*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("?ystem.*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("?ystem.*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("*?????r, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
CreateTagHelperDirectiveDescriptor("*?????r, " + assemblyA, TagHelperDirectiveType.RemoveTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("Sy??em.*, " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
CreateTagHelperDirectiveDescriptor("Sy??em.*, " + assemblyB, TagHelperDirectiveType.RemoveTagHelper)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -1123,8 +1143,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
},
|
},
|
||||||
new []
|
new []
|
||||||
{
|
{
|
||||||
new TagHelperDirectiveDescriptor("?i?crosoft.*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("?i?crosoft.*, " + assemblyA, TagHelperDirectiveType.AddTagHelper),
|
||||||
new TagHelperDirectiveDescriptor("??ystem.*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
CreateTagHelperDirectiveDescriptor("??ystem.*, " + assemblyB, TagHelperDirectiveType.AddTagHelper),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
@ -1402,6 +1422,13 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
assemblyName: stringType.GetTypeInfo().Assembly.GetName().Name);
|
assemblyName: stringType.GetTypeInfo().Assembly.GetName().Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static TagHelperDirectiveDescriptor CreateTagHelperDirectiveDescriptor(
|
||||||
|
string directiveText,
|
||||||
|
TagHelperDirectiveType directiveType)
|
||||||
|
{
|
||||||
|
return new TagHelperDirectiveDescriptor(directiveText, SourceLocation.Zero, directiveType);
|
||||||
|
}
|
||||||
|
|
||||||
private class TestTagHelperDescriptorResolver : TagHelperDescriptorResolver
|
private class TestTagHelperDescriptorResolver : TagHelperDescriptorResolver
|
||||||
{
|
{
|
||||||
public TestTagHelperDescriptorResolver(TagHelperTypeResolver typeResolver)
|
public TestTagHelperDescriptorResolver(TagHelperTypeResolver typeResolver)
|
||||||
|
|
@ -1415,7 +1442,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
|
||||||
new TagHelperDescriptorResolutionContext(
|
new TagHelperDescriptorResolutionContext(
|
||||||
lookupTexts.Select(
|
lookupTexts.Select(
|
||||||
lookupText =>
|
lookupText =>
|
||||||
new TagHelperDirectiveDescriptor(lookupText, TagHelperDirectiveType.AddTagHelper)),
|
CreateTagHelperDirectiveDescriptor(lookupText, TagHelperDirectiveType.AddTagHelper)),
|
||||||
new ErrorSink()));
|
new ErrorSink()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,10 @@
|
||||||
"type": "build"
|
"type": "build"
|
||||||
},
|
},
|
||||||
"Microsoft.AspNet.Testing": "1.0.0-*",
|
"Microsoft.AspNet.Testing": "1.0.0-*",
|
||||||
|
"Microsoft.Framework.HashCodeCombiner.Sources": {
|
||||||
|
"type": "build",
|
||||||
|
"version": "1.0.0-*"
|
||||||
|
},
|
||||||
"Microsoft.Framework.WebEncoders.Testing": "1.0.0-*",
|
"Microsoft.Framework.WebEncoders.Testing": "1.0.0-*",
|
||||||
"xunit.runner.aspnet": "2.0.0-aspnet-*"
|
"xunit.runner.aspnet": "2.0.0-aspnet-*"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Microsoft.AspNet.Razor.TagHelpers;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNet.Razor.Test.TagHelpers
|
||||||
|
{
|
||||||
|
public class TagHelperAttributeDescriptorTest
|
||||||
|
{
|
||||||
|
public static TheoryData IsStringPropertyData
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
// attributeType, isIndexer, expectedIsStringProperty
|
||||||
|
return new TheoryData<Type, bool, bool>
|
||||||
|
{
|
||||||
|
{ typeof(int), false, false },
|
||||||
|
{ typeof(string), false, true },
|
||||||
|
{ typeof(string), true, true },
|
||||||
|
{ typeof(object), false, false },
|
||||||
|
{ typeof(IEnumerable<string>), false, false },
|
||||||
|
{ typeof(IDictionary<string, string>), false, false },
|
||||||
|
{ typeof(IDictionary<string, string>), true, false },
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[MemberData(nameof(IsStringPropertyData))]
|
||||||
|
public void TagHelperAttributeDescriptor_IsStringPropertySetCorrectly(
|
||||||
|
Type attributeType,
|
||||||
|
bool isIndexer,
|
||||||
|
bool expectedIsStringProperty)
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var attributeDescriptor = new TagHelperAttributeDescriptor(
|
||||||
|
"someAttribute",
|
||||||
|
"someProperty",
|
||||||
|
attributeType.FullName,
|
||||||
|
isIndexer,
|
||||||
|
designTimeDescriptor: null);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Equal(expectedIsStringProperty, attributeDescriptor.IsStringProperty);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue