[Fixes #2085] Using custom HtmlEncoder in unit tests
This commit is contained in:
parent
017e44ae95
commit
5da8ba7769
|
|
@ -78,6 +78,10 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
{
|
{
|
||||||
selected = selectedValues.Contains(Value);
|
selected = selectedValues.Contains(Value);
|
||||||
}
|
}
|
||||||
|
else if (output.IsContentModified)
|
||||||
|
{
|
||||||
|
selected = encodedValues.Contains(output.Content.GetContent());
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var childContent = await context.GetChildContentAsync();
|
var childContent = await context.GetChildContentAsync();
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Http;
|
using Microsoft.AspNet.Http;
|
||||||
using Microsoft.AspNet.Http.Collections;
|
using Microsoft.AspNet.Http.Collections;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.Framework.WebEncoders;
|
using Microsoft.Framework.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -36,7 +36,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test
|
||||||
tokenStore: null,
|
tokenStore: null,
|
||||||
generator: null,
|
generator: null,
|
||||||
validator: null,
|
validator: null,
|
||||||
htmlEncoder: new HtmlEncoder());
|
htmlEncoder: new CommonTestEncoder());
|
||||||
|
|
||||||
// Act & assert
|
// Act & assert
|
||||||
var ex =
|
var ex =
|
||||||
|
|
@ -68,7 +68,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test
|
||||||
tokenStore: null,
|
tokenStore: null,
|
||||||
generator: null,
|
generator: null,
|
||||||
validator: null,
|
validator: null,
|
||||||
htmlEncoder: new HtmlEncoder());
|
htmlEncoder: new CommonTestEncoder());
|
||||||
|
|
||||||
// Act & assert
|
// Act & assert
|
||||||
var ex = Assert.Throws<InvalidOperationException>(
|
var ex = Assert.Throws<InvalidOperationException>(
|
||||||
|
|
@ -98,7 +98,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test
|
||||||
tokenStore: null,
|
tokenStore: null,
|
||||||
generator: null,
|
generator: null,
|
||||||
validator: null,
|
validator: null,
|
||||||
htmlEncoder: new HtmlEncoder());
|
htmlEncoder: new CommonTestEncoder());
|
||||||
|
|
||||||
// Act & assert
|
// Act & assert
|
||||||
var ex = Assert.Throws<InvalidOperationException>(() => worker.GetFormInputElement(mockHttpContext.Object));
|
var ex = Assert.Throws<InvalidOperationException>(() => worker.GetFormInputElement(mockHttpContext.Object));
|
||||||
|
|
@ -127,7 +127,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test
|
||||||
tokenStore: null,
|
tokenStore: null,
|
||||||
generator: null,
|
generator: null,
|
||||||
validator: null,
|
validator: null,
|
||||||
htmlEncoder: new HtmlEncoder());
|
htmlEncoder: new CommonTestEncoder());
|
||||||
|
|
||||||
// Act & assert
|
// Act & assert
|
||||||
var ex = Assert.Throws<InvalidOperationException>(() => worker.GetTokens(mockHttpContext.Object, "cookie-token"));
|
var ex = Assert.Throws<InvalidOperationException>(() => worker.GetTokens(mockHttpContext.Object, "cookie-token"));
|
||||||
|
|
@ -154,7 +154,8 @@ namespace Microsoft.AspNet.Mvc.Core.Test
|
||||||
var inputElement = worker.GetFormInputElement(context.HttpContext.Object);
|
var inputElement = worker.GetFormInputElement(context.HttpContext.Object);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal(@"<input name=""form-field-name"" type=""hidden"" value=""serialized-form-token"" />",
|
Assert.Equal(@"<input name=""HtmlEncode[[form-field-name]]"" type=""HtmlEncode[[hidden]]"" " +
|
||||||
|
@"value=""HtmlEncode[[serialized-form-token]]"" />",
|
||||||
inputElement.ToString(TagRenderMode.SelfClosing));
|
inputElement.ToString(TagRenderMode.SelfClosing));
|
||||||
context.TokenStore.Verify();
|
context.TokenStore.Verify();
|
||||||
}
|
}
|
||||||
|
|
@ -184,7 +185,8 @@ namespace Microsoft.AspNet.Mvc.Core.Test
|
||||||
var inputElement = worker.GetFormInputElement(context.HttpContext.Object);
|
var inputElement = worker.GetFormInputElement(context.HttpContext.Object);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal(@"<input name=""form-field-name"" type=""hidden"" value=""serialized-form-token"" />",
|
Assert.Equal(@"<input name=""HtmlEncode[[form-field-name]]"" type=""HtmlEncode[[hidden]]"" " +
|
||||||
|
@"value=""HtmlEncode[[serialized-form-token]]"" />",
|
||||||
inputElement.ToString(TagRenderMode.SelfClosing));
|
inputElement.ToString(TagRenderMode.SelfClosing));
|
||||||
context.TokenStore.Verify();
|
context.TokenStore.Verify();
|
||||||
}
|
}
|
||||||
|
|
@ -206,7 +208,8 @@ namespace Microsoft.AspNet.Mvc.Core.Test
|
||||||
var inputElement = worker.GetFormInputElement(context.HttpContext.Object);
|
var inputElement = worker.GetFormInputElement(context.HttpContext.Object);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal(@"<input name=""form-field-name"" type=""hidden"" value=""serialized-form-token"" />",
|
Assert.Equal(@"<input name=""HtmlEncode[[form-field-name]]"" type=""HtmlEncode[[hidden]]"" " +
|
||||||
|
@"value=""HtmlEncode[[serialized-form-token]]"" />",
|
||||||
inputElement.ToString(TagRenderMode.SelfClosing));
|
inputElement.ToString(TagRenderMode.SelfClosing));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -415,7 +418,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test
|
||||||
tokenStore: context.TokenStore != null ? context.TokenStore.Object : null,
|
tokenStore: context.TokenStore != null ? context.TokenStore.Object : null,
|
||||||
generator: context.TokenProvider != null ? context.TokenProvider.Object : null,
|
generator: context.TokenProvider != null ? context.TokenProvider.Object : null,
|
||||||
validator: context.TokenProvider != null ? context.TokenProvider.Object : null,
|
validator: context.TokenProvider != null ? context.TokenProvider.Object : null,
|
||||||
htmlEncoder: new HtmlEncoder());
|
htmlEncoder: new CommonTestEncoder());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Mock<HttpContext> GetHttpContext(bool setupResponse = true)
|
private Mock<HttpContext> GetHttpContext(bool setupResponse = true)
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
using Microsoft.AspNet.DataProtection;
|
using Microsoft.AspNet.DataProtection;
|
||||||
using Microsoft.Framework.DependencyInjection;
|
using Microsoft.Framework.DependencyInjection;
|
||||||
using Microsoft.Framework.OptionsModel;
|
using Microsoft.Framework.OptionsModel;
|
||||||
using Microsoft.Framework.WebEncoders;
|
using Microsoft.Framework.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -44,7 +44,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test
|
||||||
dataProtectionProvider.Object,
|
dataProtectionProvider.Object,
|
||||||
additionalDataProvider.Object,
|
additionalDataProvider.Object,
|
||||||
optionsAccessor.Object,
|
optionsAccessor.Object,
|
||||||
new HtmlEncoder(),
|
new CommonTestEncoder(),
|
||||||
mockDataProtectionOptions.Object);
|
mockDataProtectionOptions.Object);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Microsoft.Framework.WebEncoders;
|
using Microsoft.Framework.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -276,7 +276,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
public void BeginFormWithNoParameters_CallsHtmlGeneratorWithExpectedValues()
|
public void BeginFormWithNoParameters_CallsHtmlGeneratorWithExpectedValues()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new HtmlEncoder());
|
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new NullTestEncoder());
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
|
|
@ -310,7 +310,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
public void BeginFormWithMethodParameter_CallsHtmlGeneratorWithExpectedValues(FormMethod method)
|
public void BeginFormWithMethodParameter_CallsHtmlGeneratorWithExpectedValues(FormMethod method)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new HtmlEncoder());
|
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new NullTestEncoder());
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
|
|
@ -346,7 +346,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
object htmlAttributes)
|
object htmlAttributes)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new HtmlEncoder());
|
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new NullTestEncoder());
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
|
|
@ -380,7 +380,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
public void BeginFormWithRouteValuesParameter_CallsHtmlGeneratorWithExpectedValues(object routeValues)
|
public void BeginFormWithRouteValuesParameter_CallsHtmlGeneratorWithExpectedValues(object routeValues)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new HtmlEncoder());
|
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new NullTestEncoder());
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
|
|
@ -416,7 +416,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
string controllerName)
|
string controllerName)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new HtmlEncoder());
|
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new NullTestEncoder());
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
|
|
@ -453,7 +453,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
object routeValues)
|
object routeValues)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new HtmlEncoder());
|
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new NullTestEncoder());
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
|
|
@ -490,7 +490,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
FormMethod method)
|
FormMethod method)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new HtmlEncoder());
|
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new NullTestEncoder());
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
|
|
@ -528,7 +528,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
FormMethod method)
|
FormMethod method)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new HtmlEncoder());
|
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new NullTestEncoder());
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
|
|
@ -566,7 +566,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
object htmlAttributes)
|
object htmlAttributes)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new HtmlEncoder());
|
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new NullTestEncoder());
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
|
|
@ -600,7 +600,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
public void BeginRouteFormWithRouteValuesParameter_CallsHtmlGeneratorWithExpectedValues(object routeValues)
|
public void BeginRouteFormWithRouteValuesParameter_CallsHtmlGeneratorWithExpectedValues(object routeValues)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new HtmlEncoder());
|
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new NullTestEncoder());
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
|
|
@ -633,7 +633,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
public void BeginRouteFormWithRouteNameParameter_CallsHtmlGeneratorWithExpectedValues(string routeName)
|
public void BeginRouteFormWithRouteNameParameter_CallsHtmlGeneratorWithExpectedValues(string routeName)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new HtmlEncoder());
|
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new NullTestEncoder());
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
|
|
@ -668,7 +668,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
object routeValues)
|
object routeValues)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new HtmlEncoder());
|
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new NullTestEncoder());
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
|
|
@ -703,7 +703,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
FormMethod method)
|
FormMethod method)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new HtmlEncoder());
|
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new NullTestEncoder());
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
|
|
@ -739,7 +739,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
FormMethod method)
|
FormMethod method)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new HtmlEncoder());
|
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new NullTestEncoder());
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
|
|
@ -775,7 +775,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
object htmlAttributes)
|
object htmlAttributes)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new HtmlEncoder());
|
var tagBuilder = new TagBuilder(tagName: "form", htmlEncoder: new NullTestEncoder());
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object);
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.Framework.WebEncoders;
|
using Microsoft.Framework.WebEncoders.Testing;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.Core.Rendering
|
namespace Microsoft.AspNet.Mvc.Core.Rendering
|
||||||
|
|
@ -29,7 +29,7 @@ namespace Microsoft.AspNet.Mvc.Core.Rendering
|
||||||
public void MergeAttribute_IgnoresCase(bool replaceExisting, string expectedKey, string expectedValue)
|
public void MergeAttribute_IgnoresCase(bool replaceExisting, string expectedKey, string expectedValue)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder("p", new HtmlEncoder());
|
var tagBuilder = new TagBuilder("p", new NullTestEncoder());
|
||||||
tagBuilder.Attributes.Add("Hello", "World");
|
tagBuilder.Attributes.Add("Hello", "World");
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -44,7 +44,7 @@ namespace Microsoft.AspNet.Mvc.Core.Rendering
|
||||||
public void AddCssClass_IgnoresCase()
|
public void AddCssClass_IgnoresCase()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder("p", new HtmlEncoder());
|
var tagBuilder = new TagBuilder("p", new NullTestEncoder());
|
||||||
tagBuilder.Attributes.Add("ClaSs", "btn");
|
tagBuilder.Attributes.Add("ClaSs", "btn");
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -59,7 +59,7 @@ namespace Microsoft.AspNet.Mvc.Core.Rendering
|
||||||
public void GenerateId_IgnoresCase()
|
public void GenerateId_IgnoresCase()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder("p", new HtmlEncoder());
|
var tagBuilder = new TagBuilder("p", new NullTestEncoder());
|
||||||
tagBuilder.Attributes.Add("ID", "something");
|
tagBuilder.Attributes.Add("ID", "something");
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -75,7 +75,7 @@ namespace Microsoft.AspNet.Mvc.Core.Rendering
|
||||||
public void ToString_IgnoresIdAttributeCase(TagRenderMode renderingMode, string expectedOutput)
|
public void ToString_IgnoresIdAttributeCase(TagRenderMode renderingMode, string expectedOutput)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder("p", new HtmlEncoder());
|
var tagBuilder = new TagBuilder("p", new NullTestEncoder());
|
||||||
|
|
||||||
// An empty value id attribute should not be rendered via ToString.
|
// An empty value id attribute should not be rendered via ToString.
|
||||||
tagBuilder.Attributes.Add("ID", string.Empty);
|
tagBuilder.Attributes.Add("ID", string.Empty);
|
||||||
|
|
@ -92,7 +92,7 @@ namespace Microsoft.AspNet.Mvc.Core.Rendering
|
||||||
public void ToHtmlString_IgnoresIdAttributeCase(TagRenderMode renderingMode, string expectedOutput)
|
public void ToHtmlString_IgnoresIdAttributeCase(TagRenderMode renderingMode, string expectedOutput)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var tagBuilder = new TagBuilder("p", new HtmlEncoder());
|
var tagBuilder = new TagBuilder("p", new NullTestEncoder());
|
||||||
|
|
||||||
// An empty value id attribute should not be rendered via ToHtmlString.
|
// An empty value id attribute should not be rendered via ToHtmlString.
|
||||||
tagBuilder.Attributes.Add("ID", string.Empty);
|
tagBuilder.Attributes.Add("ID", string.Empty);
|
||||||
|
|
@ -103,5 +103,18 @@ namespace Microsoft.AspNet.Mvc.Core.Rendering
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal(expectedOutput, value.ToString());
|
Assert.Equal(expectedOutput, value.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void SetInnerText_HtmlEncodesValue()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var tagBuilder = new TagBuilder("p", new CommonTestEncoder());
|
||||||
|
|
||||||
|
// Act
|
||||||
|
tagBuilder.SetInnerText("TestValue");
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.Equal("HtmlEncode[[TestValue]]", tagBuilder.InnerHtml);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
"Microsoft.AspNet.Mvc.Xml": "6.0.0-*",
|
"Microsoft.AspNet.Mvc.Xml": "6.0.0-*",
|
||||||
"Microsoft.AspNet.Testing": "1.0.0-*",
|
"Microsoft.AspNet.Testing": "1.0.0-*",
|
||||||
"Microsoft.Framework.Logging.Testing": "1.0.0-*",
|
"Microsoft.Framework.Logging.Testing": "1.0.0-*",
|
||||||
|
"Microsoft.Framework.WebEncoders.Testing": "1.0.0-*",
|
||||||
"Moq": "4.2.1312.1622",
|
"Moq": "4.2.1312.1622",
|
||||||
"xunit.runner.aspnet": "2.0.0-aspnet-*"
|
"xunit.runner.aspnet": "2.0.0-aspnet-*"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@ using Microsoft.AspNet.Http;
|
||||||
using Microsoft.AspNet.Mvc.ModelBinding;
|
using Microsoft.AspNet.Mvc.ModelBinding;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Routing;
|
using Microsoft.AspNet.Routing;
|
||||||
using Microsoft.Framework.DependencyInjection;
|
|
||||||
using Microsoft.Framework.WebEncoders;
|
using Microsoft.Framework.WebEncoders;
|
||||||
|
using Microsoft.Framework.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
|
|
||||||
var myService = new MyService();
|
var myService = new MyService();
|
||||||
var helper = Mock.Of<IHtmlHelper<object>>();
|
var helper = Mock.Of<IHtmlHelper<object>>();
|
||||||
var htmlEncoder = new HtmlEncoder();
|
var htmlEncoder = new CommonTestEncoder();
|
||||||
var serviceProvider = new Mock<IServiceProvider>();
|
var serviceProvider = new Mock<IServiceProvider>();
|
||||||
serviceProvider.Setup(p => p.GetService(typeof(MyService)))
|
serviceProvider.Setup(p => p.GetService(typeof(MyService)))
|
||||||
.Returns(myService);
|
.Returns(myService);
|
||||||
|
|
@ -96,7 +96,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
|
|
||||||
var myService = new MyService();
|
var myService = new MyService();
|
||||||
var helper = Mock.Of<IHtmlHelper<object>>();
|
var helper = Mock.Of<IHtmlHelper<object>>();
|
||||||
var htmlEncoder = new HtmlEncoder();
|
var htmlEncoder = new CommonTestEncoder();
|
||||||
var serviceProvider = new Mock<IServiceProvider>();
|
var serviceProvider = new Mock<IServiceProvider>();
|
||||||
serviceProvider.Setup(p => p.GetService(typeof(MyService)))
|
serviceProvider.Setup(p => p.GetService(typeof(MyService)))
|
||||||
.Returns(myService);
|
.Returns(myService);
|
||||||
|
|
@ -134,7 +134,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var instance = new TestRazorPage();
|
var instance = new TestRazorPage();
|
||||||
var myService = new MyService();
|
var myService = new MyService();
|
||||||
var helper = Mock.Of<IHtmlHelper<object>>();
|
var helper = Mock.Of<IHtmlHelper<object>>();
|
||||||
var htmlEncoder = new HtmlEncoder();
|
var htmlEncoder = new CommonTestEncoder();
|
||||||
var serviceProvider = new Mock<IServiceProvider>();
|
var serviceProvider = new Mock<IServiceProvider>();
|
||||||
serviceProvider.Setup(p => p.GetService(typeof(MyService)))
|
serviceProvider.Setup(p => p.GetService(typeof(MyService)))
|
||||||
.Returns(myService);
|
.Returns(myService);
|
||||||
|
|
@ -172,7 +172,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var instance = new DoesNotDeriveFromRazorPageOfTButHasModelProperty();
|
var instance = new DoesNotDeriveFromRazorPageOfTButHasModelProperty();
|
||||||
var myService = new MyService();
|
var myService = new MyService();
|
||||||
var helper = Mock.Of<IHtmlHelper<object>>();
|
var helper = Mock.Of<IHtmlHelper<object>>();
|
||||||
var htmlEncoder = new HtmlEncoder();
|
var htmlEncoder = new CommonTestEncoder();
|
||||||
var serviceProvider = new Mock<IServiceProvider>();
|
var serviceProvider = new Mock<IServiceProvider>();
|
||||||
serviceProvider.Setup(p => p.GetService(typeof(MyService)))
|
serviceProvider.Setup(p => p.GetService(typeof(MyService)))
|
||||||
.Returns(myService);
|
.Returns(myService);
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.PageExecutionInstrumentation;
|
using Microsoft.AspNet.PageExecutionInstrumentation;
|
||||||
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
||||||
using Microsoft.AspNet.Testing;
|
using Microsoft.AspNet.Testing;
|
||||||
using Microsoft.Framework.WebEncoders;
|
using Microsoft.Framework.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -30,7 +30,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var viewContext = CreateViewContext();
|
var viewContext = CreateViewContext();
|
||||||
var page = CreatePage(v =>
|
var page = CreatePage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new HtmlEncoder();
|
v.HtmlEncoder = new CommonTestEncoder();
|
||||||
v.Write("Hello Prefix");
|
v.Write("Hello Prefix");
|
||||||
v.StartTagHelperWritingScope();
|
v.StartTagHelperWritingScope();
|
||||||
v.Write("Hello from Output");
|
v.Write("Hello from Output");
|
||||||
|
|
@ -44,7 +44,8 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var pageOutput = page.Output.ToString();
|
var pageOutput = page.Output.ToString();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal("Hello PrefixFrom Scope: Hello from OutputHello from view context writer", pageOutput);
|
Assert.Equal("HtmlEncode[[Hello Prefix]]HtmlEncode[[From Scope: HtmlEncode[[Hello from Output]]" +
|
||||||
|
"Hello from view context writer]]", pageOutput);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -54,7 +55,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var viewContext = CreateViewContext();
|
var viewContext = CreateViewContext();
|
||||||
var page = CreatePage(v =>
|
var page = CreatePage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new HtmlEncoder();
|
v.HtmlEncoder = new CommonTestEncoder();
|
||||||
v.Write("Hello Prefix");
|
v.Write("Hello Prefix");
|
||||||
v.StartTagHelperWritingScope();
|
v.StartTagHelperWritingScope();
|
||||||
v.Write("Hello In Scope");
|
v.Write("Hello In Scope");
|
||||||
|
|
@ -67,7 +68,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var pageOutput = page.Output.ToString();
|
var pageOutput = page.Output.ToString();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal("Hello PrefixFrom Scope: Hello In Scope", pageOutput);
|
Assert.Equal("HtmlEncode[[Hello Prefix]]HtmlEncode[[From Scope: HtmlEncode[[Hello In Scope]]]]", pageOutput);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -77,7 +78,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var viewContext = CreateViewContext();
|
var viewContext = CreateViewContext();
|
||||||
var page = CreatePage(v =>
|
var page = CreatePage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new HtmlEncoder();
|
v.HtmlEncoder = new CommonTestEncoder();
|
||||||
v.Write("Hello Prefix");
|
v.Write("Hello Prefix");
|
||||||
v.StartTagHelperWritingScope();
|
v.StartTagHelperWritingScope();
|
||||||
v.Write("Hello In Scope Pre Nest");
|
v.Write("Hello In Scope Pre Nest");
|
||||||
|
|
@ -97,7 +98,8 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var pageOutput = page.Output.ToString();
|
var pageOutput = page.Output.ToString();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal("Hello PrefixFrom Scopes: Hello In Scope Pre NestHello In Scope Post NestHello In Nested Scope", pageOutput);
|
Assert.Equal("HtmlEncode[[Hello Prefix]]HtmlEncode[[From Scopes: HtmlEncode[[Hello In Scope Pre Nest]]" +
|
||||||
|
"HtmlEncode[[Hello In Scope Post Nest]]HtmlEncode[[Hello In Nested Scope]]]]", pageOutput);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -148,14 +150,14 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Act
|
// Act
|
||||||
var page = CreatePage(v =>
|
var page = CreatePage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new HtmlEncoder();
|
v.HtmlEncoder = new CommonTestEncoder();
|
||||||
v.StartTagHelperWritingScope();
|
v.StartTagHelperWritingScope();
|
||||||
v.Write("Hello World!");
|
v.Write("Hello World!");
|
||||||
var returnValue = v.EndTagHelperWritingScope();
|
var returnValue = v.EndTagHelperWritingScope();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
var content = Assert.IsType<DefaultTagHelperContent>(returnValue);
|
var content = Assert.IsType<DefaultTagHelperContent>(returnValue);
|
||||||
Assert.Equal("Hello World!", content.GetContent());
|
Assert.Equal("HtmlEncode[[Hello World!]]", content.GetContent());
|
||||||
});
|
});
|
||||||
await page.ExecuteAsync();
|
await page.ExecuteAsync();
|
||||||
}
|
}
|
||||||
|
|
@ -169,7 +171,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Act
|
// Act
|
||||||
var page = CreatePage(v =>
|
var page = CreatePage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new HtmlEncoder();
|
v.HtmlEncoder = new CommonTestEncoder();
|
||||||
v.StartTagHelperWritingScope(new RazorTextWriter(TextWriter.Null, Encoding.UTF8));
|
v.StartTagHelperWritingScope(new RazorTextWriter(TextWriter.Null, Encoding.UTF8));
|
||||||
v.Write("Hello ");
|
v.Write("Hello ");
|
||||||
v.Write("World!");
|
v.Write("World!");
|
||||||
|
|
@ -177,8 +179,8 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
var content = Assert.IsType<DefaultTagHelperContent>(returnValue);
|
var content = Assert.IsType<DefaultTagHelperContent>(returnValue);
|
||||||
Assert.Equal("Hello World!", content.GetContent());
|
Assert.Equal("HtmlEncode[[Hello ]]HtmlEncode[[World!]]", content.GetContent());
|
||||||
Assert.Equal(new[] { "Hello ", "World!" }, content.AsArray());
|
Assert.Equal(new[] { "HtmlEncode[[Hello ]]", "HtmlEncode[[World!]]" }, content.AsArray());
|
||||||
}, viewContext);
|
}, viewContext);
|
||||||
await page.ExecuteAsync();
|
await page.ExecuteAsync();
|
||||||
}
|
}
|
||||||
|
|
@ -545,7 +547,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
.Verifiable();
|
.Verifiable();
|
||||||
var page = CreatePage(v =>
|
var page = CreatePage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new HtmlEncoder();
|
v.HtmlEncoder = new CommonTestEncoder();
|
||||||
v.Write(v.Href("url"));
|
v.Write(v.Href("url"));
|
||||||
});
|
});
|
||||||
var services = new Mock<IServiceProvider>();
|
var services = new Mock<IServiceProvider>();
|
||||||
|
|
@ -558,7 +560,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
var actual = page.RenderedContent;
|
var actual = page.RenderedContent;
|
||||||
Assert.Equal(expected, actual);
|
Assert.Equal($"HtmlEncode[[{expected}]]", actual);
|
||||||
helper.Verify();
|
helper.Verify();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -649,7 +651,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Arrange
|
// Arrange
|
||||||
var page = CreatePage(p =>
|
var page = CreatePage(p =>
|
||||||
{
|
{
|
||||||
p.HtmlEncoder = new HtmlEncoder();
|
p.HtmlEncoder = new CommonTestEncoder();
|
||||||
p.WriteAttribute("href",
|
p.WriteAttribute("href",
|
||||||
new PositionTagged<string>("prefix", 0),
|
new PositionTagged<string>("prefix", 0),
|
||||||
new PositionTagged<string>("suffix", 34),
|
new PositionTagged<string>("suffix", 34),
|
||||||
|
|
@ -787,7 +789,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
content: "Hello World!",
|
content: "Hello World!",
|
||||||
postContent: null,
|
postContent: null,
|
||||||
postElement: null),
|
postElement: null),
|
||||||
"<p test=\"testVal\">Hello World!</p>"
|
"<p test=\"HtmlEncode[[testVal]]\">Hello World!</p>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
GetTagHelperOutput(
|
GetTagHelperOutput(
|
||||||
|
|
@ -799,7 +801,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
content: "Hello World!",
|
content: "Hello World!",
|
||||||
postContent: null,
|
postContent: null,
|
||||||
postElement: null),
|
postElement: null),
|
||||||
"<p test=\"testVal\" something=\" spaced \">Hello World!</p>"
|
"<p test=\"HtmlEncode[[testVal]]\" something=\"HtmlEncode[[ spaced ]]\">Hello World!</p>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
GetTagHelperOutput(
|
GetTagHelperOutput(
|
||||||
|
|
@ -811,7 +813,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
content: "Hello World!",
|
content: "Hello World!",
|
||||||
postContent: null,
|
postContent: null,
|
||||||
postElement: null),
|
postElement: null),
|
||||||
"<p test=\"testVal\" />"
|
"<p test=\"HtmlEncode[[testVal]]\" />"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
GetTagHelperOutput(
|
GetTagHelperOutput(
|
||||||
|
|
@ -823,7 +825,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
content: "Hello World!",
|
content: "Hello World!",
|
||||||
postContent: null,
|
postContent: null,
|
||||||
postElement: null),
|
postElement: null),
|
||||||
"<p test=\"testVal\" something=\" spaced \" />"
|
"<p test=\"HtmlEncode[[testVal]]\" something=\"HtmlEncode[[ spaced ]]\" />"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
GetTagHelperOutput(
|
GetTagHelperOutput(
|
||||||
|
|
@ -955,7 +957,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
content: null,
|
content: null,
|
||||||
postContent: null,
|
postContent: null,
|
||||||
postElement: null),
|
postElement: null),
|
||||||
"Before<custom test=\"testVal\" />"
|
"Before<custom test=\"HtmlEncode[[testVal]]\" />"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
GetTagHelperOutput(
|
GetTagHelperOutput(
|
||||||
|
|
@ -1015,7 +1017,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
content: null,
|
content: null,
|
||||||
postContent: null,
|
postContent: null,
|
||||||
postElement: "After"),
|
postElement: "After"),
|
||||||
"<custom test=\"testVal\" />After"
|
"<custom test=\"HtmlEncode[[testVal]]\" />After"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
GetTagHelperOutput(
|
GetTagHelperOutput(
|
||||||
|
|
@ -1051,7 +1053,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
content: "Test",
|
content: "Test",
|
||||||
postContent: "World!",
|
postContent: "World!",
|
||||||
postElement: "After"),
|
postElement: "After"),
|
||||||
"Before<custom test=\"testVal\">HelloTestWorld!</custom>After"
|
"Before<custom test=\"HtmlEncode[[testVal]]\">HelloTestWorld!</custom>After"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
GetTagHelperOutput(
|
GetTagHelperOutput(
|
||||||
|
|
@ -1125,7 +1127,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Act
|
// Act
|
||||||
var page = CreatePage(p =>
|
var page = CreatePage(p =>
|
||||||
{
|
{
|
||||||
p.HtmlEncoder = new HtmlEncoder();
|
p.HtmlEncoder = new CommonTestEncoder();
|
||||||
p.WriteTagHelperAsync(tagHelperExecutionContext).Wait();
|
p.WriteTagHelperAsync(tagHelperExecutionContext).Wait();
|
||||||
}, context);
|
}, context);
|
||||||
await page.ExecuteAsync();
|
await page.ExecuteAsync();
|
||||||
|
|
@ -1167,7 +1169,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Act
|
// Act
|
||||||
var page = CreatePage(p =>
|
var page = CreatePage(p =>
|
||||||
{
|
{
|
||||||
p.HtmlEncoder = new HtmlEncoder();
|
p.HtmlEncoder = new CommonTestEncoder();
|
||||||
p.WriteTagHelperAsync(tagHelperExecutionContext).Wait();
|
p.WriteTagHelperAsync(tagHelperExecutionContext).Wait();
|
||||||
}, context);
|
}, context);
|
||||||
await page.ExecuteAsync();
|
await page.ExecuteAsync();
|
||||||
|
|
@ -1224,7 +1226,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Act
|
// Act
|
||||||
var page = CreatePage(p =>
|
var page = CreatePage(p =>
|
||||||
{
|
{
|
||||||
p.HtmlEncoder = new HtmlEncoder();
|
p.HtmlEncoder = new CommonTestEncoder();
|
||||||
p.WriteTagHelperToAsync(writer, tagHelperExecutionContext).Wait();
|
p.WriteTagHelperToAsync(writer, tagHelperExecutionContext).Wait();
|
||||||
}, context);
|
}, context);
|
||||||
await page.ExecuteAsync();
|
await page.ExecuteAsync();
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Http;
|
using Microsoft.AspNet.Http;
|
||||||
using Microsoft.AspNet.Mvc.ModelBinding;
|
using Microsoft.AspNet.Mvc.ModelBinding;
|
||||||
using Microsoft.AspNet.PageExecutionInstrumentation;
|
using Microsoft.AspNet.PageExecutionInstrumentation;
|
||||||
using Microsoft.Framework.WebEncoders;
|
using Microsoft.Framework.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -31,7 +31,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
actual = v.Output;
|
actual = v.Output;
|
||||||
v.HtmlEncoder = new HtmlEncoder();
|
v.HtmlEncoder = new CommonTestEncoder();
|
||||||
v.Write("Hello world");
|
v.Write("Hello world");
|
||||||
});
|
});
|
||||||
var view = new RazorView(Mock.Of<IRazorViewEngine>(),
|
var view = new RazorView(Mock.Of<IRazorViewEngine>(),
|
||||||
|
|
@ -48,7 +48,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Assert
|
// Assert
|
||||||
Assert.NotSame(expected, actual);
|
Assert.NotSame(expected, actual);
|
||||||
Assert.IsAssignableFrom<IBufferedTextWriter>(actual);
|
Assert.IsAssignableFrom<IBufferedTextWriter>(actual);
|
||||||
Assert.Equal("Hello world", viewContext.Writer.ToString());
|
Assert.Equal("HtmlEncode[[Hello world]]", viewContext.Writer.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -167,10 +167,10 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task RenderAsync_AsPartial_ExecutesLayout_ButNotViewStartPages()
|
public async Task RenderAsync_AsPartial_ExecutesLayout_ButNotViewStartPages()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new HtmlEncoder();
|
var htmlEncoder = new CommonTestEncoder();
|
||||||
var expected = string.Join(htmlEncoder.HtmlEncode(Environment.NewLine),
|
var expected = string.Join(Environment.NewLine,
|
||||||
"layout-content",
|
"HtmlEncode[[layout-content",
|
||||||
"page-content");
|
"]]HtmlEncode[[page-content]]");
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = htmlEncoder;
|
v.HtmlEncoder = htmlEncoder;
|
||||||
|
|
@ -364,11 +364,11 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task RenderAsync_ExecutesLayoutPages()
|
public async Task RenderAsync_ExecutesLayoutPages()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new HtmlEncoder();
|
var htmlEncoder = new CommonTestEncoder();
|
||||||
var htmlEncodedNewLine = htmlEncoder.HtmlEncode(Environment.NewLine);
|
var htmlEncodedNewLine = htmlEncoder.HtmlEncode(Environment.NewLine);
|
||||||
var expected = "layout-content" +
|
var expected = "HtmlEncode[[layout-content" +
|
||||||
htmlEncodedNewLine +
|
Environment.NewLine +
|
||||||
"head-content" +
|
"]]head-content" +
|
||||||
htmlEncodedNewLine +
|
htmlEncodedNewLine +
|
||||||
"body-content" +
|
"body-content" +
|
||||||
htmlEncodedNewLine +
|
htmlEncodedNewLine +
|
||||||
|
|
@ -468,7 +468,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
"layout-section-content",
|
"layout-section-content",
|
||||||
"page-section-content");
|
"page-section-content");
|
||||||
|
|
||||||
var htmlEncoder = new HtmlEncoder();
|
var htmlEncoder = new CommonTestEncoder();
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = htmlEncoder;
|
v.HtmlEncoder = htmlEncoder;
|
||||||
|
|
@ -531,7 +531,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
"layout-section-content",
|
"layout-section-content",
|
||||||
"page-section-content");
|
"page-section-content");
|
||||||
|
|
||||||
var htmlEncoder = new HtmlEncoder();
|
var htmlEncoder = new CommonTestEncoder();
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = htmlEncoder;
|
v.HtmlEncoder = htmlEncoder;
|
||||||
|
|
@ -583,7 +583,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task RenderAsync_WithNestedSections_ThrowsIfSectionsWereDefinedButNotRendered()
|
public async Task RenderAsync_WithNestedSections_ThrowsIfSectionsWereDefinedButNotRendered()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new HtmlEncoder();
|
var htmlEncoder = new CommonTestEncoder();
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = htmlEncoder;
|
v.HtmlEncoder = htmlEncoder;
|
||||||
|
|
@ -641,7 +641,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task RenderAsync_WithNestedSectionsOfTheSameName_ThrowsIfSectionsWereDefinedButNotRendered()
|
public async Task RenderAsync_WithNestedSectionsOfTheSameName_ThrowsIfSectionsWereDefinedButNotRendered()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new HtmlEncoder();
|
var htmlEncoder = new CommonTestEncoder();
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = htmlEncoder;
|
v.HtmlEncoder = htmlEncoder;
|
||||||
|
|
@ -735,15 +735,14 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task RenderAsync_ExecutesNestedLayoutPages()
|
public async Task RenderAsync_ExecutesNestedLayoutPages()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new HtmlEncoder();
|
var htmlEncoder = new CommonTestEncoder();
|
||||||
var htmlEncodedNewLine = htmlEncoder.HtmlEncode(Environment.NewLine);
|
var expected = "HtmlEncode[[layout-2" +
|
||||||
var expected = "layout-2" +
|
|
||||||
htmlEncodedNewLine +
|
|
||||||
"bar-content" +
|
|
||||||
Environment.NewLine +
|
Environment.NewLine +
|
||||||
"layout-1" +
|
"]]bar-content" +
|
||||||
htmlEncodedNewLine +
|
Environment.NewLine +
|
||||||
"foo-content" +
|
"HtmlEncode[[layout-1" +
|
||||||
|
Environment.NewLine +
|
||||||
|
"]]foo-content" +
|
||||||
Environment.NewLine +
|
Environment.NewLine +
|
||||||
"body-content";
|
"body-content";
|
||||||
|
|
||||||
|
|
@ -797,15 +796,15 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task RenderAsync_ExecutesNestedLayoutsWithNestedSections()
|
public async Task RenderAsync_ExecutesNestedLayoutsWithNestedSections()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new HtmlEncoder();
|
var htmlEncoder = new CommonTestEncoder();
|
||||||
var htmlEncodedNewLine = htmlEncoder.HtmlEncode(Environment.NewLine);
|
var expected = "HtmlEncode[[BaseLayout" +
|
||||||
var expected = "BaseLayout" +
|
Environment.NewLine +
|
||||||
htmlEncodedNewLine +
|
"]]HtmlEncode[[NestedLayout" +
|
||||||
"NestedLayout" +
|
Environment.NewLine +
|
||||||
htmlEncodedNewLine +
|
"]]BodyContent" +
|
||||||
"BodyContent" +
|
|
||||||
"foo-content" +
|
"foo-content" +
|
||||||
Environment.NewLine +
|
Environment.NewLine +
|
||||||
|
"HtmlEncode[[]]" +
|
||||||
Environment.NewLine;
|
Environment.NewLine;
|
||||||
|
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
|
|
@ -860,10 +859,10 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task RenderAsync_DoesNotCopyContentOnceRazorTextWriterIsNoLongerBuffering()
|
public async Task RenderAsync_DoesNotCopyContentOnceRazorTextWriterIsNoLongerBuffering()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new HtmlEncoder();
|
var htmlEncoder = new CommonTestEncoder();
|
||||||
var expected = "layout-1" +
|
var expected = "HtmlEncode[[layout-1" +
|
||||||
htmlEncoder.HtmlEncode(Environment.NewLine) +
|
Environment.NewLine +
|
||||||
"body content" +
|
"]]body content" +
|
||||||
Environment.NewLine +
|
Environment.NewLine +
|
||||||
"section-content-1" +
|
"section-content-1" +
|
||||||
Environment.NewLine +
|
Environment.NewLine +
|
||||||
|
|
@ -912,10 +911,10 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task FlushAsync_DoesNotThrowWhenInvokedInsideOfASection()
|
public async Task FlushAsync_DoesNotThrowWhenInvokedInsideOfASection()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new HtmlEncoder();
|
var htmlEncoder = new CommonTestEncoder();
|
||||||
var expected = "layout-1" +
|
var expected = "HtmlEncode[[layout-1" +
|
||||||
htmlEncoder.HtmlEncode(Environment.NewLine) +
|
Environment.NewLine +
|
||||||
"section-content-1" +
|
"]]section-content-1" +
|
||||||
Environment.NewLine +
|
Environment.NewLine +
|
||||||
"section-content-2";
|
"section-content-2";
|
||||||
|
|
||||||
|
|
@ -993,7 +992,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.Path = "/Views/TestPath/Test.cshtml";
|
v.Path = "/Views/TestPath/Test.cshtml";
|
||||||
v.HtmlEncoder = new HtmlEncoder();
|
v.HtmlEncoder = new CommonTestEncoder();
|
||||||
v.DefineSection("foo", async writer =>
|
v.DefineSection("foo", async writer =>
|
||||||
{
|
{
|
||||||
writer.WriteLine("foo-content");
|
writer.WriteLine("foo-content");
|
||||||
|
|
@ -1004,7 +1003,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
});
|
});
|
||||||
var layoutPage = new TestableRazorPage(v =>
|
var layoutPage = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new HtmlEncoder();
|
v.HtmlEncoder = new CommonTestEncoder();
|
||||||
v.Write("layout-1" + Environment.NewLine);
|
v.Write("layout-1" + Environment.NewLine);
|
||||||
v.Write(v.RenderSection("foo"));
|
v.Write(v.RenderSection("foo"));
|
||||||
v.DefineSection("bar", writer => writer.WriteLineAsync("bar-content"));
|
v.DefineSection("bar", writer => writer.WriteLineAsync("bar-content"));
|
||||||
|
|
@ -1066,7 +1065,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
|
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new HtmlEncoder();
|
v.HtmlEncoder = new CommonTestEncoder();
|
||||||
v.Layout = "Layout";
|
v.Layout = "Layout";
|
||||||
Assert.Same(pageWriter, v.Output);
|
Assert.Same(pageWriter, v.Output);
|
||||||
Assert.Same(pageContext, v.PageExecutionContext);
|
Assert.Same(pageContext, v.PageExecutionContext);
|
||||||
|
|
@ -1075,7 +1074,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
|
|
||||||
var layout = new TestableRazorPage(v =>
|
var layout = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new HtmlEncoder();
|
v.HtmlEncoder = new CommonTestEncoder();
|
||||||
Assert.Same(layoutWriter, v.Output);
|
Assert.Same(layoutWriter, v.Output);
|
||||||
Assert.Same(layoutContext, v.PageExecutionContext);
|
Assert.Same(layoutContext, v.PageExecutionContext);
|
||||||
v.RenderBodyPublic();
|
v.RenderBodyPublic();
|
||||||
|
|
@ -1127,7 +1126,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
|
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new HtmlEncoder();
|
v.HtmlEncoder = new CommonTestEncoder();
|
||||||
Assert.IsType<RazorTextWriter>(v.Output);
|
Assert.IsType<RazorTextWriter>(v.Output);
|
||||||
Assert.Same(pageContext, v.PageExecutionContext);
|
Assert.Same(pageContext, v.PageExecutionContext);
|
||||||
executed = true;
|
executed = true;
|
||||||
|
|
@ -1151,7 +1150,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Assert
|
// Assert
|
||||||
feature.Verify();
|
feature.Verify();
|
||||||
Assert.True(executed);
|
Assert.True(executed);
|
||||||
Assert.Equal("Hello world", viewContext.Writer.ToString());
|
Assert.Equal("HtmlEncode[[Hello world]]", viewContext.Writer.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
"Microsoft.AspNet.Mvc.Razor": "6.0.0-*",
|
"Microsoft.AspNet.Mvc.Razor": "6.0.0-*",
|
||||||
"Microsoft.AspNet.Mvc.TestCommon": { "version": "6.0.0-*", "type": "build" },
|
"Microsoft.AspNet.Mvc.TestCommon": { "version": "6.0.0-*", "type": "build" },
|
||||||
"Microsoft.AspNet.Testing": "1.0.0-*",
|
"Microsoft.AspNet.Testing": "1.0.0-*",
|
||||||
|
"Microsoft.Framework.WebEncoders.Testing": "1.0.0-*",
|
||||||
"Microsoft.Framework.Runtime": "1.0.0-*",
|
"Microsoft.Framework.Runtime": "1.0.0-*",
|
||||||
"xunit.runner.aspnet": "2.0.0-aspnet-*"
|
"xunit.runner.aspnet": "2.0.0-aspnet-*"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ using Microsoft.AspNet.Mvc.ModelBinding;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
||||||
using Microsoft.Framework.WebEncoders;
|
using Microsoft.Framework.WebEncoders;
|
||||||
|
using Microsoft.Framework.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -104,7 +105,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
generator
|
generator
|
||||||
.Setup(mock => mock.GenerateRouteLink(
|
.Setup(mock => mock.GenerateRouteLink(
|
||||||
string.Empty, "Default", "http", "contoso.com", "hello=world", null, null))
|
string.Empty, "Default", "http", "contoso.com", "hello=world", null, null))
|
||||||
.Returns(new TagBuilder("a", new HtmlEncoder()))
|
.Returns(new TagBuilder("a", new CommonTestEncoder()))
|
||||||
.Verifiable();
|
.Verifiable();
|
||||||
var anchorTagHelper = new AnchorTagHelper
|
var anchorTagHelper = new AnchorTagHelper
|
||||||
{
|
{
|
||||||
|
|
@ -146,7 +147,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
generator
|
generator
|
||||||
.Setup(mock => mock.GenerateActionLink(
|
.Setup(mock => mock.GenerateActionLink(
|
||||||
string.Empty, "Index", "Home", "http", "contoso.com", "hello=world", null, null))
|
string.Empty, "Index", "Home", "http", "contoso.com", "hello=world", null, null))
|
||||||
.Returns(new TagBuilder("a", new HtmlEncoder()))
|
.Returns(new TagBuilder("a", new CommonTestEncoder()))
|
||||||
.Verifiable();
|
.Verifiable();
|
||||||
var anchorTagHelper = new AnchorTagHelper
|
var anchorTagHelper = new AnchorTagHelper
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ using Microsoft.AspNet.Mvc.ModelBinding;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
||||||
using Microsoft.AspNet.Routing;
|
using Microsoft.AspNet.Routing;
|
||||||
using Microsoft.Framework.WebEncoders;
|
using Microsoft.Framework.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -118,10 +118,10 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
It.IsAny<object>(),
|
It.IsAny<object>(),
|
||||||
It.IsAny<string>(),
|
It.IsAny<string>(),
|
||||||
It.IsAny<object>()))
|
It.IsAny<object>()))
|
||||||
.Returns(new TagBuilder("form", new HtmlEncoder()));
|
.Returns(new TagBuilder("form", new CommonTestEncoder()));
|
||||||
|
|
||||||
generator.Setup(mock => mock.GenerateAntiForgery(viewContext))
|
generator.Setup(mock => mock.GenerateAntiForgery(viewContext))
|
||||||
.Returns(new TagBuilder("input", new HtmlEncoder()));
|
.Returns(new TagBuilder("input", new CommonTestEncoder()));
|
||||||
var formTagHelper = new FormTagHelper
|
var formTagHelper = new FormTagHelper
|
||||||
{
|
{
|
||||||
Action = "Index",
|
Action = "Index",
|
||||||
|
|
@ -190,7 +190,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
routeValue = Assert.Single(routeValueDictionary, kvp => kvp.Key.Equals("-Foo"));
|
routeValue = Assert.Single(routeValueDictionary, kvp => kvp.Key.Equals("-Foo"));
|
||||||
Assert.Equal("bar", routeValue.Value);
|
Assert.Equal("bar", routeValue.Value);
|
||||||
})
|
})
|
||||||
.Returns(new TagBuilder("form", new HtmlEncoder()))
|
.Returns(new TagBuilder("form", new CommonTestEncoder()))
|
||||||
.Verifiable();
|
.Verifiable();
|
||||||
var formTagHelper = new FormTagHelper
|
var formTagHelper = new FormTagHelper
|
||||||
{
|
{
|
||||||
|
|
@ -234,7 +234,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var generator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var generator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
generator
|
generator
|
||||||
.Setup(mock => mock.GenerateForm(viewContext, "Index", "Home", null, null, null))
|
.Setup(mock => mock.GenerateForm(viewContext, "Index", "Home", null, null, null))
|
||||||
.Returns(new TagBuilder("form", new HtmlEncoder()))
|
.Returns(new TagBuilder("form", new CommonTestEncoder()))
|
||||||
.Verifiable();
|
.Verifiable();
|
||||||
var formTagHelper = new FormTagHelper
|
var formTagHelper = new FormTagHelper
|
||||||
{
|
{
|
||||||
|
|
@ -270,7 +270,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var generator = new Mock<IHtmlGenerator>();
|
var generator = new Mock<IHtmlGenerator>();
|
||||||
|
|
||||||
generator.Setup(mock => mock.GenerateAntiForgery(It.IsAny<ViewContext>()))
|
generator.Setup(mock => mock.GenerateAntiForgery(It.IsAny<ViewContext>()))
|
||||||
.Returns(new TagBuilder("input", new HtmlEncoder()));
|
.Returns(new TagBuilder("input", new CommonTestEncoder()));
|
||||||
var formTagHelper = new FormTagHelper
|
var formTagHelper = new FormTagHelper
|
||||||
{
|
{
|
||||||
AntiForgery = antiForgery,
|
AntiForgery = antiForgery,
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ using Microsoft.AspNet.Mvc.ModelBinding;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Mvc.Rendering.Internal;
|
using Microsoft.AspNet.Mvc.Rendering.Internal;
|
||||||
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
||||||
using Microsoft.Framework.WebEncoders;
|
using Microsoft.Framework.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -156,7 +156,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var originalContent = "original content";
|
var originalContent = "original content";
|
||||||
var originalTagName = "not-input";
|
var originalTagName = "not-input";
|
||||||
var expectedPreContent = "original pre-content";
|
var expectedPreContent = "original pre-content";
|
||||||
var expectedContent = originalContent + "<input class=\"form-control\" /><hidden />";
|
var expectedContent = originalContent + "<input class=\"HtmlEncode[[form-control]]\" /><hidden />";
|
||||||
var expectedPostContent = "original post-content";
|
var expectedPostContent = "original post-content";
|
||||||
|
|
||||||
var context = new TagHelperContext(
|
var context = new TagHelperContext(
|
||||||
|
|
@ -183,7 +183,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
|
|
||||||
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
var htmlGenerator = new Mock<IHtmlGenerator>(MockBehavior.Strict);
|
||||||
var tagHelper = GetTagHelper(htmlGenerator.Object, model: false, propertyName: nameof(Model.IsACar));
|
var tagHelper = GetTagHelper(htmlGenerator.Object, model: false, propertyName: nameof(Model.IsACar));
|
||||||
var tagBuilder = new TagBuilder("input", new HtmlEncoder())
|
var tagBuilder = new TagBuilder("input", new CommonTestEncoder())
|
||||||
{
|
{
|
||||||
Attributes =
|
Attributes =
|
||||||
{
|
{
|
||||||
|
|
@ -204,7 +204,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
tagHelper.ViewContext,
|
tagHelper.ViewContext,
|
||||||
tagHelper.For.ModelExplorer,
|
tagHelper.For.ModelExplorer,
|
||||||
tagHelper.For.Name))
|
tagHelper.For.Name))
|
||||||
.Returns(new TagBuilder("hidden", new HtmlEncoder()))
|
.Returns(new TagBuilder("hidden", new NullTestEncoder()))
|
||||||
.Verifiable();
|
.Verifiable();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -288,7 +288,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
metadataProvider: metadataProvider);
|
metadataProvider: metadataProvider);
|
||||||
tagHelper.InputTypeName = inputTypeName;
|
tagHelper.InputTypeName = inputTypeName;
|
||||||
|
|
||||||
var tagBuilder = new TagBuilder("input", new HtmlEncoder())
|
var tagBuilder = new TagBuilder("input", new NullTestEncoder())
|
||||||
{
|
{
|
||||||
Attributes =
|
Attributes =
|
||||||
{
|
{
|
||||||
|
|
@ -387,7 +387,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
metadataProvider: metadataProvider);
|
metadataProvider: metadataProvider);
|
||||||
tagHelper.InputTypeName = inputTypeName;
|
tagHelper.InputTypeName = inputTypeName;
|
||||||
|
|
||||||
var tagBuilder = new TagBuilder("input", new HtmlEncoder())
|
var tagBuilder = new TagBuilder("input", new NullTestEncoder())
|
||||||
{
|
{
|
||||||
Attributes =
|
Attributes =
|
||||||
{
|
{
|
||||||
|
|
@ -477,7 +477,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
tagHelper.InputTypeName = inputTypeName;
|
tagHelper.InputTypeName = inputTypeName;
|
||||||
tagHelper.Value = value;
|
tagHelper.Value = value;
|
||||||
|
|
||||||
var tagBuilder = new TagBuilder("input", new HtmlEncoder())
|
var tagBuilder = new TagBuilder("input", new NullTestEncoder())
|
||||||
{
|
{
|
||||||
Attributes =
|
Attributes =
|
||||||
{
|
{
|
||||||
|
|
@ -588,7 +588,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
metadataProvider: metadataProvider);
|
metadataProvider: metadataProvider);
|
||||||
tagHelper.InputTypeName = inputTypeName;
|
tagHelper.InputTypeName = inputTypeName;
|
||||||
|
|
||||||
var tagBuilder = new TagBuilder("input", new HtmlEncoder())
|
var tagBuilder = new TagBuilder("input", new NullTestEncoder())
|
||||||
{
|
{
|
||||||
Attributes =
|
Attributes =
|
||||||
{
|
{
|
||||||
|
|
@ -695,7 +695,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
propertyName: nameof(Model.Text),
|
propertyName: nameof(Model.Text),
|
||||||
metadataProvider: metadataProvider);
|
metadataProvider: metadataProvider);
|
||||||
|
|
||||||
var tagBuilder = new TagBuilder("input", new HtmlEncoder());
|
var tagBuilder = new TagBuilder("input", new NullTestEncoder());
|
||||||
|
|
||||||
Dictionary<string, object> htmlAttributes = null;
|
Dictionary<string, object> htmlAttributes = null;
|
||||||
if (string.Equals(dataTypeName, TemplateRenderer.IEnumerableOfIFormFileName))
|
if (string.Equals(dataTypeName, TemplateRenderer.IEnumerableOfIFormFileName))
|
||||||
|
|
@ -774,7 +774,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
metadataProvider: metadataProvider);
|
metadataProvider: metadataProvider);
|
||||||
tagHelper.ViewContext.Html5DateRenderingMode = dateRenderingMode;
|
tagHelper.ViewContext.Html5DateRenderingMode = dateRenderingMode;
|
||||||
|
|
||||||
var tagBuilder = new TagBuilder("input", new HtmlEncoder());
|
var tagBuilder = new TagBuilder("input", new NullTestEncoder());
|
||||||
htmlGenerator
|
htmlGenerator
|
||||||
.Setup(mock => mock.GenerateTextBox(
|
.Setup(mock => mock.GenerateTextBox(
|
||||||
tagHelper.ViewContext,
|
tagHelper.ViewContext,
|
||||||
|
|
|
||||||
|
|
@ -46,18 +46,18 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
{ null, typeof(Model), () => null, "Text",
|
{ null, typeof(Model), () => null, "Text",
|
||||||
new TagHelperOutputContent(string.Empty, Environment.NewLine, Environment.NewLine, "Text") },
|
new TagHelperOutputContent(string.Empty, Environment.NewLine, Environment.NewLine, "Text") },
|
||||||
{ null, typeof(Model), () => null, "Text",
|
{ null, typeof(Model), () => null, "Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, string.Empty, "Text", "Text") },
|
new TagHelperOutputContent(Environment.NewLine, string.Empty, "HtmlEncode[[Text]]", "Text") },
|
||||||
|
|
||||||
{ modelWithNull, typeof(Model), () => modelWithNull.Text, "Text",
|
{ modelWithNull, typeof(Model), () => modelWithNull.Text, "Text",
|
||||||
new TagHelperOutputContent(string.Empty, Environment.NewLine, Environment.NewLine, "Text") },
|
new TagHelperOutputContent(string.Empty, Environment.NewLine, Environment.NewLine, "Text") },
|
||||||
{ modelWithNull, typeof(Model), () => modelWithNull.Text, "Text",
|
{ modelWithNull, typeof(Model), () => modelWithNull.Text, "Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, string.Empty, "Text", "Text") },
|
new TagHelperOutputContent(Environment.NewLine, string.Empty, "HtmlEncode[[Text]]", "Text") },
|
||||||
{ modelWithNull, typeof(Model), () => modelWithNull.Text, "Text",
|
{ modelWithNull, typeof(Model), () => modelWithNull.Text, "Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "Text") },
|
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "Text") },
|
||||||
{ modelWithText, typeof(Model), () => modelWithText.Text, "Text",
|
{ modelWithText, typeof(Model), () => modelWithText.Text, "Text",
|
||||||
new TagHelperOutputContent(string.Empty, Environment.NewLine, Environment.NewLine, "Text") },
|
new TagHelperOutputContent(string.Empty, Environment.NewLine, Environment.NewLine, "Text") },
|
||||||
{ modelWithText, typeof(Model), () => modelWithText.Text, "Text",
|
{ modelWithText, typeof(Model), () => modelWithText.Text, "Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, string.Empty, "Text", "Text") },
|
new TagHelperOutputContent(Environment.NewLine, string.Empty, "HtmlEncode[[Text]]", "Text") },
|
||||||
{ modelWithText, typeof(Model), () => modelWithText.Text, "Text",
|
{ modelWithText, typeof(Model), () => modelWithText.Text, "Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "Text") },
|
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "Text") },
|
||||||
{ modelWithText, typeof(Model), () => modelWithNull.Text, "Text",
|
{ modelWithText, typeof(Model), () => modelWithNull.Text, "Text",
|
||||||
|
|
@ -74,13 +74,13 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
new TagHelperOutputContent("Hello World1", "Hello World2", "Hello World2", "Text") },
|
new TagHelperOutputContent("Hello World1", "Hello World2", "Hello World2", "Text") },
|
||||||
|
|
||||||
{ modelWithNull, typeof(NestedModel), () => modelWithNull.NestedModel.Text, "NestedModel.Text",
|
{ modelWithNull, typeof(NestedModel), () => modelWithNull.NestedModel.Text, "NestedModel.Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, string.Empty, "Text", "NestedModel_Text") },
|
new TagHelperOutputContent(Environment.NewLine, string.Empty, "HtmlEncode[[Text]]", "NestedModel_Text") },
|
||||||
{ modelWithNull, typeof(NestedModel), () => modelWithNull.NestedModel.Text, "NestedModel.Text",
|
{ modelWithNull, typeof(NestedModel), () => modelWithNull.NestedModel.Text, "NestedModel.Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "NestedModel_Text") },
|
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "NestedModel_Text") },
|
||||||
{ modelWithNull, typeof(NestedModel), () => modelWithNull.NestedModel.Text, "NestedModel.Text",
|
{ modelWithNull, typeof(NestedModel), () => modelWithNull.NestedModel.Text, "NestedModel.Text",
|
||||||
new TagHelperOutputContent(string.Empty, Environment.NewLine, Environment.NewLine, "NestedModel_Text") },
|
new TagHelperOutputContent(string.Empty, Environment.NewLine, Environment.NewLine, "NestedModel_Text") },
|
||||||
{ modelWithText, typeof(NestedModel), () => modelWithText.NestedModel.Text, "NestedModel.Text",
|
{ modelWithText, typeof(NestedModel), () => modelWithText.NestedModel.Text, "NestedModel.Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, string.Empty, "Text", "NestedModel_Text") },
|
new TagHelperOutputContent(Environment.NewLine, string.Empty, "HtmlEncode[[Text]]", "NestedModel_Text") },
|
||||||
{ modelWithText, typeof(NestedModel), () => modelWithText.NestedModel.Text, "NestedModel.Text",
|
{ modelWithText, typeof(NestedModel), () => modelWithText.NestedModel.Text, "NestedModel.Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "NestedModel_Text") },
|
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "NestedModel_Text") },
|
||||||
{ modelWithText, typeof(NestedModel), () => modelWithText.NestedModel.Text, "NestedModel.Text",
|
{ modelWithText, typeof(NestedModel), () => modelWithText.NestedModel.Text, "NestedModel.Text",
|
||||||
|
|
@ -101,13 +101,13 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
// Note: Tests cases below here will not work in practice due to current limitations on indexing
|
// Note: Tests cases below here will not work in practice due to current limitations on indexing
|
||||||
// into ModelExpressions. Will be fixed in https://github.com/aspnet/Mvc/issues/1345.
|
// into ModelExpressions. Will be fixed in https://github.com/aspnet/Mvc/issues/1345.
|
||||||
{ models, typeof(Model), () => models[0].Text, "[0].Text",
|
{ models, typeof(Model), () => models[0].Text, "[0].Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, string.Empty, "Text", "z0__Text") },
|
new TagHelperOutputContent(Environment.NewLine, string.Empty, "HtmlEncode[[Text]]", "z0__Text") },
|
||||||
{ models, typeof(Model), () => models[0].Text, "[0].Text",
|
{ models, typeof(Model), () => models[0].Text, "[0].Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "z0__Text") },
|
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "z0__Text") },
|
||||||
{ models, typeof(Model), () => models[0].Text, "[0].Text",
|
{ models, typeof(Model), () => models[0].Text, "[0].Text",
|
||||||
new TagHelperOutputContent(string.Empty, Environment.NewLine, Environment.NewLine, "z0__Text") },
|
new TagHelperOutputContent(string.Empty, Environment.NewLine, Environment.NewLine, "z0__Text") },
|
||||||
{ models, typeof(Model), () => models[1].Text, "[1].Text",
|
{ models, typeof(Model), () => models[1].Text, "[1].Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, string.Empty, "Text", "z1__Text") },
|
new TagHelperOutputContent(Environment.NewLine, string.Empty, "HtmlEncode[[Text]]", "z1__Text") },
|
||||||
{ models, typeof(Model), () => models[1].Text, "[1].Text",
|
{ models, typeof(Model), () => models[1].Text, "[1].Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "z1__Text") },
|
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "z1__Text") },
|
||||||
{ models, typeof(Model), () => models[1].Text, "[1].Text",
|
{ models, typeof(Model), () => models[1].Text, "[1].Text",
|
||||||
|
|
@ -126,13 +126,13 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
new TagHelperOutputContent("Hello World1", "Hello World2", "Hello World2", "z1__Text") },
|
new TagHelperOutputContent("Hello World1", "Hello World2", "Hello World2", "z1__Text") },
|
||||||
|
|
||||||
{ models, typeof(NestedModel), () => models[0].NestedModel.Text, "[0].NestedModel.Text",
|
{ models, typeof(NestedModel), () => models[0].NestedModel.Text, "[0].NestedModel.Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, string.Empty, "Text", "z0__NestedModel_Text") },
|
new TagHelperOutputContent(Environment.NewLine, string.Empty, "HtmlEncode[[Text]]", "z0__NestedModel_Text") },
|
||||||
{ models, typeof(NestedModel), () => models[0].NestedModel.Text, "[0].NestedModel.Text",
|
{ models, typeof(NestedModel), () => models[0].NestedModel.Text, "[0].NestedModel.Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "z0__NestedModel_Text") },
|
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "z0__NestedModel_Text") },
|
||||||
{ models, typeof(NestedModel), () => models[0].NestedModel.Text, "[0].NestedModel.Text",
|
{ models, typeof(NestedModel), () => models[0].NestedModel.Text, "[0].NestedModel.Text",
|
||||||
new TagHelperOutputContent(string.Empty, Environment.NewLine, Environment.NewLine, "z0__NestedModel_Text") },
|
new TagHelperOutputContent(string.Empty, Environment.NewLine, Environment.NewLine, "z0__NestedModel_Text") },
|
||||||
{ models, typeof(NestedModel), () => models[1].NestedModel.Text, "[1].NestedModel.Text",
|
{ models, typeof(NestedModel), () => models[1].NestedModel.Text, "[1].NestedModel.Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, string.Empty, "Text", "z1__NestedModel_Text") },
|
new TagHelperOutputContent(Environment.NewLine, string.Empty, "HtmlEncode[[Text]]", "z1__NestedModel_Text") },
|
||||||
{ models, typeof(NestedModel), () => models[1].NestedModel.Text, "[1].NestedModel.Text",
|
{ models, typeof(NestedModel), () => models[1].NestedModel.Text, "[1].NestedModel.Text",
|
||||||
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "z1__NestedModel_Text") },
|
new TagHelperOutputContent(Environment.NewLine, "Hello World", "Hello World", "z1__NestedModel_Text") },
|
||||||
{ models, typeof(NestedModel), () => models[1].NestedModel.Text, "[1].NestedModel.Text",
|
{ models, typeof(NestedModel), () => models[1].NestedModel.Text, "[1].NestedModel.Text",
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ using Microsoft.Framework.Expiration.Interfaces;
|
||||||
using Microsoft.Framework.Logging;
|
using Microsoft.Framework.Logging;
|
||||||
using Microsoft.Framework.Runtime;
|
using Microsoft.Framework.Runtime;
|
||||||
using Microsoft.Framework.WebEncoders;
|
using Microsoft.Framework.WebEncoders;
|
||||||
|
using Microsoft.Framework.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -178,8 +179,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var viewContext = MakeViewContext();
|
var viewContext = MakeViewContext();
|
||||||
var helper = new LinkTagHelper
|
var helper = new LinkTagHelper
|
||||||
{
|
{
|
||||||
HtmlEncoder = new HtmlEncoder(),
|
HtmlEncoder = new CommonTestEncoder(),
|
||||||
JavaScriptEncoder = new JavaScriptStringEncoder(),
|
JavaScriptEncoder = new CommonTestEncoder(),
|
||||||
Logger = logger.Object,
|
Logger = logger.Object,
|
||||||
HostingEnvironment = hostingEnvironment,
|
HostingEnvironment = hostingEnvironment,
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -222,8 +223,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var viewContext = MakeViewContext();
|
var viewContext = MakeViewContext();
|
||||||
var helper = new LinkTagHelper
|
var helper = new LinkTagHelper
|
||||||
{
|
{
|
||||||
HtmlEncoder = new HtmlEncoder(),
|
HtmlEncoder = new CommonTestEncoder(),
|
||||||
JavaScriptEncoder = new JavaScriptStringEncoder(),
|
JavaScriptEncoder = new CommonTestEncoder(),
|
||||||
Logger = logger.Object,
|
Logger = logger.Object,
|
||||||
HostingEnvironment = hostingEnvironment,
|
HostingEnvironment = hostingEnvironment,
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -240,7 +241,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.StartsWith(
|
Assert.StartsWith(
|
||||||
"<link rel=\"stylesheet\" data-extra=\"something\" href=\"test.css\"", output.Content.GetContent());
|
"<link rel=\"stylesheet\" data-extra=\"something\" href=\"HtmlEncode[[test.css]]\"", output.Content.GetContent());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TheoryData DoesNotRunWhenARequiredAttributeIsMissing_Data
|
public static TheoryData DoesNotRunWhenARequiredAttributeIsMissing_Data
|
||||||
|
|
@ -392,7 +393,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
.Returns(new[] { "/css/site.css", "/base.css" });
|
.Returns(new[] { "/css/site.css", "/base.css" });
|
||||||
var helper = new LinkTagHelper
|
var helper = new LinkTagHelper
|
||||||
{
|
{
|
||||||
HtmlEncoder = new HtmlEncoder(),
|
HtmlEncoder = new CommonTestEncoder(),
|
||||||
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
||||||
Logger = logger.Object,
|
Logger = logger.Object,
|
||||||
HostingEnvironment = hostingEnvironment,
|
HostingEnvironment = hostingEnvironment,
|
||||||
|
|
@ -407,8 +408,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal(
|
Assert.Equal(
|
||||||
"<link rel=\"stylesheet\" href=\"/css/site.css\" />" +
|
"<link rel=\"stylesheet\" href=\"HtmlEncode[[/css/site.css]]\" />" +
|
||||||
"<link rel=\"stylesheet\" href=\"/base.css\" />",
|
"<link rel=\"stylesheet\" href=\"HtmlEncode[[/base.css]]\" />",
|
||||||
output.Content.GetContent());
|
output.Content.GetContent());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -435,7 +436,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
.Returns(new[] { "/css/site.css", "/base.css" });
|
.Returns(new[] { "/css/site.css", "/base.css" });
|
||||||
var helper = new LinkTagHelper
|
var helper = new LinkTagHelper
|
||||||
{
|
{
|
||||||
HtmlEncoder = new TestHtmlEncoder(),
|
HtmlEncoder = new CommonTestEncoder(),
|
||||||
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
||||||
Logger = logger.Object,
|
Logger = logger.Object,
|
||||||
HostingEnvironment = hostingEnvironment,
|
HostingEnvironment = hostingEnvironment,
|
||||||
|
|
@ -475,7 +476,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var viewContext = MakeViewContext();
|
var viewContext = MakeViewContext();
|
||||||
var helper = new LinkTagHelper
|
var helper = new LinkTagHelper
|
||||||
{
|
{
|
||||||
HtmlEncoder = new TestHtmlEncoder(),
|
HtmlEncoder = new CommonTestEncoder(),
|
||||||
Logger = logger.Object,
|
Logger = logger.Object,
|
||||||
HostingEnvironment = hostingEnvironment,
|
HostingEnvironment = hostingEnvironment,
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -514,7 +515,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var viewContext = MakeViewContext("/bar");
|
var viewContext = MakeViewContext("/bar");
|
||||||
var helper = new LinkTagHelper
|
var helper = new LinkTagHelper
|
||||||
{
|
{
|
||||||
HtmlEncoder = new TestHtmlEncoder(),
|
HtmlEncoder = new CommonTestEncoder(),
|
||||||
Logger = logger.Object,
|
Logger = logger.Object,
|
||||||
HostingEnvironment = hostingEnvironment,
|
HostingEnvironment = hostingEnvironment,
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -557,7 +558,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
.Returns(new[] { "/css/site.css", "/base.css" });
|
.Returns(new[] { "/css/site.css", "/base.css" });
|
||||||
var helper = new LinkTagHelper
|
var helper = new LinkTagHelper
|
||||||
{
|
{
|
||||||
HtmlEncoder = new TestHtmlEncoder(),
|
HtmlEncoder = new CommonTestEncoder(),
|
||||||
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
||||||
Logger = logger.Object,
|
Logger = logger.Object,
|
||||||
HostingEnvironment = hostingEnvironment,
|
HostingEnvironment = hostingEnvironment,
|
||||||
|
|
|
||||||
|
|
@ -233,14 +233,14 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
"text")
|
"text")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text", null, null, new [] { "text", },
|
"HtmlEncode[[text]]", null, null, new [] { "text", },
|
||||||
GetTagHelperOutput(
|
GetTagHelperOutput(
|
||||||
"not-option",
|
"not-option",
|
||||||
new Dictionary<string, object>
|
new Dictionary<string, object>
|
||||||
{
|
{
|
||||||
{ "label", "my-label" }, { "selected", "selected" }
|
{ "label", "my-label" }, { "selected", "selected" }
|
||||||
},
|
},
|
||||||
"text")
|
"HtmlEncode[[text]]")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text", string.Empty, null, new [] { "text", },
|
"text", string.Empty, null, new [] { "text", },
|
||||||
|
|
@ -253,14 +253,14 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
"text")
|
"text")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text", null, null, new [] { string.Empty, "text", },
|
"HtmlEncode[[text]]", null, null, new [] { string.Empty, "text", },
|
||||||
GetTagHelperOutput(
|
GetTagHelperOutput(
|
||||||
"not-option",
|
"not-option",
|
||||||
new Dictionary<string, object>
|
new Dictionary<string, object>
|
||||||
{
|
{
|
||||||
{ "label", "my-label" }, { "selected", "selected" }
|
{ "label", "my-label" }, { "selected", "selected" }
|
||||||
},
|
},
|
||||||
"text")
|
"HtmlEncode[[text]]")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text", string.Empty, "value", null,
|
"text", string.Empty, "value", null,
|
||||||
|
|
@ -400,15 +400,16 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
uniqueId: "test",
|
uniqueId: "test",
|
||||||
getChildContentAsync: () =>
|
getChildContentAsync: () =>
|
||||||
{
|
{
|
||||||
var tagHelperContent = new DefaultTagHelperContent();
|
// GetChildContentAsync should not be invoked since we are setting the content below.
|
||||||
tagHelperContent.SetContent(originalContent);
|
Assert.True(false);
|
||||||
return Task.FromResult<TagHelperContent>(tagHelperContent);
|
return Task.FromResult<TagHelperContent>(null);
|
||||||
});
|
});
|
||||||
|
|
||||||
var output = new TagHelperOutput(expectedTagHelperOutput.TagName, originalAttributes)
|
var output = new TagHelperOutput(expectedTagHelperOutput.TagName, originalAttributes)
|
||||||
{
|
{
|
||||||
SelfClosing = false,
|
SelfClosing = false,
|
||||||
};
|
};
|
||||||
|
|
||||||
output.Content.SetContent(originalContent);
|
output.Content.SetContent(originalContent);
|
||||||
|
|
||||||
var metadataProvider = new EmptyModelMetadataProvider();
|
var metadataProvider = new EmptyModelMetadataProvider();
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ using Microsoft.Framework.Expiration.Interfaces;
|
||||||
using Microsoft.Framework.Logging;
|
using Microsoft.Framework.Logging;
|
||||||
using Microsoft.Framework.Runtime;
|
using Microsoft.Framework.Runtime;
|
||||||
using Microsoft.Framework.WebEncoders;
|
using Microsoft.Framework.WebEncoders;
|
||||||
|
using Microsoft.Framework.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -222,8 +223,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var viewContext = MakeViewContext();
|
var viewContext = MakeViewContext();
|
||||||
var helper = new ScriptTagHelper
|
var helper = new ScriptTagHelper
|
||||||
{
|
{
|
||||||
HtmlEncoder = new HtmlEncoder(),
|
HtmlEncoder = new CommonTestEncoder(),
|
||||||
JavaScriptEncoder = new JavaScriptStringEncoder(),
|
JavaScriptEncoder = new CommonTestEncoder(),
|
||||||
Logger = logger,
|
Logger = logger,
|
||||||
HostingEnvironment = hostingEnvironment,
|
HostingEnvironment = hostingEnvironment,
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -453,8 +454,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
|
|
||||||
var helper = new ScriptTagHelper
|
var helper = new ScriptTagHelper
|
||||||
{
|
{
|
||||||
HtmlEncoder = new HtmlEncoder(),
|
HtmlEncoder = new CommonTestEncoder(),
|
||||||
JavaScriptEncoder = new JavaScriptStringEncoder(),
|
JavaScriptEncoder = new CommonTestEncoder(),
|
||||||
Logger = logger,
|
Logger = logger,
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
HostingEnvironment = hostingEnvironment,
|
HostingEnvironment = hostingEnvironment,
|
||||||
|
|
@ -469,7 +470,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.StartsWith(
|
Assert.StartsWith(
|
||||||
"<script data-extra=\"something\" data-more=\"else\" src=\"/blank.js\"", output.Content.GetContent());
|
"<script data-extra=\"HtmlEncode[[something]]\" data-more=\"HtmlEncode[[else]]\" src=\"HtmlEncode[[/blank.js]]\"",
|
||||||
|
output.Content.GetContent());
|
||||||
Assert.Empty(logger.Logged);
|
Assert.Empty(logger.Logged);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -498,7 +500,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
Src = "/js/site.js",
|
Src = "/js/site.js",
|
||||||
SrcInclude = "**/*.js",
|
SrcInclude = "**/*.js",
|
||||||
HtmlEncoder = new HtmlEncoder(),
|
HtmlEncoder = new CommonTestEncoder(),
|
||||||
Cache = MakeCache(),
|
Cache = MakeCache(),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -506,7 +508,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
await helper.ProcessAsync(context, output);
|
await helper.ProcessAsync(context, output);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal("<script src=\"/js/site.js\"></script><script src=\"/common.js\"></script>", output.Content.GetContent());
|
Assert.Equal("<script src=\"HtmlEncode[[/js/site.js]]\"></script>" +
|
||||||
|
"<script src=\"HtmlEncode[[/common.js]]\"></script>", output.Content.GetContent());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -534,7 +537,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
Src = "/js/site.js",
|
Src = "/js/site.js",
|
||||||
SrcInclude = "**/*.js",
|
SrcInclude = "**/*.js",
|
||||||
HtmlEncoder = new TestHtmlEncoder(),
|
HtmlEncoder = new CommonTestEncoder(),
|
||||||
JavaScriptEncoder = new TestJavaScriptEncoder(),
|
JavaScriptEncoder = new TestJavaScriptEncoder(),
|
||||||
Cache = MakeCache(),
|
Cache = MakeCache(),
|
||||||
};
|
};
|
||||||
|
|
@ -569,7 +572,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
HostingEnvironment = hostingEnvironment,
|
HostingEnvironment = hostingEnvironment,
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
FileVersion = true,
|
FileVersion = true,
|
||||||
HtmlEncoder = new TestHtmlEncoder(),
|
HtmlEncoder = new CommonTestEncoder(),
|
||||||
JavaScriptEncoder = new TestJavaScriptEncoder(),
|
JavaScriptEncoder = new TestJavaScriptEncoder(),
|
||||||
Src = "/js/site.js",
|
Src = "/js/site.js",
|
||||||
Cache = MakeCache(),
|
Cache = MakeCache(),
|
||||||
|
|
@ -606,7 +609,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
HostingEnvironment = hostingEnvironment,
|
HostingEnvironment = hostingEnvironment,
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
FileVersion = true,
|
FileVersion = true,
|
||||||
HtmlEncoder = new TestHtmlEncoder(),
|
HtmlEncoder = new CommonTestEncoder(),
|
||||||
JavaScriptEncoder = new TestJavaScriptEncoder(),
|
JavaScriptEncoder = new TestJavaScriptEncoder(),
|
||||||
Src = "/bar/js/site.js",
|
Src = "/bar/js/site.js",
|
||||||
Cache = MakeCache(),
|
Cache = MakeCache(),
|
||||||
|
|
@ -647,7 +650,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
FallbackSrc = "fallback.js",
|
FallbackSrc = "fallback.js",
|
||||||
FallbackTestExpression = "isavailable()",
|
FallbackTestExpression = "isavailable()",
|
||||||
FileVersion = true,
|
FileVersion = true,
|
||||||
HtmlEncoder = new TestHtmlEncoder(),
|
HtmlEncoder = new CommonTestEncoder(),
|
||||||
JavaScriptEncoder = new TestJavaScriptEncoder(),
|
JavaScriptEncoder = new TestJavaScriptEncoder(),
|
||||||
Src = "/js/site.js",
|
Src = "/js/site.js",
|
||||||
Cache = MakeCache(),
|
Cache = MakeCache(),
|
||||||
|
|
@ -690,7 +693,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
SrcInclude = "*.js",
|
SrcInclude = "*.js",
|
||||||
FileVersion = true,
|
FileVersion = true,
|
||||||
HtmlEncoder = new TestHtmlEncoder(),
|
HtmlEncoder = new CommonTestEncoder(),
|
||||||
JavaScriptEncoder = new TestJavaScriptEncoder(),
|
JavaScriptEncoder = new TestJavaScriptEncoder(),
|
||||||
Src = "/js/site.js",
|
Src = "/js/site.js",
|
||||||
Cache = MakeCache(),
|
Cache = MakeCache(),
|
||||||
|
|
|
||||||
|
|
@ -44,17 +44,17 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
modelWithText,
|
modelWithText,
|
||||||
};
|
};
|
||||||
var noneSelected = "<option></option>" + Environment.NewLine +
|
var noneSelected = "<option></option>" + Environment.NewLine +
|
||||||
"<option>outer text</option>" + Environment.NewLine +
|
"<option>HtmlEncode[[outer text]]</option>" + Environment.NewLine +
|
||||||
"<option>inner text</option>" + Environment.NewLine +
|
"<option>HtmlEncode[[inner text]]</option>" + Environment.NewLine +
|
||||||
"<option>other text</option>" + Environment.NewLine;
|
"<option>HtmlEncode[[other text]]</option>" + Environment.NewLine;
|
||||||
var innerSelected = "<option></option>" + Environment.NewLine +
|
var innerSelected = "<option></option>" + Environment.NewLine +
|
||||||
"<option>outer text</option>" + Environment.NewLine +
|
"<option>HtmlEncode[[outer text]]</option>" + Environment.NewLine +
|
||||||
"<option selected=\"selected\">inner text</option>" + Environment.NewLine +
|
"<option selected=\"HtmlEncode[[selected]]\">HtmlEncode[[inner text]]</option>" + Environment.NewLine +
|
||||||
"<option>other text</option>" + Environment.NewLine;
|
"<option>HtmlEncode[[other text]]</option>" + Environment.NewLine;
|
||||||
var outerSelected = "<option></option>" + Environment.NewLine +
|
var outerSelected = "<option></option>" + Environment.NewLine +
|
||||||
"<option selected=\"selected\">outer text</option>" + Environment.NewLine +
|
"<option selected=\"HtmlEncode[[selected]]\">HtmlEncode[[outer text]]</option>" + Environment.NewLine +
|
||||||
"<option>inner text</option>" + Environment.NewLine +
|
"<option>HtmlEncode[[inner text]]</option>" + Environment.NewLine +
|
||||||
"<option>other text</option>" + Environment.NewLine;
|
"<option>HtmlEncode[[other text]]</option>" + Environment.NewLine;
|
||||||
|
|
||||||
return new TheoryData<object, Type, Func<object>, NameAndId, string>
|
return new TheoryData<object, Type, Func<object>, NameAndId, string>
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
||||||
using Microsoft.AspNet.Testing;
|
using Microsoft.AspNet.Testing;
|
||||||
using Microsoft.Framework.WebEncoders;
|
using Microsoft.Framework.WebEncoders.Testing;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.TagHelpers
|
namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
|
|
@ -165,7 +165,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var expectedAttribute = new KeyValuePair<string, object>("type", "btn");
|
var expectedAttribute = new KeyValuePair<string, object>("type", "btn");
|
||||||
tagHelperOutput.Attributes.Add(expectedAttribute);
|
tagHelperOutput.Attributes.Add(expectedAttribute);
|
||||||
|
|
||||||
var tagBuilder = new TagBuilder("p", new HtmlEncoder());
|
var tagBuilder = new TagBuilder("p", new CommonTestEncoder());
|
||||||
tagBuilder.Attributes.Add("type", "hello");
|
tagBuilder.Attributes.Add("type", "hello");
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -185,7 +185,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
attributes: new Dictionary<string, object>());
|
attributes: new Dictionary<string, object>());
|
||||||
tagHelperOutput.Attributes.Add("class", "Hello");
|
tagHelperOutput.Attributes.Add("class", "Hello");
|
||||||
|
|
||||||
var tagBuilder = new TagBuilder("p", new HtmlEncoder());
|
var tagBuilder = new TagBuilder("p", new CommonTestEncoder());
|
||||||
tagBuilder.Attributes.Add("class", "btn");
|
tagBuilder.Attributes.Add("class", "btn");
|
||||||
|
|
||||||
var expectedAttribute = new KeyValuePair<string, object>("class", "Hello btn");
|
var expectedAttribute = new KeyValuePair<string, object>("class", "Hello btn");
|
||||||
|
|
@ -211,7 +211,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
attributes: new Dictionary<string, object>());
|
attributes: new Dictionary<string, object>());
|
||||||
tagHelperOutput.Attributes.Add(originalName, "Hello");
|
tagHelperOutput.Attributes.Add(originalName, "Hello");
|
||||||
|
|
||||||
var tagBuilder = new TagBuilder("p", new HtmlEncoder());
|
var tagBuilder = new TagBuilder("p", new CommonTestEncoder());
|
||||||
tagBuilder.Attributes.Add(updateName, "btn");
|
tagBuilder.Attributes.Add(updateName, "btn");
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -230,7 +230,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
"p",
|
"p",
|
||||||
attributes: new Dictionary<string, object>());
|
attributes: new Dictionary<string, object>());
|
||||||
|
|
||||||
var tagBuilder = new TagBuilder("p", new HtmlEncoder());
|
var tagBuilder = new TagBuilder("p", new CommonTestEncoder());
|
||||||
var expectedAttribute = new KeyValuePair<string, object>("visible", "val < 3");
|
var expectedAttribute = new KeyValuePair<string, object>("visible", "val < 3");
|
||||||
tagBuilder.Attributes.Add("visible", "val < 3");
|
tagBuilder.Attributes.Add("visible", "val < 3");
|
||||||
|
|
||||||
|
|
@ -250,7 +250,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
"p",
|
"p",
|
||||||
attributes: new Dictionary<string, object>());
|
attributes: new Dictionary<string, object>());
|
||||||
|
|
||||||
var tagBuilder = new TagBuilder("p", new HtmlEncoder());
|
var tagBuilder = new TagBuilder("p", new CommonTestEncoder());
|
||||||
var expectedAttribute1 = new KeyValuePair<string, object>("class", "btn");
|
var expectedAttribute1 = new KeyValuePair<string, object>("class", "btn");
|
||||||
var expectedAttribute2 = new KeyValuePair<string, object>("class2", "btn");
|
var expectedAttribute2 = new KeyValuePair<string, object>("class2", "btn");
|
||||||
tagBuilder.Attributes.Add("class", "btn");
|
tagBuilder.Attributes.Add("class", "btn");
|
||||||
|
|
@ -277,7 +277,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var expectedAttribute = new KeyValuePair<string, object>("class", "btn");
|
var expectedAttribute = new KeyValuePair<string, object>("class", "btn");
|
||||||
tagHelperOutput.Attributes.Add(expectedAttribute);
|
tagHelperOutput.Attributes.Add(expectedAttribute);
|
||||||
|
|
||||||
var tagBuilder = new TagBuilder("p", new HtmlEncoder());
|
var tagBuilder = new TagBuilder("p", new CommonTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
tagHelperOutput.MergeAttributes(tagBuilder);
|
tagHelperOutput.MergeAttributes(tagBuilder);
|
||||||
|
|
@ -297,7 +297,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var expectedOutputAttribute = new KeyValuePair<string, object>("class", "btn");
|
var expectedOutputAttribute = new KeyValuePair<string, object>("class", "btn");
|
||||||
tagHelperOutput.Attributes.Add(expectedOutputAttribute);
|
tagHelperOutput.Attributes.Add(expectedOutputAttribute);
|
||||||
|
|
||||||
var tagBuilder = new TagBuilder("p", new HtmlEncoder());
|
var tagBuilder = new TagBuilder("p", new CommonTestEncoder());
|
||||||
var expectedBuilderAttribute = new KeyValuePair<string, object>("for", "hello");
|
var expectedBuilderAttribute = new KeyValuePair<string, object>("for", "hello");
|
||||||
tagBuilder.Attributes.Add("for", "hello");
|
tagBuilder.Attributes.Add("for", "hello");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Routing;
|
using Microsoft.AspNet.Routing;
|
||||||
using Microsoft.Framework.DependencyInjection;
|
using Microsoft.Framework.DependencyInjection;
|
||||||
using Microsoft.Framework.OptionsModel;
|
using Microsoft.Framework.OptionsModel;
|
||||||
using Microsoft.Framework.WebEncoders;
|
using Microsoft.Framework.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.TagHelpers
|
namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
|
|
@ -39,7 +39,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
IOptions<MvcOptions> options,
|
IOptions<MvcOptions> options,
|
||||||
IUrlHelper urlHelper,
|
IUrlHelper urlHelper,
|
||||||
IDictionary<string, object> validationAttributes)
|
IDictionary<string, object> validationAttributes)
|
||||||
: base(GetAntiForgery(), options, metadataProvider, urlHelper, new HtmlEncoder())
|
: base(GetAntiForgery(), options, metadataProvider, urlHelper, new CommonTestEncoder())
|
||||||
{
|
{
|
||||||
_validationAttributes = validationAttributes;
|
_validationAttributes = validationAttributes;
|
||||||
}
|
}
|
||||||
|
|
@ -71,7 +71,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
|
|
||||||
public override TagBuilder GenerateAntiForgery(ViewContext viewContext)
|
public override TagBuilder GenerateAntiForgery(ViewContext viewContext)
|
||||||
{
|
{
|
||||||
return new TagBuilder("input", new HtmlEncoder())
|
return new TagBuilder("input", new CommonTestEncoder())
|
||||||
{
|
{
|
||||||
Attributes =
|
Attributes =
|
||||||
{
|
{
|
||||||
|
|
@ -116,7 +116,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
Mock.Of<IDataProtectionProvider>(),
|
Mock.Of<IDataProtectionProvider>(),
|
||||||
Mock.Of<IAntiForgeryAdditionalDataProvider>(),
|
Mock.Of<IAntiForgeryAdditionalDataProvider>(),
|
||||||
optionsAccessor.Object,
|
optionsAccessor.Object,
|
||||||
new HtmlEncoder(),
|
new CommonTestEncoder(),
|
||||||
mockDataProtectionOptions.Object);
|
mockDataProtectionOptions.Object);
|
||||||
|
|
||||||
return antiForgery;
|
return antiForgery;
|
||||||
|
|
|
||||||
|
|
@ -45,35 +45,35 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
{
|
{
|
||||||
{ null, typeof(Model), null,
|
{ null, typeof(Model), null,
|
||||||
new NameAndId("Text", "Text"),
|
new NameAndId("Text", "Text"),
|
||||||
Environment.NewLine },
|
Environment.NewLine + "HtmlEncode[[]]" },
|
||||||
|
|
||||||
{ modelWithNull, typeof(Model), modelWithNull.Text,
|
{ modelWithNull, typeof(Model), modelWithNull.Text,
|
||||||
new NameAndId("Text", "Text"),
|
new NameAndId("Text", "Text"),
|
||||||
Environment.NewLine },
|
Environment.NewLine + "HtmlEncode[[]]" },
|
||||||
{ modelWithText, typeof(Model), modelWithText.Text,
|
{ modelWithText, typeof(Model), modelWithText.Text,
|
||||||
new NameAndId("Text", "Text"),
|
new NameAndId("Text", "Text"),
|
||||||
Environment.NewLine + "outer text" },
|
Environment.NewLine + "HtmlEncode[[outer text]]" },
|
||||||
|
|
||||||
{ modelWithNull, typeof(NestedModel), modelWithNull.NestedModel.Text,
|
{ modelWithNull, typeof(NestedModel), modelWithNull.NestedModel.Text,
|
||||||
new NameAndId("NestedModel.Text", "NestedModel_Text"),
|
new NameAndId("NestedModel.Text", "NestedModel_Text"),
|
||||||
Environment.NewLine },
|
Environment.NewLine + "HtmlEncode[[]]" },
|
||||||
{ modelWithText, typeof(NestedModel), modelWithText.NestedModel.Text,
|
{ modelWithText, typeof(NestedModel), modelWithText.NestedModel.Text,
|
||||||
new NameAndId("NestedModel.Text", "NestedModel_Text"),
|
new NameAndId("NestedModel.Text", "NestedModel_Text"),
|
||||||
Environment.NewLine + "inner text" },
|
Environment.NewLine + "HtmlEncode[[inner text]]" },
|
||||||
|
|
||||||
{ models, typeof(Model), models[0].Text,
|
{ models, typeof(Model), models[0].Text,
|
||||||
new NameAndId("[0].Text", "z0__Text"),
|
new NameAndId("[0].Text", "z0__Text"),
|
||||||
Environment.NewLine },
|
Environment.NewLine + "HtmlEncode[[]]" },
|
||||||
{ models, typeof(Model), models[1].Text,
|
{ models, typeof(Model), models[1].Text,
|
||||||
new NameAndId("[1].Text", "z1__Text"),
|
new NameAndId("[1].Text", "z1__Text"),
|
||||||
Environment.NewLine + "outer text" },
|
Environment.NewLine + "HtmlEncode[[outer text]]" },
|
||||||
|
|
||||||
{ models, typeof(NestedModel), models[0].NestedModel.Text,
|
{ models, typeof(NestedModel), models[0].NestedModel.Text,
|
||||||
new NameAndId("[0].NestedModel.Text", "z0__NestedModel_Text"),
|
new NameAndId("[0].NestedModel.Text", "z0__NestedModel_Text"),
|
||||||
Environment.NewLine },
|
Environment.NewLine + "HtmlEncode[[]]" },
|
||||||
{ models, typeof(NestedModel), models[1].NestedModel.Text,
|
{ models, typeof(NestedModel), models[1].NestedModel.Text,
|
||||||
new NameAndId("[1].NestedModel.Text", "z1__NestedModel_Text"),
|
new NameAndId("[1].NestedModel.Text", "z1__NestedModel_Text"),
|
||||||
Environment.NewLine + "inner text" },
|
Environment.NewLine + "HtmlEncode[[inner text]]" },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ using Microsoft.AspNet.Mvc.ModelBinding;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
||||||
using Microsoft.AspNet.Routing;
|
using Microsoft.AspNet.Routing;
|
||||||
using Microsoft.Framework.WebEncoders;
|
using Microsoft.Framework.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -115,7 +115,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
generator
|
generator
|
||||||
.Setup(mock =>
|
.Setup(mock =>
|
||||||
mock.GenerateValidationMessage(expectedViewContext, "Hello", null, null, null))
|
mock.GenerateValidationMessage(expectedViewContext, "Hello", null, null, null))
|
||||||
.Returns(new TagBuilder("span", new HtmlEncoder()))
|
.Returns(new TagBuilder("span", new CommonTestEncoder()))
|
||||||
.Verifiable();
|
.Verifiable();
|
||||||
validationMessageTagHelper.Generator = generator.Object;
|
validationMessageTagHelper.Generator = generator.Object;
|
||||||
validationMessageTagHelper.ViewContext = expectedViewContext;
|
validationMessageTagHelper.ViewContext = expectedViewContext;
|
||||||
|
|
@ -158,7 +158,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
tagHelperContent.SetContent(childContent);
|
tagHelperContent.SetContent(childContent);
|
||||||
return Task.FromResult<TagHelperContent>(tagHelperContent);
|
return Task.FromResult<TagHelperContent>(tagHelperContent);
|
||||||
});
|
});
|
||||||
var tagBuilder = new TagBuilder("span2", new HtmlEncoder())
|
var tagBuilder = new TagBuilder("span2", new CommonTestEncoder())
|
||||||
{
|
{
|
||||||
InnerHtml = "New HTML"
|
InnerHtml = "New HTML"
|
||||||
};
|
};
|
||||||
|
|
@ -216,7 +216,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
tagHelperContent.SetContent(childContent);
|
tagHelperContent.SetContent(childContent);
|
||||||
return Task.FromResult<TagHelperContent>(tagHelperContent);
|
return Task.FromResult<TagHelperContent>(tagHelperContent);
|
||||||
});
|
});
|
||||||
var tagBuilder = new TagBuilder("span2", new HtmlEncoder())
|
var tagBuilder = new TagBuilder("span2", new CommonTestEncoder())
|
||||||
{
|
{
|
||||||
InnerHtml = "New HTML"
|
InnerHtml = "New HTML"
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
"Microsoft.AspNet.Mvc.TestCommon": { "version": "6.0.0-*", "type": "build" },
|
"Microsoft.AspNet.Mvc.TestCommon": { "version": "6.0.0-*", "type": "build" },
|
||||||
"Microsoft.AspNet.Testing": "1.0.0-*",
|
"Microsoft.AspNet.Testing": "1.0.0-*",
|
||||||
"Microsoft.Framework.Logging.Interfaces": "1.0.0-*",
|
"Microsoft.Framework.Logging.Interfaces": "1.0.0-*",
|
||||||
|
"Microsoft.Framework.WebEncoders.Testing": "1.0.0-*",
|
||||||
"xunit.runner.aspnet": "2.0.0-aspnet-*"
|
"xunit.runner.aspnet": "2.0.0-aspnet-*"
|
||||||
},
|
},
|
||||||
"commands": {
|
"commands": {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue