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