parent
3d33418f31
commit
ad66a71eeb
|
|
@ -57,18 +57,16 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
|
|
||||||
// Protected to ensure subclasses are correctly activated. Internal for ease of use when testing.
|
// Protected to ensure subclasses are correctly activated. Internal for ease of use when testing.
|
||||||
[Activate]
|
[Activate]
|
||||||
protected internal ILoggerFactory LoggerFactory { get; set; }
|
protected internal ILogger<LinkTagHelper> Logger { get; set; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override void Process(TagHelperContext context, TagHelperOutput output)
|
public override void Process(TagHelperContext context, TagHelperOutput output)
|
||||||
{
|
{
|
||||||
var logger = LoggerFactory.Create<LinkTagHelper>();
|
if (!context.AllRequiredAttributesArePresent(RequiredAttributes, Logger))
|
||||||
|
|
||||||
if (!context.AllRequiredAttributesArePresent(RequiredAttributes, logger))
|
|
||||||
{
|
{
|
||||||
if (logger.IsEnabled(LogLevel.Verbose))
|
if (Logger.IsEnabled(LogLevel.Verbose))
|
||||||
{
|
{
|
||||||
logger.WriteVerbose("Skipping processing for {0} {1}", nameof(LinkTagHelper), context.UniqueId);
|
Logger.WriteVerbose("Skipping processing for {0} {1}", nameof(LinkTagHelper), context.UniqueId);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -101,7 +99,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
JavaScriptUtility.JavaScriptStringEncode(FallbackTestValue),
|
JavaScriptUtility.JavaScriptStringEncode(FallbackTestValue),
|
||||||
JavaScriptUtility.JavaScriptStringEncode(FallbackHref));
|
JavaScriptUtility.JavaScriptStringEncode(FallbackHref));
|
||||||
content.Append("</script>");
|
content.Append("</script>");
|
||||||
|
|
||||||
output.Content = content.ToString();
|
output.Content = content.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,12 +26,12 @@ namespace Microsoft.AspNet.Mvc.TagHelpers.Test
|
||||||
{ "asp-fallback-test-value", "hidden" },
|
{ "asp-fallback-test-value", "hidden" },
|
||||||
});
|
});
|
||||||
var output = MakeTagHelperOutput("link");
|
var output = MakeTagHelperOutput("link");
|
||||||
var loggerFactory = new Mock<ILoggerFactory>();
|
var logger = new Mock<ILogger<LinkTagHelper>>();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var helper = new LinkTagHelper
|
var helper = new LinkTagHelper
|
||||||
{
|
{
|
||||||
LoggerFactory = loggerFactory.Object,
|
Logger = logger.Object,
|
||||||
FallbackHref = "test.css",
|
FallbackHref = "test.css",
|
||||||
FallbackTestClass = "hidden",
|
FallbackTestClass = "hidden",
|
||||||
FallbackTestProperty = "visible",
|
FallbackTestProperty = "visible",
|
||||||
|
|
@ -44,7 +44,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers.Test
|
||||||
Assert.NotNull(output.Content);
|
Assert.NotNull(output.Content);
|
||||||
Assert.True(output.ContentSet);
|
Assert.True(output.ContentSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void PreservesOrderOfSourceAttributesWhenRun()
|
public void PreservesOrderOfSourceAttributesWhenRun()
|
||||||
{
|
{
|
||||||
|
|
@ -67,12 +67,12 @@ namespace Microsoft.AspNet.Mvc.TagHelpers.Test
|
||||||
{ "data-extra", "something"},
|
{ "data-extra", "something"},
|
||||||
{ "href", "test.css"}
|
{ "href", "test.css"}
|
||||||
});
|
});
|
||||||
var loggerFactory = new Mock<ILoggerFactory>();
|
var logger = new Mock<ILogger<LinkTagHelper>>();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var helper = new LinkTagHelper
|
var helper = new LinkTagHelper
|
||||||
{
|
{
|
||||||
LoggerFactory = loggerFactory.Object,
|
Logger = logger.Object,
|
||||||
FallbackHref = "test.css",
|
FallbackHref = "test.css",
|
||||||
FallbackTestClass = "hidden",
|
FallbackTestClass = "hidden",
|
||||||
FallbackTestProperty = "visible",
|
FallbackTestProperty = "visible",
|
||||||
|
|
@ -83,7 +83,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers.Test
|
||||||
// Assert
|
// Assert
|
||||||
Assert.StartsWith("<link rel=\"stylesheet\" data-extra=\"something\" href=\"test.css\"", output.Content);
|
Assert.StartsWith("<link rel=\"stylesheet\" data-extra=\"something\" href=\"test.css\"", output.Content);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void DoesNotRunWhenARequiredAttributeIsMissing()
|
public void DoesNotRunWhenARequiredAttributeIsMissing()
|
||||||
{
|
{
|
||||||
|
|
@ -97,14 +97,12 @@ namespace Microsoft.AspNet.Mvc.TagHelpers.Test
|
||||||
{ "asp-fallback-test-value", "hidden" },
|
{ "asp-fallback-test-value", "hidden" },
|
||||||
});
|
});
|
||||||
var output = MakeTagHelperOutput("link");
|
var output = MakeTagHelperOutput("link");
|
||||||
var logger = new Mock<ILogger>();
|
var logger = new Mock<ILogger<LinkTagHelper>>();
|
||||||
var loggerFactory = new Mock<ILoggerFactory>();
|
|
||||||
loggerFactory.Setup(f => f.Create(It.IsAny<string>())).Returns(logger.Object);
|
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var helper = new LinkTagHelper
|
var helper = new LinkTagHelper
|
||||||
{
|
{
|
||||||
LoggerFactory = loggerFactory.Object,
|
Logger = logger.Object,
|
||||||
// This is commented out on purpose: FallbackHref = "test.css",
|
// This is commented out on purpose: FallbackHref = "test.css",
|
||||||
FallbackTestClass = "hidden",
|
FallbackTestClass = "hidden",
|
||||||
FallbackTestProperty = "visible",
|
FallbackTestProperty = "visible",
|
||||||
|
|
@ -116,21 +114,19 @@ namespace Microsoft.AspNet.Mvc.TagHelpers.Test
|
||||||
Assert.NotNull(output.TagName);
|
Assert.NotNull(output.TagName);
|
||||||
Assert.False(output.ContentSet);
|
Assert.False(output.ContentSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void DoesNotRunWhenAllRequiredAttributesAreMissing()
|
public void DoesNotRunWhenAllRequiredAttributesAreMissing()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var context = MakeTagHelperContext();
|
var context = MakeTagHelperContext();
|
||||||
var output = MakeTagHelperOutput("link");
|
var output = MakeTagHelperOutput("link");
|
||||||
var logger = new Mock<ILogger>();
|
var logger = new Mock<ILogger<LinkTagHelper>>();
|
||||||
var loggerFactory = new Mock<ILoggerFactory>();
|
|
||||||
loggerFactory.Setup(f => f.Create(It.IsAny<string>())).Returns(logger.Object);
|
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var helper = new LinkTagHelper
|
var helper = new LinkTagHelper
|
||||||
{
|
{
|
||||||
LoggerFactory = loggerFactory.Object
|
Logger = logger.Object
|
||||||
};
|
};
|
||||||
helper.Process(context, output);
|
helper.Process(context, output);
|
||||||
|
|
||||||
|
|
@ -138,7 +134,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers.Test
|
||||||
Assert.NotNull(output.TagName);
|
Assert.NotNull(output.TagName);
|
||||||
Assert.False(output.ContentSet);
|
Assert.False(output.ContentSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
private TagHelperContext MakeTagHelperContext(
|
private TagHelperContext MakeTagHelperContext(
|
||||||
IDictionary<string, object> attributes = null,
|
IDictionary<string, object> attributes = null,
|
||||||
string content = null)
|
string content = null)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue