diff --git a/src/Microsoft.AspNet.Razor.Runtime/TagHelpers/TagHelperDescriptorFactory.cs b/src/Microsoft.AspNet.Razor.Runtime/TagHelpers/TagHelperDescriptorFactory.cs
index 560c723a4a..0beb8d9955 100644
--- a/src/Microsoft.AspNet.Razor.Runtime/TagHelpers/TagHelperDescriptorFactory.cs
+++ b/src/Microsoft.AspNet.Razor.Runtime/TagHelpers/TagHelperDescriptorFactory.cs
@@ -31,14 +31,14 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
///
/// Creates a from the given .
///
+ /// The assembly name that contains .
/// The type to create a from.
/// A that describes the given .
- public static IEnumerable CreateDescriptors(Type type)
+ public static IEnumerable CreateDescriptors(string assemblyName, Type type)
{
var tagNames = GetTagNames(type);
var typeName = type.FullName;
var attributeDescriptors = GetAttributeDescriptors(type);
- var assemblyName = type.GetTypeInfo().Assembly.GetName().Name;
return tagNames.Select(tagName =>
new TagHelperDescriptor(tagName,
diff --git a/src/Microsoft.AspNet.Razor.Runtime/TagHelpers/TagHelperDescriptorResolver.cs b/src/Microsoft.AspNet.Razor.Runtime/TagHelpers/TagHelperDescriptorResolver.cs
index 8ddacf76cc..b053673d4a 100644
--- a/src/Microsoft.AspNet.Razor.Runtime/TagHelpers/TagHelperDescriptorResolver.cs
+++ b/src/Microsoft.AspNet.Razor.Runtime/TagHelpers/TagHelperDescriptorResolver.cs
@@ -26,18 +26,23 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
private readonly TagHelperTypeResolver _typeResolver;
- // internal for testing
- internal TagHelperDescriptorResolver(TagHelperTypeResolver typeResolver)
- {
- _typeResolver = typeResolver;
- }
-
///
/// Instantiates a new instance of the class.
///
public TagHelperDescriptorResolver()
: this(new TagHelperTypeResolver())
{
+
+ }
+
+ ///
+ /// Instantiates a new instance of class with the
+ /// specified .
+ ///
+ /// The .
+ public TagHelperDescriptorResolver(TagHelperTypeResolver typeResolver)
+ {
+ _typeResolver = typeResolver;
}
///
@@ -112,7 +117,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
var tagHelperTypes = _typeResolver.Resolve(assemblyName, documentLocation, errorSink);
// Convert types to TagHelperDescriptors
- var descriptors = tagHelperTypes.SelectMany(TagHelperDescriptorFactory.CreateDescriptors);
+ var descriptors = tagHelperTypes.SelectMany(
+ type => TagHelperDescriptorFactory.CreateDescriptors(assemblyName, type));
return descriptors;
}
diff --git a/src/Microsoft.AspNet.Razor/RazorEngineHost.cs b/src/Microsoft.AspNet.Razor/RazorEngineHost.cs
index ba5b501398..f73336cecc 100644
--- a/src/Microsoft.AspNet.Razor/RazorEngineHost.cs
+++ b/src/Microsoft.AspNet.Razor/RazorEngineHost.cs
@@ -115,7 +115,7 @@ namespace Microsoft.AspNet.Razor
///
/// The used to resolve s.
///
- public virtual ITagHelperDescriptorResolver TagHelperDescriptorResolver { get; protected set; }
+ public virtual ITagHelperDescriptorResolver TagHelperDescriptorResolver { get; set; }
///
/// Boolean indicating if instrumentation code should be injected into the output page
diff --git a/test/Microsoft.AspNet.Razor.Runtime.Test/TagHelpers/TagHelperDescriptorFactoryTest.cs b/test/Microsoft.AspNet.Razor.Runtime.Test/TagHelpers/TagHelperDescriptorFactoryTest.cs
index fa229c4bc4..4be74b02fa 100644
--- a/test/Microsoft.AspNet.Razor.Runtime.Test/TagHelpers/TagHelperDescriptorFactoryTest.cs
+++ b/test/Microsoft.AspNet.Razor.Runtime.Test/TagHelpers/TagHelperDescriptorFactoryTest.cs
@@ -40,7 +40,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
string expectedAttributeName)
{
// Arrange & Act
- var descriptors = TagHelperDescriptorFactory.CreateDescriptors(tagHelperType);
+ var descriptors = TagHelperDescriptorFactory.CreateDescriptors(AssemblyName, tagHelperType);
// Assert
var descriptor = Assert.Single(descriptors);
@@ -69,7 +69,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
};
// Act
- var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(OverriddenAttributeTagHelper));
+ var descriptors = TagHelperDescriptorFactory.CreateDescriptors(AssemblyName,
+ typeof(OverriddenAttributeTagHelper));
// Assert
Assert.Equal(expectedDescriptors, descriptors, CompleteTagHelperDescriptorComparer.Default);
@@ -96,7 +97,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
};
// Act
- var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(InheritedOverriddenAttributeTagHelper));
+ var descriptors = TagHelperDescriptorFactory.CreateDescriptors(AssemblyName,
+ typeof(InheritedOverriddenAttributeTagHelper));
// Assert
Assert.Equal(expectedDescriptors, descriptors, CompleteTagHelperDescriptorComparer.Default);
@@ -122,7 +124,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
};
// Act
- var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(InheritedNotOverriddenAttributeTagHelper));
+ var descriptors = TagHelperDescriptorFactory.CreateDescriptors(AssemblyName,
+ typeof(InheritedNotOverriddenAttributeTagHelper));
// Assert
Assert.Equal(expectedDescriptors, descriptors, CompleteTagHelperDescriptorComparer.Default);
@@ -137,7 +140,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
new TagHelperDescriptor("object", "System.Object", objectAssemblyName);
// Act
- var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(object));
+ var descriptors = TagHelperDescriptorFactory.CreateDescriptors(objectAssemblyName, typeof(object));
// Assert
var descriptor = Assert.Single(descriptors);
@@ -159,7 +162,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
});
// Act
- var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(InheritedSingleAttributeTagHelper));
+ var descriptors = TagHelperDescriptorFactory.CreateDescriptors(AssemblyName,
+ typeof(InheritedSingleAttributeTagHelper));
// Assert
var descriptor = Assert.Single(descriptors);
@@ -180,7 +184,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
});
// Act
- var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(SingleAttributeTagHelper));
+ var descriptors = TagHelperDescriptorFactory.CreateDescriptors(AssemblyName,
+ typeof(SingleAttributeTagHelper));
// Assert
var descriptor = Assert.Single(descriptors);
@@ -202,7 +207,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
});
// Act
- var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(MissingAccessorTagHelper));
+ var descriptors = TagHelperDescriptorFactory.CreateDescriptors(AssemblyName,
+ typeof(MissingAccessorTagHelper));
// Assert
var descriptor = Assert.Single(descriptors);
@@ -225,7 +231,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
});
// Act
- var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(PrivateAccessorTagHelper));
+ var descriptors = TagHelperDescriptorFactory.CreateDescriptors(AssemblyName,
+ typeof(PrivateAccessorTagHelper));
// Assert
var descriptor = Assert.Single(descriptors);
@@ -255,7 +262,7 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
};
// Act
- var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(MultiTagTagHelper));
+ var descriptors = TagHelperDescriptorFactory.CreateDescriptors(AssemblyName, typeof(MultiTagTagHelper));
// Assert
Assert.Equal(expectedDescriptors, descriptors, CompleteTagHelperDescriptorComparer.Default);
@@ -275,7 +282,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
});
// Act
- var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(InheritedMultiTagTagHelper));
+ var descriptors = TagHelperDescriptorFactory.CreateDescriptors(AssemblyName,
+ typeof(InheritedMultiTagTagHelper));
// Assert
var descriptor = Assert.Single(descriptors);
@@ -298,7 +306,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
};
// Act
- var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(DuplicateTagNameTagHelper));
+ var descriptors = TagHelperDescriptorFactory.CreateDescriptors(AssemblyName,
+ typeof(DuplicateTagNameTagHelper));
// Assert
Assert.Equal(expectedDescriptors, descriptors, CompleteTagHelperDescriptorComparer.Default);
@@ -315,7 +324,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
};
// Act
- var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(OverrideNameTagHelper));
+ var descriptors = TagHelperDescriptorFactory.CreateDescriptors(AssemblyName,
+ typeof(OverrideNameTagHelper));
// Assert
Assert.Equal(expectedDescriptors, descriptors, CompleteTagHelperDescriptorComparer.Default);
@@ -341,7 +351,8 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
};
// Act
- var descriptors = TagHelperDescriptorFactory.CreateDescriptors(typeof(MultipleAttributeTagHelper));
+ var descriptors = TagHelperDescriptorFactory.CreateDescriptors(AssemblyName,
+ typeof(MultipleAttributeTagHelper));
// Assert
Assert.Equal(expectedDescriptors, descriptors, CompleteTagHelperDescriptorComparer.Default);
diff --git a/test/Microsoft.AspNet.Razor.Runtime.Test/TagHelpers/TagHelperDescriptorResolverTest.cs b/test/Microsoft.AspNet.Razor.Runtime.Test/TagHelpers/TagHelperDescriptorResolverTest.cs
index 92c5c33e0d..343ff89ddb 100644
--- a/test/Microsoft.AspNet.Razor.Runtime.Test/TagHelpers/TagHelperDescriptorResolverTest.cs
+++ b/test/Microsoft.AspNet.Razor.Runtime.Test/TagHelpers/TagHelperDescriptorResolverTest.cs
@@ -689,24 +689,38 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
Assert.Empty(descriptors);
}
+ public static TheoryData DescriptorResolver_IgnoresSpacesData
+ {
+ get
+ {
+ var typeName = typeof(Valid_PlainTagHelper).FullName;
+ return new TheoryData
+ {
+ $"{typeName},{AssemblyName}",
+ $" {typeName},{AssemblyName}",
+ $"{typeName} ,{AssemblyName}",
+ $" {typeName} ,{AssemblyName}",
+ $"{typeName}, {AssemblyName}",
+ $"{typeName},{AssemblyName} ",
+ $"{typeName}, {AssemblyName} ",
+ $" {typeName}, {AssemblyName} ",
+ $" {typeName} , {AssemblyName} "
+ };
+ }
+ }
+
[Theory]
- [InlineData("Microsoft.AspNet.Razor.Runtime.TagHelpers.Valid_PlainTagHelper,MyAssembly")]
- [InlineData(" Microsoft.AspNet.Razor.Runtime.TagHelpers.Valid_PlainTagHelper,MyAssembly")]
- [InlineData("Microsoft.AspNet.Razor.Runtime.TagHelpers.Valid_PlainTagHelper ,MyAssembly")]
- [InlineData(" Microsoft.AspNet.Razor.Runtime.TagHelpers.Valid_PlainTagHelper ,MyAssembly")]
- [InlineData("Microsoft.AspNet.Razor.Runtime.TagHelpers.Valid_PlainTagHelper, MyAssembly")]
- [InlineData("Microsoft.AspNet.Razor.Runtime.TagHelpers.Valid_PlainTagHelper,MyAssembly ")]
- [InlineData("Microsoft.AspNet.Razor.Runtime.TagHelpers.Valid_PlainTagHelper, MyAssembly ")]
- [InlineData(" Microsoft.AspNet.Razor.Runtime.TagHelpers.Valid_PlainTagHelper, MyAssembly ")]
- [InlineData(" Microsoft.AspNet.Razor.Runtime.TagHelpers.Valid_PlainTagHelper , MyAssembly ")]
+ [MemberData(nameof(DescriptorResolver_IgnoresSpacesData))]
public void DescriptorResolver_IgnoresSpaces(string lookupText)
{
// Arrange
+ var invoked = false;
var tagHelperTypeResolver = new TestTagHelperTypeResolver(TestableTagHelpers)
{
OnGetExportedTypes = (assemblyName) =>
{
- Assert.Equal("MyAssembly", assemblyName.Name);
+ Assert.Equal(AssemblyName, assemblyName.Name);
+ invoked = true;
}
};
var tagHelperDescriptorResolver = new TestTagHelperDescriptorResolver(tagHelperTypeResolver);
@@ -715,7 +729,10 @@ namespace Microsoft.AspNet.Razor.Runtime.TagHelpers
var descriptors = tagHelperDescriptorResolver.Resolve(lookupText);
// Assert
- Assert.Empty(descriptors);
+ Assert.True(invoked);
+ var descriptor = Assert.Single(descriptors);
+ Assert.Equal(AssemblyName, descriptor.AssemblyName);
+ Assert.Equal(typeof(Valid_PlainTagHelper).FullName, descriptor.TypeName);
}
[Fact]