React to WebEncoders changes.
This commit is contained in:
parent
53060be2d7
commit
52f4a83139
|
|
@ -5,9 +5,8 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.Extensions.Localization;
|
using Microsoft.Extensions.Localization;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.Localization
|
namespace Microsoft.AspNet.Mvc.Localization
|
||||||
{
|
{
|
||||||
|
|
@ -18,14 +17,14 @@ namespace Microsoft.AspNet.Mvc.Localization
|
||||||
public class HtmlLocalizer : IHtmlLocalizer
|
public class HtmlLocalizer : IHtmlLocalizer
|
||||||
{
|
{
|
||||||
private IStringLocalizer _localizer;
|
private IStringLocalizer _localizer;
|
||||||
private readonly IHtmlEncoder _encoder;
|
private readonly HtmlEncoder _encoder;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a new <see cref="HtmlLocalizer"/>.
|
/// Creates a new <see cref="HtmlLocalizer"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="localizer">The <see cref="IStringLocalizer"/> to read strings from.</param>
|
/// <param name="localizer">The <see cref="IStringLocalizer"/> to read strings from.</param>
|
||||||
/// <param name="encoder">The <see cref="IHtmlEncoder"/>.</param>
|
/// <param name="encoder">The <see cref="HtmlEncoder"/>.</param>
|
||||||
public HtmlLocalizer(IStringLocalizer localizer, IHtmlEncoder encoder)
|
public HtmlLocalizer(IStringLocalizer localizer, HtmlEncoder encoder)
|
||||||
{
|
{
|
||||||
if (localizer == null)
|
if (localizer == null)
|
||||||
{
|
{
|
||||||
|
|
@ -266,7 +265,7 @@ namespace Microsoft.AspNet.Mvc.Localization
|
||||||
{
|
{
|
||||||
if (tokenBuffer != null && tokenBuffer.Length > 0)
|
if (tokenBuffer != null && tokenBuffer.Length > 0)
|
||||||
{
|
{
|
||||||
outputBuffer.Append(_encoder.HtmlEncode(string.Format(tokenBuffer.ToString(), arguments)));
|
outputBuffer.Append(_encoder.Encode(string.Format(tokenBuffer.ToString(), arguments)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.Extensions.Localization;
|
using Microsoft.Extensions.Localization;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.Localization
|
namespace Microsoft.AspNet.Mvc.Localization
|
||||||
{
|
{
|
||||||
|
|
@ -13,14 +13,14 @@ namespace Microsoft.AspNet.Mvc.Localization
|
||||||
public class HtmlLocalizerFactory : IHtmlLocalizerFactory
|
public class HtmlLocalizerFactory : IHtmlLocalizerFactory
|
||||||
{
|
{
|
||||||
private readonly IStringLocalizerFactory _factory;
|
private readonly IStringLocalizerFactory _factory;
|
||||||
private readonly IHtmlEncoder _encoder;
|
private readonly HtmlEncoder _encoder;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a new <see cref="HtmlLocalizer"/>.
|
/// Creates a new <see cref="HtmlLocalizer"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="localizerFactory">The <see cref="IStringLocalizerFactory"/>.</param>
|
/// <param name="localizerFactory">The <see cref="IStringLocalizerFactory"/>.</param>
|
||||||
/// <param name="encoder">The <see cref="IHtmlEncoder"/>.</param>
|
/// <param name="encoder">The <see cref="HtmlEncoder"/>.</param>
|
||||||
public HtmlLocalizerFactory(IStringLocalizerFactory localizerFactory, IHtmlEncoder encoder)
|
public HtmlLocalizerFactory(IStringLocalizerFactory localizerFactory, HtmlEncoder encoder)
|
||||||
{
|
{
|
||||||
if (localizerFactory == null)
|
if (localizerFactory == null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Mvc.Razor;
|
using Microsoft.AspNet.Mvc.Razor;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
|
@ -27,9 +28,9 @@ namespace Microsoft.AspNet.Mvc.Localization.Internal
|
||||||
services.TryAdd(ServiceDescriptor.Singleton<IHtmlLocalizerFactory, HtmlLocalizerFactory>());
|
services.TryAdd(ServiceDescriptor.Singleton<IHtmlLocalizerFactory, HtmlLocalizerFactory>());
|
||||||
services.TryAdd(ServiceDescriptor.Transient(typeof(IHtmlLocalizer<>), typeof(HtmlLocalizer<>)));
|
services.TryAdd(ServiceDescriptor.Transient(typeof(IHtmlLocalizer<>), typeof(HtmlLocalizer<>)));
|
||||||
services.TryAdd(ServiceDescriptor.Transient<IViewLocalizer, ViewLocalizer>());
|
services.TryAdd(ServiceDescriptor.Transient<IViewLocalizer, ViewLocalizer>());
|
||||||
if (!services.Any(sd => sd.ServiceType == typeof(IHtmlEncoder)))
|
if (!services.Any(sd => sd.ServiceType == typeof(HtmlEncoder)))
|
||||||
{
|
{
|
||||||
services.TryAdd(ServiceDescriptor.Instance<IHtmlEncoder>(HtmlEncoder.Default));
|
services.TryAdd(ServiceDescriptor.Instance<HtmlEncoder>(HtmlEncoder.Default));
|
||||||
}
|
}
|
||||||
|
|
||||||
services.AddLocalization(setupAction);
|
services.AddLocalization(setupAction);
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Html.Abstractions;
|
using Microsoft.AspNet.Html.Abstractions;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.Razor
|
namespace Microsoft.AspNet.Mvc.Razor
|
||||||
{
|
{
|
||||||
|
|
@ -20,8 +20,8 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
/// Creates a new instance of <see cref="HelperResult"/>.
|
/// Creates a new instance of <see cref="HelperResult"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="asyncAction">The asynchronous delegate to invoke when
|
/// <param name="asyncAction">The asynchronous delegate to invoke when
|
||||||
/// <see cref="WriteTo(TextWriter, IHtmlEncoder)"/> is called.</param>
|
/// <see cref="WriteTo(TextWriter, HtmlEncoder)"/> is called.</param>
|
||||||
/// <remarks>Calls to <see cref="WriteTo(TextWriter, IHtmlEncoder)"/> result in a blocking invocation of
|
/// <remarks>Calls to <see cref="WriteTo(TextWriter, HtmlEncoder)"/> result in a blocking invocation of
|
||||||
/// <paramref name="asyncAction"/>.</remarks>
|
/// <paramref name="asyncAction"/>.</remarks>
|
||||||
public HelperResult(Func<TextWriter, Task> asyncAction)
|
public HelperResult(Func<TextWriter, Task> asyncAction)
|
||||||
{
|
{
|
||||||
|
|
@ -34,7 +34,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the asynchronous delegate to invoke when <see cref="WriteTo(TextWriter, IHtmlEncoder)"/> is called.
|
/// Gets the asynchronous delegate to invoke when <see cref="WriteTo(TextWriter, HtmlEncoder)"/> is called.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Func<TextWriter, Task> WriteAction
|
public Func<TextWriter, Task> WriteAction
|
||||||
{
|
{
|
||||||
|
|
@ -45,8 +45,8 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
/// Method invoked to produce content from the <see cref="HelperResult"/>.
|
/// Method invoked to produce content from the <see cref="HelperResult"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="writer">The <see cref="TextWriter"/> instance to write to.</param>
|
/// <param name="writer">The <see cref="TextWriter"/> instance to write to.</param>
|
||||||
/// <param name="encoder">The <see cref="IHtmlEncoder"/> to encode the content.</param>
|
/// <param name="encoder">The <see cref="HtmlEncoder"/> to encode the content.</param>
|
||||||
public virtual void WriteTo(TextWriter writer, IHtmlEncoder encoder)
|
public virtual void WriteTo(TextWriter writer, HtmlEncoder encoder)
|
||||||
{
|
{
|
||||||
if (writer == null)
|
if (writer == null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Security.Claims;
|
using System.Security.Claims;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Antiforgery;
|
using Microsoft.AspNet.Antiforgery;
|
||||||
using Microsoft.AspNet.Html.Abstractions;
|
using Microsoft.AspNet.Html.Abstractions;
|
||||||
|
|
@ -20,7 +21,6 @@ using Microsoft.AspNet.PageExecutionInstrumentation;
|
||||||
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
using Microsoft.AspNet.Razor.Runtime.TagHelpers;
|
||||||
using Microsoft.AspNet.Razor.TagHelpers;
|
using Microsoft.AspNet.Razor.TagHelpers;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.Razor
|
namespace Microsoft.AspNet.Mvc.Razor
|
||||||
{
|
{
|
||||||
|
|
@ -76,10 +76,10 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public bool IsPartial { get; set; }
|
public bool IsPartial { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the <see cref="IHtmlEncoder"/> to be used for encoding HTML.
|
/// Gets the <see cref="HtmlEncoder"/> to be used for encoding HTML.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[RazorInject]
|
[RazorInject]
|
||||||
public IHtmlEncoder HtmlEncoder { get; set; }
|
public HtmlEncoder HtmlEncoder { get; set; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public IPageExecutionContext PageExecutionContext { get; set; }
|
public IPageExecutionContext PageExecutionContext { get; set; }
|
||||||
|
|
@ -423,7 +423,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
/// <param name="value">The <see cref="object"/> to write.</param>
|
/// <param name="value">The <see cref="object"/> to write.</param>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// <paramref name="value"/>s of type <see cref="IHtmlContent"/> are written using
|
/// <paramref name="value"/>s of type <see cref="IHtmlContent"/> are written using
|
||||||
/// <see cref="IHtmlContent.WriteTo(TextWriter, IHtmlEncoder)"/>.
|
/// <see cref="IHtmlContent.WriteTo(TextWriter, HtmlEncoder)"/>.
|
||||||
/// For all other types, the encoded result of <see cref="object.ToString"/> is written to the
|
/// For all other types, the encoded result of <see cref="object.ToString"/> is written to the
|
||||||
/// <paramref name="writer"/>.
|
/// <paramref name="writer"/>.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
|
|
@ -441,7 +441,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
/// Writes the specified <paramref name="value"/> with HTML encoding to given <paramref name="writer"/>.
|
/// Writes the specified <paramref name="value"/> with HTML encoding to given <paramref name="writer"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="writer">The <see cref="TextWriter"/> instance to write to.</param>
|
/// <param name="writer">The <see cref="TextWriter"/> instance to write to.</param>
|
||||||
/// <param name="encoder">The <see cref="IHtmlEncoder"/> to use when encoding <paramref name="value"/>.</param>
|
/// <param name="encoder">The <see cref="HtmlEncoder"/> to use when encoding <paramref name="value"/>.</param>
|
||||||
/// <param name="value">The <see cref="object"/> to write.</param>
|
/// <param name="value">The <see cref="object"/> to write.</param>
|
||||||
/// <param name="escapeQuotes">
|
/// <param name="escapeQuotes">
|
||||||
/// If <c>true</c> escapes double quotes in a <paramref name="value"/> of type <see cref="HtmlString"/>.
|
/// If <c>true</c> escapes double quotes in a <paramref name="value"/> of type <see cref="HtmlString"/>.
|
||||||
|
|
@ -449,13 +449,13 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
/// </param>
|
/// </param>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// <paramref name="value"/>s of type <see cref="IHtmlContent"/> are written using
|
/// <paramref name="value"/>s of type <see cref="IHtmlContent"/> are written using
|
||||||
/// <see cref="IHtmlContent.WriteTo(TextWriter, IHtmlEncoder)"/>.
|
/// <see cref="IHtmlContent.WriteTo(TextWriter, HtmlEncoder)"/>.
|
||||||
/// For all other types, the encoded result of <see cref="object.ToString"/> is written to the
|
/// For all other types, the encoded result of <see cref="object.ToString"/> is written to the
|
||||||
/// <paramref name="writer"/>.
|
/// <paramref name="writer"/>.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
public static void WriteTo(
|
public static void WriteTo(
|
||||||
TextWriter writer,
|
TextWriter writer,
|
||||||
IHtmlEncoder encoder,
|
HtmlEncoder encoder,
|
||||||
object value,
|
object value,
|
||||||
bool escapeQuotes)
|
bool escapeQuotes)
|
||||||
{
|
{
|
||||||
|
|
@ -532,11 +532,11 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
WriteTo(writer, HtmlEncoder, value);
|
WriteTo(writer, HtmlEncoder, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void WriteTo(TextWriter writer, IHtmlEncoder encoder, string value)
|
private static void WriteTo(TextWriter writer, HtmlEncoder encoder, string value)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(value))
|
if (!string.IsNullOrEmpty(value))
|
||||||
{
|
{
|
||||||
encoder.HtmlEncode(value, writer);
|
encoder.Encode(writer, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,10 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Html.Abstractions;
|
using Microsoft.AspNet.Html.Abstractions;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures;
|
using Microsoft.AspNet.Mvc.ViewFeatures;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.Razor
|
namespace Microsoft.AspNet.Mvc.Razor
|
||||||
{
|
{
|
||||||
|
|
@ -30,7 +30,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
/// is no longer buffering.</param>
|
/// is no longer buffering.</param>
|
||||||
/// <param name="encoding">The character <see cref="Encoding"/> in which the output is written.</param>
|
/// <param name="encoding">The character <see cref="Encoding"/> in which the output is written.</param>
|
||||||
/// <param name="encoder">The HTML encoder.</param>
|
/// <param name="encoder">The HTML encoder.</param>
|
||||||
public RazorTextWriter(TextWriter unbufferedWriter, Encoding encoding, IHtmlEncoder encoder)
|
public RazorTextWriter(TextWriter unbufferedWriter, Encoding encoding, HtmlEncoder encoder)
|
||||||
{
|
{
|
||||||
UnbufferedWriter = unbufferedWriter;
|
UnbufferedWriter = unbufferedWriter;
|
||||||
HtmlEncoder = encoder;
|
HtmlEncoder = encoder;
|
||||||
|
|
@ -55,7 +55,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
|
|
||||||
private TextWriter TargetWriter { get; set; }
|
private TextWriter TargetWriter { get; set; }
|
||||||
|
|
||||||
private IHtmlEncoder HtmlEncoder { get; }
|
private HtmlEncoder HtmlEncoder { get; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override void Write(char value)
|
public override void Write(char value)
|
||||||
|
|
|
||||||
|
|
@ -5,25 +5,25 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Http.Features;
|
using Microsoft.AspNet.Http.Features;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Mvc.ViewEngines;
|
using Microsoft.AspNet.Mvc.ViewEngines;
|
||||||
using Microsoft.AspNet.PageExecutionInstrumentation;
|
using Microsoft.AspNet.PageExecutionInstrumentation;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.Razor
|
namespace Microsoft.AspNet.Mvc.Razor
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Default implementation for <see cref="IView"/> that executes one or more <see cref="IRazorPage"/>
|
/// Default implementation for <see cref="IView"/> that executes one or more <see cref="IRazorPage"/>
|
||||||
/// as parts of its exeuction.
|
/// as parts of its execution.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class RazorView : IView
|
public class RazorView : IView
|
||||||
{
|
{
|
||||||
private readonly IRazorViewEngine _viewEngine;
|
private readonly IRazorViewEngine _viewEngine;
|
||||||
private readonly IRazorPageActivator _pageActivator;
|
private readonly IRazorPageActivator _pageActivator;
|
||||||
private readonly IViewStartProvider _viewStartProvider;
|
private readonly IViewStartProvider _viewStartProvider;
|
||||||
private readonly IHtmlEncoder _htmlEncoder;
|
private readonly HtmlEncoder _htmlEncoder;
|
||||||
private IPageExecutionListenerFeature _pageExecutionFeature;
|
private IPageExecutionListenerFeature _pageExecutionFeature;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -41,7 +41,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
IRazorPageActivator pageActivator,
|
IRazorPageActivator pageActivator,
|
||||||
IViewStartProvider viewStartProvider,
|
IViewStartProvider viewStartProvider,
|
||||||
IRazorPage razorPage,
|
IRazorPage razorPage,
|
||||||
IHtmlEncoder htmlEncoder,
|
HtmlEncoder htmlEncoder,
|
||||||
bool isPartial)
|
bool isPartial)
|
||||||
{
|
{
|
||||||
_viewEngine = viewEngine;
|
_viewEngine = viewEngine;
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Mvc.ViewEngines;
|
using Microsoft.AspNet.Mvc.ViewEngines;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.Razor
|
namespace Microsoft.AspNet.Mvc.Razor
|
||||||
{
|
{
|
||||||
|
|
@ -13,7 +13,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class RazorViewFactory : IRazorViewFactory
|
public class RazorViewFactory : IRazorViewFactory
|
||||||
{
|
{
|
||||||
private readonly IHtmlEncoder _htmlEncoder;
|
private readonly HtmlEncoder _htmlEncoder;
|
||||||
private readonly IRazorPageActivator _pageActivator;
|
private readonly IRazorPageActivator _pageActivator;
|
||||||
private readonly IViewStartProvider _viewStartProvider;
|
private readonly IViewStartProvider _viewStartProvider;
|
||||||
|
|
||||||
|
|
@ -26,7 +26,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public RazorViewFactory(
|
public RazorViewFactory(
|
||||||
IRazorPageActivator pageActivator,
|
IRazorPageActivator pageActivator,
|
||||||
IViewStartProvider viewStartProvider,
|
IViewStartProvider viewStartProvider,
|
||||||
IHtmlEncoder htmlEncoder)
|
HtmlEncoder htmlEncoder)
|
||||||
{
|
{
|
||||||
_pageActivator = pageActivator;
|
_pageActivator = pageActivator;
|
||||||
_viewStartProvider = viewStartProvider;
|
_viewStartProvider = viewStartProvider;
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Razor.TagHelpers;
|
using Microsoft.AspNet.Razor.TagHelpers;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.Razor.TagHelpers
|
namespace Microsoft.AspNet.Mvc.Razor.TagHelpers
|
||||||
{
|
{
|
||||||
|
|
@ -84,8 +84,8 @@ namespace Microsoft.AspNet.Mvc.Razor.TagHelpers
|
||||||
/// Creates a new <see cref="UrlResolutionTagHelper"/>.
|
/// Creates a new <see cref="UrlResolutionTagHelper"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="urlHelper">The <see cref="IUrlHelper"/>.</param>
|
/// <param name="urlHelper">The <see cref="IUrlHelper"/>.</param>
|
||||||
/// <param name="htmlEncoder">The <see cref="IHtmlEncoder"/>.</param>
|
/// <param name="htmlEncoder">The <see cref="HtmlEncoder"/>.</param>
|
||||||
public UrlResolutionTagHelper(IUrlHelper urlHelper, IHtmlEncoder htmlEncoder)
|
public UrlResolutionTagHelper(IUrlHelper urlHelper, HtmlEncoder htmlEncoder)
|
||||||
{
|
{
|
||||||
UrlHelper = urlHelper;
|
UrlHelper = urlHelper;
|
||||||
HtmlEncoder = htmlEncoder;
|
HtmlEncoder = htmlEncoder;
|
||||||
|
|
@ -102,7 +102,7 @@ namespace Microsoft.AspNet.Mvc.Razor.TagHelpers
|
||||||
|
|
||||||
protected IUrlHelper UrlHelper { get; }
|
protected IUrlHelper UrlHelper { get; }
|
||||||
|
|
||||||
protected IHtmlEncoder HtmlEncoder { get; }
|
protected HtmlEncoder HtmlEncoder { get; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override void Process(TagHelperContext context, TagHelperOutput output)
|
public override void Process(TagHelperContext context, TagHelperOutput output)
|
||||||
|
|
@ -221,7 +221,7 @@ namespace Microsoft.AspNet.Mvc.Razor.TagHelpers
|
||||||
}
|
}
|
||||||
|
|
||||||
var applicationPath = appRelativeUrl.Substring(0, appRelativeUrl.Length - postTildeSlashUrlValue.Length);
|
var applicationPath = appRelativeUrl.Substring(0, appRelativeUrl.Length - postTildeSlashUrlValue.Length);
|
||||||
var encodedApplicationPath = HtmlEncoder.HtmlEncode(applicationPath);
|
var encodedApplicationPath = HtmlEncoder.Encode(applicationPath);
|
||||||
|
|
||||||
resolvedUrl = string.Concat(encodedApplicationPath, postTildeSlashUrlValue);
|
resolvedUrl = string.Concat(encodedApplicationPath, postTildeSlashUrlValue);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Hosting;
|
using Microsoft.AspNet.Hosting;
|
||||||
using Microsoft.AspNet.Mvc.Razor.TagHelpers;
|
using Microsoft.AspNet.Mvc.Razor.TagHelpers;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
|
|
@ -9,7 +10,6 @@ using Microsoft.AspNet.Mvc.TagHelpers.Internal;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures;
|
using Microsoft.AspNet.Mvc.ViewFeatures;
|
||||||
using Microsoft.AspNet.Razor.TagHelpers;
|
using Microsoft.AspNet.Razor.TagHelpers;
|
||||||
using Microsoft.Extensions.Caching.Memory;
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.TagHelpers
|
namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
{
|
{
|
||||||
|
|
@ -41,7 +41,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
public ImageTagHelper(
|
public ImageTagHelper(
|
||||||
IHostingEnvironment hostingEnvironment,
|
IHostingEnvironment hostingEnvironment,
|
||||||
IMemoryCache cache,
|
IMemoryCache cache,
|
||||||
IHtmlEncoder htmlEncoder,
|
HtmlEncoder htmlEncoder,
|
||||||
IUrlHelper urlHelper)
|
IUrlHelper urlHelper)
|
||||||
: base(urlHelper, htmlEncoder)
|
: base(urlHelper, htmlEncoder)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
using System.Text.Encodings.Web;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.TagHelpers.Internal
|
namespace Microsoft.AspNet.Mvc.TagHelpers.Internal
|
||||||
{
|
{
|
||||||
|
|
@ -15,7 +15,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers.Internal
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Encodes a .NET string array for safe use as a JavaScript array literal, including inline in an HTML file.
|
/// Encodes a .NET string array for safe use as a JavaScript array literal, including inline in an HTML file.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string Encode(IJavaScriptStringEncoder encoder, IEnumerable<string> values)
|
public static string Encode(JavaScriptEncoder encoder, IEnumerable<string> values)
|
||||||
{
|
{
|
||||||
var writer = new StringWriter();
|
var writer = new StringWriter();
|
||||||
|
|
||||||
|
|
@ -30,7 +30,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers.Internal
|
||||||
writer.Write(',');
|
writer.Write(',');
|
||||||
}
|
}
|
||||||
writer.Write('"');
|
writer.Write('"');
|
||||||
encoder.JavaScriptStringEncode(value, writer);
|
encoder.Encode(writer, value);
|
||||||
writer.Write('"');
|
writer.Write('"');
|
||||||
firstAdded = true;
|
firstAdded = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Hosting;
|
using Microsoft.AspNet.Hosting;
|
||||||
using Microsoft.AspNet.Mvc.Razor.TagHelpers;
|
using Microsoft.AspNet.Mvc.Razor.TagHelpers;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
|
|
@ -13,7 +14,6 @@ using Microsoft.AspNet.Mvc.ViewFeatures;
|
||||||
using Microsoft.AspNet.Razor.TagHelpers;
|
using Microsoft.AspNet.Razor.TagHelpers;
|
||||||
using Microsoft.Extensions.Caching.Memory;
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.TagHelpers
|
namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
{
|
{
|
||||||
|
|
@ -91,15 +91,15 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
/// <param name="logger">The <see cref="ILogger{ScriptTagHelper}"/>.</param>
|
/// <param name="logger">The <see cref="ILogger{ScriptTagHelper}"/>.</param>
|
||||||
/// <param name="hostingEnvironment">The <see cref="IHostingEnvironment"/>.</param>
|
/// <param name="hostingEnvironment">The <see cref="IHostingEnvironment"/>.</param>
|
||||||
/// <param name="cache">The <see cref="IMemoryCache"/>.</param>
|
/// <param name="cache">The <see cref="IMemoryCache"/>.</param>
|
||||||
/// <param name="htmlEncoder">The <see cref="IHtmlEncoder"/>.</param>
|
/// <param name="htmlEncoder">The <see cref="HtmlEncoder"/>.</param>
|
||||||
/// <param name="javaScriptEncoder">The <see cref="IJavaScriptStringEncoder"/>.</param>
|
/// <param name="javaScriptEncoder">The <see cref="JavaScriptEncoder"/>.</param>
|
||||||
/// <param name="urlHelper">The <see cref="IUrlHelper"/>.</param>
|
/// <param name="urlHelper">The <see cref="IUrlHelper"/>.</param>
|
||||||
public LinkTagHelper(
|
public LinkTagHelper(
|
||||||
ILogger<LinkTagHelper> logger,
|
ILogger<LinkTagHelper> logger,
|
||||||
IHostingEnvironment hostingEnvironment,
|
IHostingEnvironment hostingEnvironment,
|
||||||
IMemoryCache cache,
|
IMemoryCache cache,
|
||||||
IHtmlEncoder htmlEncoder,
|
HtmlEncoder htmlEncoder,
|
||||||
IJavaScriptStringEncoder javaScriptEncoder,
|
JavaScriptEncoder javaScriptEncoder,
|
||||||
IUrlHelper urlHelper)
|
IUrlHelper urlHelper)
|
||||||
: base(urlHelper, htmlEncoder)
|
: base(urlHelper, htmlEncoder)
|
||||||
{
|
{
|
||||||
|
|
@ -208,7 +208,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
|
|
||||||
protected IMemoryCache Cache { get; }
|
protected IMemoryCache Cache { get; }
|
||||||
|
|
||||||
protected IJavaScriptStringEncoder JavaScriptEncoder { get; }
|
protected JavaScriptEncoder JavaScriptEncoder { get; }
|
||||||
|
|
||||||
// Internal for ease of use when testing.
|
// Internal for ease of use when testing.
|
||||||
protected internal GlobbingUrlBuilder GlobbingUrlBuilder { get; set; }
|
protected internal GlobbingUrlBuilder GlobbingUrlBuilder { get; set; }
|
||||||
|
|
@ -351,8 +351,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
string.Format(
|
string.Format(
|
||||||
CultureInfo.InvariantCulture,
|
CultureInfo.InvariantCulture,
|
||||||
JavaScriptResources.GetEmbeddedJavaScript(FallbackJavaScriptResourceName),
|
JavaScriptResources.GetEmbeddedJavaScript(FallbackJavaScriptResourceName),
|
||||||
JavaScriptEncoder.JavaScriptStringEncode(FallbackTestProperty),
|
JavaScriptEncoder.Encode(FallbackTestProperty),
|
||||||
JavaScriptEncoder.JavaScriptStringEncode(FallbackTestValue),
|
JavaScriptEncoder.Encode(FallbackTestValue),
|
||||||
JavaScriptStringArrayEncoder.Encode(JavaScriptEncoder, fallbackHrefs)))
|
JavaScriptStringArrayEncoder.Encode(JavaScriptEncoder, fallbackHrefs)))
|
||||||
.AppendHtml("</script>");
|
.AppendHtml("</script>");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Hosting;
|
using Microsoft.AspNet.Hosting;
|
||||||
using Microsoft.AspNet.Mvc.Razor.TagHelpers;
|
using Microsoft.AspNet.Mvc.Razor.TagHelpers;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
|
|
@ -12,7 +13,6 @@ using Microsoft.AspNet.Mvc.ViewFeatures;
|
||||||
using Microsoft.AspNet.Razor.TagHelpers;
|
using Microsoft.AspNet.Razor.TagHelpers;
|
||||||
using Microsoft.Extensions.Caching.Memory;
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.TagHelpers
|
namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
{
|
{
|
||||||
|
|
@ -77,15 +77,15 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
/// <param name="logger">The <see cref="ILogger{ScriptTagHelper}"/>.</param>
|
/// <param name="logger">The <see cref="ILogger{ScriptTagHelper}"/>.</param>
|
||||||
/// <param name="hostingEnvironment">The <see cref="IHostingEnvironment"/>.</param>
|
/// <param name="hostingEnvironment">The <see cref="IHostingEnvironment"/>.</param>
|
||||||
/// <param name="cache">The <see cref="IMemoryCache"/>.</param>
|
/// <param name="cache">The <see cref="IMemoryCache"/>.</param>
|
||||||
/// <param name="htmlEncoder">The <see cref="IHtmlEncoder"/>.</param>
|
/// <param name="htmlEncoder">The <see cref="HtmlEncoder"/>.</param>
|
||||||
/// <param name="javaScriptEncoder">The <see cref="IJavaScriptStringEncoder"/>.</param>
|
/// <param name="javaScriptEncoder">The <see cref="JavaScriptEncoder"/>.</param>
|
||||||
/// <param name="urlHelper">The <see cref="IUrlHelper"/>.</param>
|
/// <param name="urlHelper">The <see cref="IUrlHelper"/>.</param>
|
||||||
public ScriptTagHelper(
|
public ScriptTagHelper(
|
||||||
ILogger<ScriptTagHelper> logger,
|
ILogger<ScriptTagHelper> logger,
|
||||||
IHostingEnvironment hostingEnvironment,
|
IHostingEnvironment hostingEnvironment,
|
||||||
IMemoryCache cache,
|
IMemoryCache cache,
|
||||||
IHtmlEncoder htmlEncoder,
|
HtmlEncoder htmlEncoder,
|
||||||
IJavaScriptStringEncoder javaScriptEncoder,
|
JavaScriptEncoder javaScriptEncoder,
|
||||||
IUrlHelper urlHelper)
|
IUrlHelper urlHelper)
|
||||||
: base(urlHelper, htmlEncoder)
|
: base(urlHelper, htmlEncoder)
|
||||||
{
|
{
|
||||||
|
|
@ -176,7 +176,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
|
|
||||||
protected IMemoryCache Cache { get; }
|
protected IMemoryCache Cache { get; }
|
||||||
|
|
||||||
protected IJavaScriptStringEncoder JavaScriptEncoder { get; }
|
protected JavaScriptEncoder JavaScriptEncoder { get; }
|
||||||
|
|
||||||
// Internal for ease of use when testing.
|
// Internal for ease of use when testing.
|
||||||
protected internal GlobbingUrlBuilder GlobbingUrlBuilder { get; set; }
|
protected internal GlobbingUrlBuilder GlobbingUrlBuilder { get; set; }
|
||||||
|
|
@ -316,9 +316,9 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
{
|
{
|
||||||
if (!attribute.Name.Equals(SrcAttributeName, StringComparison.OrdinalIgnoreCase))
|
if (!attribute.Name.Equals(SrcAttributeName, StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
var encodedKey = JavaScriptEncoder.JavaScriptStringEncode(attribute.Name);
|
var encodedKey = JavaScriptEncoder.Encode(attribute.Name);
|
||||||
var attributeValue = attribute.Value.ToString();
|
var attributeValue = attribute.Value.ToString();
|
||||||
var encodedValue = JavaScriptEncoder.JavaScriptStringEncode(attributeValue);
|
var encodedValue = JavaScriptEncoder.Encode(attributeValue);
|
||||||
|
|
||||||
AppendAttribute(builder, encodedKey, encodedValue, escapeQuotes: true);
|
AppendAttribute(builder, encodedKey, encodedValue, escapeQuotes: true);
|
||||||
}
|
}
|
||||||
|
|
@ -332,7 +332,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
}
|
}
|
||||||
|
|
||||||
// attribute.Key ("src") does not need to be JavaScript-encoded.
|
// attribute.Key ("src") does not need to be JavaScript-encoded.
|
||||||
var encodedValue = JavaScriptEncoder.JavaScriptStringEncode(attributeValue);
|
var encodedValue = JavaScriptEncoder.Encode(attributeValue);
|
||||||
|
|
||||||
AppendAttribute(builder, attribute.Name, encodedValue, escapeQuotes: true);
|
AppendAttribute(builder, attribute.Name, encodedValue, escapeQuotes: true);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Mvc.Razor;
|
using Microsoft.AspNet.Mvc.Razor;
|
||||||
using Microsoft.AspNet.Razor.TagHelpers;
|
using Microsoft.AspNet.Razor.TagHelpers;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.TagHelpers
|
namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
{
|
{
|
||||||
|
|
@ -18,19 +18,19 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
/// Writes the specified <paramref name="value"/> with HTML encoding to given <paramref name="content"/>.
|
/// Writes the specified <paramref name="value"/> with HTML encoding to given <paramref name="content"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="content">The <see cref="TagHelperContent"/> to write to.</param>
|
/// <param name="content">The <see cref="TagHelperContent"/> to write to.</param>
|
||||||
/// <param name="encoder">The <see cref="IHtmlEncoder"/> to use when encoding <paramref name="value"/>.</param>
|
/// <param name="encoder">The <see cref="HtmlEncoder"/> to use when encoding <paramref name="value"/>.</param>
|
||||||
/// <param name="encoding">The character encoding in which the <paramref name="value"/> is written.</param>
|
/// <param name="encoding">The character encoding in which the <paramref name="value"/> is written.</param>
|
||||||
/// <param name="value">The <see cref="object"/> to write.</param>
|
/// <param name="value">The <see cref="object"/> to write.</param>
|
||||||
/// <returns><paramref name="content"/> after the write operation has completed.</returns>
|
/// <returns><paramref name="content"/> after the write operation has completed.</returns>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// <paramref name="value"/>s of type <see cref="Html.Abstractions.IHtmlContent"/> are written using
|
/// <paramref name="value"/>s of type <see cref="Html.Abstractions.IHtmlContent"/> are written using
|
||||||
/// <see cref="Html.Abstractions.IHtmlContent.WriteTo(System.IO.TextWriter, IHtmlEncoder)"/>.
|
/// <see cref="Html.Abstractions.IHtmlContent.WriteTo(System.IO.TextWriter, HtmlEncoder)"/>.
|
||||||
/// For all other types, the encoded result of <see cref="object.ToString"/>
|
/// For all other types, the encoded result of <see cref="object.ToString"/>
|
||||||
/// is written to the <paramref name="content"/>.
|
/// is written to the <paramref name="content"/>.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
public static TagHelperContent Append(
|
public static TagHelperContent Append(
|
||||||
this TagHelperContent content,
|
this TagHelperContent content,
|
||||||
IHtmlEncoder encoder,
|
HtmlEncoder encoder,
|
||||||
Encoding encoding,
|
Encoding encoding,
|
||||||
object value)
|
object value)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Html.Abstractions;
|
using Microsoft.AspNet.Html.Abstractions;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.Rendering
|
namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
{
|
{
|
||||||
|
|
@ -35,7 +35,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public void WriteTo(TextWriter writer, IHtmlEncoder encoder)
|
public void WriteTo(TextWriter writer, HtmlEncoder encoder)
|
||||||
{
|
{
|
||||||
if (writer == null)
|
if (writer == null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,12 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Html.Abstractions;
|
using Microsoft.AspNet.Html.Abstractions;
|
||||||
using Microsoft.AspNet.Mvc.ModelBinding;
|
using Microsoft.AspNet.Mvc.ModelBinding;
|
||||||
using Microsoft.AspNet.Mvc.ModelBinding.Validation;
|
using Microsoft.AspNet.Mvc.ModelBinding.Validation;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures;
|
using Microsoft.AspNet.Mvc.ViewFeatures;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.Rendering
|
namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
{
|
{
|
||||||
|
|
@ -55,14 +55,14 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
ITempDataDictionary TempData { get; }
|
ITempDataDictionary TempData { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the <see cref="IUrlEncoder"/> to be used for encoding a URL.
|
/// Gets the <see cref="UrlEncoder"/> to be used for encoding a URL.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
IUrlEncoder UrlEncoder { get; }
|
UrlEncoder UrlEncoder { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the <see cref="IJavaScriptStringEncoder"/> to be used for encoding JavaScript.
|
/// Gets the <see cref="JavaScriptEncoder"/> to be used for encoding JavaScript.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
IJavaScriptStringEncoder JavaScriptStringEncoder { get; }
|
JavaScriptEncoder JavaScriptEncoder { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns an anchor (<a>) element that contains a URL path to the specified action.
|
/// Returns an anchor (<a>) element that contains a URL path to the specified action.
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures;
|
using Microsoft.AspNet.Mvc.ViewFeatures;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.Rendering
|
namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
|
|
@ -61,10 +61,10 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
var writer = _viewContext.Writer;
|
var writer = _viewContext.Writer;
|
||||||
var htmlWriter = writer as HtmlTextWriter;
|
var htmlWriter = writer as HtmlTextWriter;
|
||||||
|
|
||||||
IHtmlEncoder htmlEncoder = null;
|
HtmlEncoder htmlEncoder = null;
|
||||||
if (htmlWriter == null)
|
if (htmlWriter == null)
|
||||||
{
|
{
|
||||||
htmlEncoder = _viewContext.HttpContext.RequestServices.GetRequiredService<IHtmlEncoder>();
|
htmlEncoder = _viewContext.HttpContext.RequestServices.GetRequiredService<HtmlEncoder>();
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var content in formContext.EndOfFormContent)
|
foreach (var content in formContext.EndOfFormContent)
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,10 @@ using System.Diagnostics;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Html.Abstractions;
|
using Microsoft.AspNet.Html.Abstractions;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures;
|
using Microsoft.AspNet.Mvc.ViewFeatures;
|
||||||
using Microsoft.Extensions.Internal;
|
using Microsoft.Extensions.Internal;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.Rendering
|
namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
{
|
{
|
||||||
|
|
@ -189,7 +189,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AppendAttributes(TextWriter writer, IHtmlEncoder encoder)
|
private void AppendAttributes(TextWriter writer, HtmlEncoder encoder)
|
||||||
{
|
{
|
||||||
// Perf: Avoid allocating enumerator for `_attributes` if possible
|
// Perf: Avoid allocating enumerator for `_attributes` if possible
|
||||||
if (_attributes != null && _attributes.Count > 0)
|
if (_attributes != null && _attributes.Count > 0)
|
||||||
|
|
@ -206,7 +206,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
writer.Write(" ");
|
writer.Write(" ");
|
||||||
writer.Write(key);
|
writer.Write(key);
|
||||||
writer.Write("=\"");
|
writer.Write("=\"");
|
||||||
encoder.HtmlEncode(attribute.Value, writer);
|
encoder.Encode(writer, attribute.Value);
|
||||||
writer.Write("\"");
|
writer.Write("\"");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -250,7 +250,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public void WriteTo(TextWriter writer, IHtmlEncoder encoder)
|
public void WriteTo(TextWriter writer, HtmlEncoder encoder)
|
||||||
{
|
{
|
||||||
switch (TagRenderMode)
|
switch (TagRenderMode)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ using System.Diagnostics;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Antiforgery;
|
using Microsoft.AspNet.Antiforgery;
|
||||||
using Microsoft.AspNet.Html.Abstractions;
|
using Microsoft.AspNet.Html.Abstractions;
|
||||||
using Microsoft.AspNet.Mvc.ModelBinding;
|
using Microsoft.AspNet.Mvc.ModelBinding;
|
||||||
|
|
@ -16,7 +17,6 @@ using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures.Internal;
|
using Microsoft.AspNet.Mvc.ViewFeatures.Internal;
|
||||||
using Microsoft.Extensions.Internal;
|
using Microsoft.Extensions.Internal;
|
||||||
using Microsoft.Extensions.OptionsModel;
|
using Microsoft.Extensions.OptionsModel;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.ViewFeatures
|
namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
{
|
{
|
||||||
|
|
@ -30,7 +30,7 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
private readonly IClientModelValidatorProvider _clientModelValidatorProvider;
|
private readonly IClientModelValidatorProvider _clientModelValidatorProvider;
|
||||||
private readonly IModelMetadataProvider _metadataProvider;
|
private readonly IModelMetadataProvider _metadataProvider;
|
||||||
private readonly IUrlHelper _urlHelper;
|
private readonly IUrlHelper _urlHelper;
|
||||||
private readonly IHtmlEncoder _htmlEncoder;
|
private readonly HtmlEncoder _htmlEncoder;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new instance of the <see cref="DefaultHtmlGenerator"/> class.
|
/// Initializes a new instance of the <see cref="DefaultHtmlGenerator"/> class.
|
||||||
|
|
@ -40,13 +40,13 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
/// <param name="optionsAccessor">The accessor for <see cref="MvcOptions"/>.</param>
|
/// <param name="optionsAccessor">The accessor for <see cref="MvcOptions"/>.</param>
|
||||||
/// <param name="metadataProvider">The <see cref="IModelMetadataProvider"/>.</param>
|
/// <param name="metadataProvider">The <see cref="IModelMetadataProvider"/>.</param>
|
||||||
/// <param name="urlHelper">The <see cref="IUrlHelper"/>.</param>
|
/// <param name="urlHelper">The <see cref="IUrlHelper"/>.</param>
|
||||||
/// <param name="htmlEncoder">The <see cref="IHtmlEncoder"/>.</param>
|
/// <param name="htmlEncoder">The <see cref="HtmlEncoder"/>.</param>
|
||||||
public DefaultHtmlGenerator(
|
public DefaultHtmlGenerator(
|
||||||
IAntiforgery antiforgery,
|
IAntiforgery antiforgery,
|
||||||
IOptions<MvcViewOptions> optionsAccessor,
|
IOptions<MvcViewOptions> optionsAccessor,
|
||||||
IModelMetadataProvider metadataProvider,
|
IModelMetadataProvider metadataProvider,
|
||||||
IUrlHelper urlHelper,
|
IUrlHelper urlHelper,
|
||||||
IHtmlEncoder htmlEncoder)
|
HtmlEncoder htmlEncoder)
|
||||||
{
|
{
|
||||||
if (antiforgery == null)
|
if (antiforgery == null)
|
||||||
{
|
{
|
||||||
|
|
@ -90,13 +90,13 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public string Encode(string value)
|
public string Encode(string value)
|
||||||
{
|
{
|
||||||
return !string.IsNullOrEmpty(value) ? _htmlEncoder.HtmlEncode(value) : string.Empty;
|
return !string.IsNullOrEmpty(value) ? _htmlEncoder.Encode(value) : string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public string Encode(object value)
|
public string Encode(object value)
|
||||||
{
|
{
|
||||||
return (value != null) ? _htmlEncoder.HtmlEncode(value.ToString()) : string.Empty;
|
return (value != null) ? _htmlEncoder.Encode(value.ToString()) : string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Html.Abstractions;
|
using Microsoft.AspNet.Html.Abstractions;
|
||||||
using Microsoft.AspNet.Mvc.ModelBinding;
|
using Microsoft.AspNet.Mvc.ModelBinding;
|
||||||
|
|
@ -14,7 +15,6 @@ using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Mvc.ViewEngines;
|
using Microsoft.AspNet.Mvc.ViewEngines;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures.Internal;
|
using Microsoft.AspNet.Mvc.ViewFeatures.Internal;
|
||||||
using Microsoft.Extensions.Internal;
|
using Microsoft.Extensions.Internal;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.ViewFeatures
|
namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
{
|
{
|
||||||
|
|
@ -32,7 +32,7 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
|
|
||||||
private readonly IHtmlGenerator _htmlGenerator;
|
private readonly IHtmlGenerator _htmlGenerator;
|
||||||
private readonly ICompositeViewEngine _viewEngine;
|
private readonly ICompositeViewEngine _viewEngine;
|
||||||
private readonly IHtmlEncoder _htmlEncoder;
|
private readonly HtmlEncoder _htmlEncoder;
|
||||||
|
|
||||||
private ViewContext _viewContext;
|
private ViewContext _viewContext;
|
||||||
|
|
||||||
|
|
@ -43,9 +43,9 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
IHtmlGenerator htmlGenerator,
|
IHtmlGenerator htmlGenerator,
|
||||||
ICompositeViewEngine viewEngine,
|
ICompositeViewEngine viewEngine,
|
||||||
IModelMetadataProvider metadataProvider,
|
IModelMetadataProvider metadataProvider,
|
||||||
IHtmlEncoder htmlEncoder,
|
HtmlEncoder htmlEncoder,
|
||||||
IUrlEncoder urlEncoder,
|
UrlEncoder urlEncoder,
|
||||||
IJavaScriptStringEncoder javaScriptStringEncoder)
|
JavaScriptEncoder javaScriptEncoder)
|
||||||
{
|
{
|
||||||
if (htmlGenerator == null)
|
if (htmlGenerator == null)
|
||||||
{
|
{
|
||||||
|
|
@ -72,9 +72,9 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
throw new ArgumentNullException(nameof(urlEncoder));
|
throw new ArgumentNullException(nameof(urlEncoder));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (javaScriptStringEncoder == null)
|
if (javaScriptEncoder == null)
|
||||||
{
|
{
|
||||||
throw new ArgumentNullException(nameof(javaScriptStringEncoder));
|
throw new ArgumentNullException(nameof(javaScriptEncoder));
|
||||||
}
|
}
|
||||||
|
|
||||||
_viewEngine = viewEngine;
|
_viewEngine = viewEngine;
|
||||||
|
|
@ -82,7 +82,7 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
_htmlEncoder = htmlEncoder;
|
_htmlEncoder = htmlEncoder;
|
||||||
MetadataProvider = metadataProvider;
|
MetadataProvider = metadataProvider;
|
||||||
UrlEncoder = urlEncoder;
|
UrlEncoder = urlEncoder;
|
||||||
JavaScriptStringEncoder = javaScriptStringEncoder;
|
JavaScriptEncoder = javaScriptEncoder;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
|
@ -153,10 +153,10 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public IUrlEncoder UrlEncoder { get; }
|
public UrlEncoder UrlEncoder { get; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public IJavaScriptStringEncoder JavaScriptStringEncoder { get; }
|
public JavaScriptEncoder JavaScriptEncoder { get; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public IModelMetadataProvider MetadataProvider { get; }
|
public IModelMetadataProvider MetadataProvider { get; }
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,11 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Html.Abstractions;
|
using Microsoft.AspNet.Html.Abstractions;
|
||||||
using Microsoft.AspNet.Mvc.ModelBinding;
|
using Microsoft.AspNet.Mvc.ModelBinding;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Mvc.ViewEngines;
|
using Microsoft.AspNet.Mvc.ViewEngines;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.ViewFeatures
|
namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
{
|
{
|
||||||
|
|
@ -21,10 +21,10 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
IHtmlGenerator htmlGenerator,
|
IHtmlGenerator htmlGenerator,
|
||||||
ICompositeViewEngine viewEngine,
|
ICompositeViewEngine viewEngine,
|
||||||
IModelMetadataProvider metadataProvider,
|
IModelMetadataProvider metadataProvider,
|
||||||
IHtmlEncoder htmlEncoder,
|
HtmlEncoder htmlEncoder,
|
||||||
IUrlEncoder urlEncoder,
|
UrlEncoder urlEncoder,
|
||||||
IJavaScriptStringEncoder javaScriptStringEncoder)
|
JavaScriptEncoder javaScriptEncoder)
|
||||||
: base(htmlGenerator, viewEngine, metadataProvider, htmlEncoder, urlEncoder, javaScriptStringEncoder)
|
: base(htmlGenerator, viewEngine, metadataProvider, htmlEncoder, urlEncoder, javaScriptEncoder)
|
||||||
{
|
{
|
||||||
if (htmlGenerator == null)
|
if (htmlGenerator == null)
|
||||||
{
|
{
|
||||||
|
|
@ -46,9 +46,9 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
{
|
{
|
||||||
throw new ArgumentNullException(nameof(urlEncoder));
|
throw new ArgumentNullException(nameof(urlEncoder));
|
||||||
}
|
}
|
||||||
if (javaScriptStringEncoder == null)
|
if (javaScriptEncoder == null)
|
||||||
{
|
{
|
||||||
throw new ArgumentNullException(nameof(javaScriptStringEncoder));
|
throw new ArgumentNullException(nameof(javaScriptEncoder));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@ using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Html.Abstractions;
|
using Microsoft.AspNet.Html.Abstractions;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.ViewFeatures
|
namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
{
|
{
|
||||||
|
|
@ -180,8 +180,8 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
/// are copied. It is just written to the <paramref name="writer"/> otherwise.
|
/// are copied. It is just written to the <paramref name="writer"/> otherwise.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="writer">The <see cref="TextWriter"/> to which the content must be copied/written.</param>
|
/// <param name="writer">The <see cref="TextWriter"/> to which the content must be copied/written.</param>
|
||||||
/// <param name="encoder">The <see cref="IHtmlEncoder"/> to encode the copied/written content.</param>
|
/// <param name="encoder">The <see cref="HtmlEncoder"/> to encode the copied/written content.</param>
|
||||||
public void CopyTo(TextWriter writer, IHtmlEncoder encoder)
|
public void CopyTo(TextWriter writer, HtmlEncoder encoder)
|
||||||
{
|
{
|
||||||
var targetStringCollectionWriter = writer as StringCollectionTextWriter;
|
var targetStringCollectionWriter = writer as StringCollectionTextWriter;
|
||||||
if (targetStringCollectionWriter != null)
|
if (targetStringCollectionWriter != null)
|
||||||
|
|
@ -199,8 +199,8 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
/// are copied. It is just written to the <paramref name="writer"/> otherwise.
|
/// are copied. It is just written to the <paramref name="writer"/> otherwise.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="writer">The <see cref="TextWriter"/> to which the content must be copied/written.</param>
|
/// <param name="writer">The <see cref="TextWriter"/> to which the content must be copied/written.</param>
|
||||||
/// <param name="encoder">The <see cref="IHtmlEncoder"/> to encode the copied/written content.</param>
|
/// <param name="encoder">The <see cref="HtmlEncoder"/> to encode the copied/written content.</param>
|
||||||
public Task CopyToAsync(TextWriter writer, IHtmlEncoder encoder)
|
public Task CopyToAsync(TextWriter writer, HtmlEncoder encoder)
|
||||||
{
|
{
|
||||||
CopyTo(writer, encoder);
|
CopyTo(writer, encoder);
|
||||||
return _completedTask;
|
return _completedTask;
|
||||||
|
|
@ -226,7 +226,7 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
_entries.Add(content);
|
_entries.Add(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void WriteTo(TextWriter writer, IHtmlEncoder encoder)
|
public void WriteTo(TextWriter writer, HtmlEncoder encoder)
|
||||||
{
|
{
|
||||||
foreach (var item in _entries)
|
foreach (var item in _entries)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Html.Abstractions;
|
using Microsoft.AspNet.Html.Abstractions;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.ViewFeatures
|
namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
{
|
{
|
||||||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public void WriteTo(TextWriter writer, IHtmlEncoder encoder)
|
public void WriteTo(TextWriter writer, HtmlEncoder encoder)
|
||||||
{
|
{
|
||||||
if (writer == null)
|
if (writer == null)
|
||||||
{
|
{
|
||||||
|
|
@ -39,7 +39,7 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
throw new ArgumentNullException(nameof(encoder));
|
throw new ArgumentNullException(nameof(encoder));
|
||||||
}
|
}
|
||||||
|
|
||||||
encoder.HtmlEncode(_input, writer);
|
encoder.Encode(writer, _input);
|
||||||
}
|
}
|
||||||
|
|
||||||
private string DebuggerToString()
|
private string DebuggerToString()
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
using Microsoft.Extensions.WebEncoders.Testing;
|
using Microsoft.Extensions.WebEncoders.Testing;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.FunctionalTests
|
namespace Microsoft.AspNet.Mvc.FunctionalTests
|
||||||
|
|
@ -12,9 +12,9 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
||||||
{
|
{
|
||||||
protected override void AddAdditionalServices(IServiceCollection services)
|
protected override void AddAdditionalServices(IServiceCollection services)
|
||||||
{
|
{
|
||||||
services.AddTransient<IHtmlEncoder, CommonTestEncoder>();
|
services.AddTransient<HtmlEncoder, HtmlTestEncoder>();
|
||||||
services.AddTransient<IJavaScriptStringEncoder, CommonTestEncoder>();
|
services.AddTransient<JavaScriptEncoder, JavaScriptTestEncoder>();
|
||||||
services.AddTransient<IUrlEncoder, CommonTestEncoder>();
|
services.AddTransient<UrlEncoder, UrlTestEncoder>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,63 +39,63 @@
|
||||||
|
|
||||||
<!-- Fallback to static href -->
|
<!-- Fallback to static href -->
|
||||||
<link href="HtmlEncode[[/styles/site.min.css?a=b&c=d]]" rel="stylesheet" data-extra="test" title=""the" title" />
|
<link href="HtmlEncode[[/styles/site.min.css?a=b&c=d]]" rel="stylesheet" data-extra="test" title=""the" title" />
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css?a=b&c=d]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css?a=b&c=d]]"]);</script>
|
||||||
|
|
||||||
<!-- Fallback from globbed href to static href -->
|
<!-- Fallback from globbed href to static href -->
|
||||||
|
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css]]"]);</script>
|
||||||
|
|
||||||
<!-- Fallback from globbed href with exclude to static href -->
|
<!-- Fallback from globbed href with exclude to static href -->
|
||||||
|
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css]]"]);</script>
|
||||||
|
|
||||||
<!-- Fallback from globbed and static href to static href -->
|
<!-- Fallback from globbed and static href to static href -->
|
||||||
<link href="HtmlEncode[[styles/site.min.css]]" rel="stylesheet" data-extra="test" /><link href="HtmlEncode[[/styles/site.css]]" rel="stylesheet" data-extra="test" />
|
<link href="HtmlEncode[[styles/site.min.css]]" rel="stylesheet" data-extra="test" /><link href="HtmlEncode[[/styles/site.css]]" rel="stylesheet" data-extra="test" />
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css]]"]);</script>
|
||||||
|
|
||||||
<!-- Fallback from globbed and static href with exclude to static href -->
|
<!-- Fallback from globbed and static href with exclude to static href -->
|
||||||
<link href="HtmlEncode[[styles/site.min.css]]" rel="stylesheet" data-extra="test" />
|
<link href="HtmlEncode[[styles/site.min.css]]" rel="stylesheet" data-extra="test" />
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css]]"]);</script>
|
||||||
|
|
||||||
<!-- Fallback to static href with no primary href -->
|
<!-- Fallback to static href with no primary href -->
|
||||||
<link rel="stylesheet" data-extra="test">
|
<link rel="stylesheet" data-extra="test">
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css]]"]);</script>
|
||||||
|
|
||||||
<!-- Fallback to globbed href -->
|
<!-- Fallback to globbed href -->
|
||||||
<link href="HtmlEncode[[/styles/site.min.css]]" rel="stylesheet" data-extra="test" />
|
<link href="HtmlEncode[[/styles/site.min.css]]" rel="stylesheet" data-extra="test" />
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css]]"]);</script>
|
||||||
|
|
||||||
<!-- Fallback to static and globbed href -->
|
<!-- Fallback to static and globbed href -->
|
||||||
<link href="HtmlEncode[[/styles/site.min.css]]" rel="stylesheet" data-extra="test" />
|
<link href="HtmlEncode[[/styles/site.min.css]]" rel="stylesheet" data-extra="test" />
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css]]","JavaScriptStringEncode[[/styles/sub/site2.css]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css]]","JavaScriptEncode[[/styles/sub/site2.css]]"]);</script>
|
||||||
|
|
||||||
<!-- Fallback to static and globbed href should dedupe -->
|
<!-- Fallback to static and globbed href should dedupe -->
|
||||||
<link href="HtmlEncode[[/styles/site.min.css]]" rel="stylesheet" data-extra="test" />
|
<link href="HtmlEncode[[/styles/site.min.css]]" rel="stylesheet" data-extra="test" />
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css]]"]);</script>
|
||||||
|
|
||||||
<!-- Fallback to static and globbed href with exclude -->
|
<!-- Fallback to static and globbed href with exclude -->
|
||||||
<link href="HtmlEncode[[/styles/site.min.css]]" rel="stylesheet" data-extra="test" />
|
<link href="HtmlEncode[[/styles/site.min.css]]" rel="stylesheet" data-extra="test" />
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css]]","JavaScriptStringEncode[[/styles/sub/site2.css]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css]]","JavaScriptEncode[[/styles/sub/site2.css]]"]);</script>
|
||||||
|
|
||||||
<!-- Fallback from globbed href to glbobed href -->
|
<!-- Fallback from globbed href to glbobed href -->
|
||||||
|
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css]]"]);</script>
|
||||||
|
|
||||||
<!-- Fallback from globbed href with exclude to globbed href -->
|
<!-- Fallback from globbed href with exclude to globbed href -->
|
||||||
|
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css]]"]);</script>
|
||||||
|
|
||||||
<!-- Fallback from globbed and static href to globbed href -->
|
<!-- Fallback from globbed and static href to globbed href -->
|
||||||
<link href="HtmlEncode[[styles/site.min.css]]" rel="stylesheet" data-extra="test" /><link href="HtmlEncode[[/styles/site.css]]" rel="stylesheet" data-extra="test" />
|
<link href="HtmlEncode[[styles/site.min.css]]" rel="stylesheet" data-extra="test" /><link href="HtmlEncode[[/styles/site.css]]" rel="stylesheet" data-extra="test" />
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css]]"]);</script>
|
||||||
|
|
||||||
<!-- Fallback from globbed and static href with exclude to globbed href -->
|
<!-- Fallback from globbed and static href with exclude to globbed href -->
|
||||||
<link href="HtmlEncode[[styles/site.min.css]]" rel="stylesheet" data-extra="test">
|
<link href="HtmlEncode[[styles/site.min.css]]" rel="stylesheet" data-extra="test">
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css]]"]);</script>
|
||||||
|
|
||||||
<!-- Kitchen sink, all the attributes -->
|
<!-- Kitchen sink, all the attributes -->
|
||||||
<link href="HtmlEncode[[styles/site.min.css]]" rel="stylesheet" data-extra="test" />
|
<link href="HtmlEncode[[styles/site.min.css]]" rel="stylesheet" data-extra="test" />
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css]]","JavaScriptStringEncode[[/styles/sub/site2.css]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css]]","JavaScriptEncode[[/styles/sub/site2.css]]"]);</script>
|
||||||
|
|
||||||
<!-- Fallback to globbed href that doesn't exist -->
|
<!-- Fallback to globbed href that doesn't exist -->
|
||||||
<link href="HtmlEncode[[/styles/site.min.css]]" rel="stylesheet" data-extra="test" />
|
<link href="HtmlEncode[[/styles/site.min.css]]" rel="stylesheet" data-extra="test" />
|
||||||
|
|
@ -120,7 +120,7 @@
|
||||||
|
|
||||||
<!-- Fallback with file version -->
|
<!-- Fallback with file version -->
|
||||||
<link href="HtmlEncode[[/styles/site.min.css]]" rel="stylesheet" data-extra="test">
|
<link href="HtmlEncode[[/styles/site.min.css]]" rel="stylesheet" data-extra="test">
|
||||||
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptStringEncode[[visibility]]","JavaScriptStringEncode[[hidden]]",["JavaScriptStringEncode[[/styles/site.css?v=XY7YsMemPf8AGU4SIX9ED9eOjK1LOQWu2dmCNmh-pQc]]"]);</script>
|
<meta name="x-stylesheet-fallback-test" class="HtmlEncode[[hidden]]" /><script>!function(a,b,c){var d,e=document,f=e.getElementsByTagName("SCRIPT"),g=f[f.length-1].previousElementSibling,h=e.defaultView&&e.defaultView.getComputedStyle?e.defaultView.getComputedStyle(g):g.currentStyle;if(h&&h[a]!==b)for(d=0;d<c.length;d++)e.write('<link rel="stylesheet" href="'+c[d]+'"/>')}("JavaScriptEncode[[visibility]]","JavaScriptEncode[[hidden]]",["JavaScriptEncode[[/styles/site.css?v=XY7YsMemPf8AGU4SIX9ED9eOjK1LOQWu2dmCNmh-pQc]]"]);</script>
|
||||||
|
|
||||||
<!-- Globbed link tag with existing file, static href and file version -->
|
<!-- Globbed link tag with existing file, static href and file version -->
|
||||||
<link href="HtmlEncode[[/styles/site.css?v=XY7YsMemPf8AGU4SIX9ED9eOjK1LOQWu2dmCNmh-pQc]]" rel="stylesheet" /><link href="HtmlEncode[[/styles/sub/site2.css?v=30cxPex0tA9xEatW7f1Qhnn8tVLAHgE6xwIZhESq0y0]]" rel="stylesheet" /><link href="HtmlEncode[[/styles/sub/site3.css?v=fSxxOr1Q4Dq2uPuzlju5UYGuK0SKABI-ghvaIGEsZDc]]" rel="stylesheet" /><link href="HtmlEncode[[/styles/sub/site3.min.css?v=s8JMmAZxBn0dzuhRtQ0wgOvNBK4XRJRWEC2wfzsVF9M]]" rel="stylesheet" />
|
<link href="HtmlEncode[[/styles/site.css?v=XY7YsMemPf8AGU4SIX9ED9eOjK1LOQWu2dmCNmh-pQc]]" rel="stylesheet" /><link href="HtmlEncode[[/styles/sub/site2.css?v=30cxPex0tA9xEatW7f1Qhnn8tVLAHgE6xwIZhESq0y0]]" rel="stylesheet" /><link href="HtmlEncode[[/styles/sub/site3.css?v=fSxxOr1Q4Dq2uPuzlju5UYGuK0SKABI-ghvaIGEsZDc]]" rel="stylesheet" /><link href="HtmlEncode[[/styles/sub/site3.min.css?v=s8JMmAZxBn0dzuhRtQ0wgOvNBK4XRJRWEC2wfzsVF9M]]" rel="stylesheet" />
|
||||||
|
|
|
||||||
|
|
@ -13,27 +13,27 @@
|
||||||
<script src="HtmlEncode[[/blank.js?a=b&c=d]]" data-foo="foo-data2" title="<the title>">
|
<script src="HtmlEncode[[/blank.js?a=b&c=d]]" data-foo="foo-data2" title="<the title>">
|
||||||
// TagHelper script with comment in body, and extra properties.
|
// TagHelper script with comment in body, and extra properties.
|
||||||
</script>
|
</script>
|
||||||
<script>(false||document.write("<script src=\"JavaScriptStringEncode[[/styles/site.js?a=b&c=d]]\" JavaScriptStringEncode[[data-foo]]=\"JavaScriptStringEncode[[foo-data2]]\" JavaScriptStringEncode[[title]]=\"JavaScriptStringEncode[[<the title>]]\"><\/script>"));</script>
|
<script>(false||document.write("<script src=\"JavaScriptEncode[[/styles/site.js?a=b&c=d]]\" JavaScriptEncode[[data-foo]]=\"JavaScriptEncode[[foo-data2]]\" JavaScriptEncode[[title]]=\"JavaScriptEncode[[<the title>]]\"><\/script>"));</script>
|
||||||
|
|
||||||
<script src="HtmlEncode[[/blank.js]]" title=""the" title">
|
<script src="HtmlEncode[[/blank.js]]" title=""the" title">
|
||||||
// Fallback to globbed src
|
// Fallback to globbed src
|
||||||
</script>
|
</script>
|
||||||
<script>(false||document.write("<script src=\"JavaScriptStringEncode[[/styles/site.js]]\" JavaScriptStringEncode[[title]]=\"JavaScriptStringEncode[["the" title]]\"><\/script>"));</script>
|
<script>(false||document.write("<script src=\"JavaScriptEncode[[/styles/site.js]]\" JavaScriptEncode[[title]]=\"JavaScriptEncode[["the" title]]\"><\/script>"));</script>
|
||||||
|
|
||||||
<script src="HtmlEncode[[/blank.js]]">
|
<script src="HtmlEncode[[/blank.js]]">
|
||||||
// Fallback to globbed src with exclude
|
// Fallback to globbed src with exclude
|
||||||
</script>
|
</script>
|
||||||
<script>(false||document.write("<script src=\"JavaScriptStringEncode[[/styles/site.js]]\"><\/script><script src=\"JavaScriptStringEncode[[/styles/sub/site2.js]]\"><\/script>"));</script>
|
<script>(false||document.write("<script src=\"JavaScriptEncode[[/styles/site.js]]\"><\/script><script src=\"JavaScriptEncode[[/styles/sub/site2.js]]\"><\/script>"));</script>
|
||||||
|
|
||||||
<script src="HtmlEncode[[/blank.js]]">
|
<script src="HtmlEncode[[/blank.js]]">
|
||||||
// Fallback to globbed and static src
|
// Fallback to globbed and static src
|
||||||
</script>
|
</script>
|
||||||
<script>(false||document.write("<script src=\"JavaScriptStringEncode[[/styles/site.js]]\"><\/script><script src=\"JavaScriptStringEncode[[/styles/sub/site2.js]]\"><\/script>"));</script>
|
<script>(false||document.write("<script src=\"JavaScriptEncode[[/styles/site.js]]\"><\/script><script src=\"JavaScriptEncode[[/styles/sub/site2.js]]\"><\/script>"));</script>
|
||||||
|
|
||||||
<script src="HtmlEncode[[/blank.js]]">
|
<script src="HtmlEncode[[/blank.js]]">
|
||||||
// Fallback to globbed and static src should de-dupe
|
// Fallback to globbed and static src should de-dupe
|
||||||
</script>
|
</script>
|
||||||
<script>(false||document.write("<script src=\"JavaScriptStringEncode[[/styles/site.js]]\"><\/script>"));</script>
|
<script>(false||document.write("<script src=\"JavaScriptEncode[[/styles/site.js]]\"><\/script>"));</script>
|
||||||
|
|
||||||
<script src="HtmlEncode[[/blank.js]]">
|
<script src="HtmlEncode[[/blank.js]]">
|
||||||
// Fallback to globbed src with missing include
|
// Fallback to globbed src with missing include
|
||||||
|
|
@ -42,7 +42,7 @@
|
||||||
<script src="HtmlEncode[[/blank.js]]">
|
<script src="HtmlEncode[[/blank.js]]">
|
||||||
// Fallback to static and globbed src with missing include
|
// Fallback to static and globbed src with missing include
|
||||||
</script>
|
</script>
|
||||||
<script>(false||document.write("<script src=\"JavaScriptStringEncode[[/styles/site.js]]\"><\/script>"));</script>
|
<script>(false||document.write("<script src=\"JavaScriptEncode[[/styles/site.js]]\"><\/script>"));</script>
|
||||||
|
|
||||||
<script src="HtmlEncode[[/blank.js]]">
|
<script src="HtmlEncode[[/blank.js]]">
|
||||||
// Fallback to globbed src outside of webroot
|
// Fallback to globbed src outside of webroot
|
||||||
|
|
@ -55,7 +55,7 @@
|
||||||
<script data-foo="foo-data3">
|
<script data-foo="foo-data3">
|
||||||
// Valid TagHelper (although no src is provided) script with comment in body, and extra properties.
|
// Valid TagHelper (although no src is provided) script with comment in body, and extra properties.
|
||||||
</script>
|
</script>
|
||||||
<script>(false||document.write("<script JavaScriptStringEncode[[data-foo]]=\"JavaScriptStringEncode[[foo-data3]]\" src=\"JavaScriptStringEncode[[/styles/site.js]]\"><\/script>"));</script>
|
<script>(false||document.write("<script JavaScriptEncode[[data-foo]]=\"JavaScriptEncode[[foo-data3]]\" src=\"JavaScriptEncode[[/styles/site.js]]\"><\/script>"));</script>
|
||||||
|
|
||||||
<script src="HtmlEncode[[/blank.js]]">
|
<script src="HtmlEncode[[/blank.js]]">
|
||||||
// Invalid TagHelper script with comment in body.
|
// Invalid TagHelper script with comment in body.
|
||||||
|
|
@ -98,12 +98,12 @@
|
||||||
<script src="HtmlEncode[[/blank.js]]">
|
<script src="HtmlEncode[[/blank.js]]">
|
||||||
// TagHelper script with comment in body, and file version.
|
// TagHelper script with comment in body, and file version.
|
||||||
</script>
|
</script>
|
||||||
<script>(false||document.write("<script src=\"JavaScriptStringEncode[[/styles/site.js?v=jx1PJjLX32-xgQQx2BxnckU9QH9DVKkm4-M5bSK869I]]\"><\/script>"));</script>
|
<script>(false||document.write("<script src=\"JavaScriptEncode[[/styles/site.js?v=jx1PJjLX32-xgQQx2BxnckU9QH9DVKkm4-M5bSK869I]]\"><\/script>"));</script>
|
||||||
|
|
||||||
<script src="HtmlEncode[[/blank.js]]">
|
<script src="HtmlEncode[[/blank.js]]">
|
||||||
// Fallback to globbed src with file version.
|
// Fallback to globbed src with file version.
|
||||||
</script>
|
</script>
|
||||||
<script>(false||document.write("<script src=\"JavaScriptStringEncode[[/styles/site.js?v=jx1PJjLX32-xgQQx2BxnckU9QH9DVKkm4-M5bSK869I]]\"><\/script>"));</script>
|
<script>(false||document.write("<script src=\"JavaScriptEncode[[/styles/site.js?v=jx1PJjLX32-xgQQx2BxnckU9QH9DVKkm4-M5bSK869I]]\"><\/script>"));</script>
|
||||||
|
|
||||||
<script src="HtmlEncode[[/styles/site.js?v=jx1PJjLX32-xgQQx2BxnckU9QH9DVKkm4-M5bSK869I]]">
|
<script src="HtmlEncode[[/styles/site.js?v=jx1PJjLX32-xgQQx2BxnckU9QH9DVKkm4-M5bSK869I]]">
|
||||||
// Regular script with comment in body, and file version.
|
// Regular script with comment in body, and file version.
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ namespace Microsoft.AspNet.Mvc.Localization.Test
|
||||||
var stringLocalizer = new Mock<IStringLocalizer>();
|
var stringLocalizer = new Mock<IStringLocalizer>();
|
||||||
stringLocalizer.Setup(s => s["Hello"]).Returns(localizedString);
|
stringLocalizer.Setup(s => s["Hello"]).Returns(localizedString);
|
||||||
|
|
||||||
var htmlLocalizer = new HtmlLocalizer(stringLocalizer.Object, new CommonTestEncoder());
|
var htmlLocalizer = new HtmlLocalizer(stringLocalizer.Object, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var actualLocalizedString = htmlLocalizer["Hello"];
|
var actualLocalizedString = htmlLocalizer["Hello"];
|
||||||
|
|
@ -39,7 +39,7 @@ namespace Microsoft.AspNet.Mvc.Localization.Test
|
||||||
var stringLocalizer = new Mock<IStringLocalizer>();
|
var stringLocalizer = new Mock<IStringLocalizer>();
|
||||||
stringLocalizer.Setup(s => s["Hello", "test"]).Returns(localizedString);
|
stringLocalizer.Setup(s => s["Hello", "test"]).Returns(localizedString);
|
||||||
|
|
||||||
var htmlLocalizer = new HtmlLocalizer(stringLocalizer.Object, new CommonTestEncoder());
|
var htmlLocalizer = new HtmlLocalizer(stringLocalizer.Object, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var actualLocalizedString = htmlLocalizer["Hello", "test"];
|
var actualLocalizedString = htmlLocalizer["Hello", "test"];
|
||||||
|
|
@ -102,7 +102,7 @@ namespace Microsoft.AspNet.Mvc.Localization.Test
|
||||||
var stringLocalizer = new Mock<IStringLocalizer>();
|
var stringLocalizer = new Mock<IStringLocalizer>();
|
||||||
stringLocalizer.Setup(s => s["Hello"]).Returns(localizedString);
|
stringLocalizer.Setup(s => s["Hello"]).Returns(localizedString);
|
||||||
|
|
||||||
var htmlLocalizer = new HtmlLocalizer(stringLocalizer.Object, new CommonTestEncoder());
|
var htmlLocalizer = new HtmlLocalizer(stringLocalizer.Object, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var localizedHtmlString = htmlLocalizer.Html("Hello", arguments);
|
var localizedHtmlString = htmlLocalizer.Html("Hello", arguments);
|
||||||
|
|
@ -141,7 +141,7 @@ namespace Microsoft.AspNet.Mvc.Localization.Test
|
||||||
var stringLocalizer = new Mock<IStringLocalizer>();
|
var stringLocalizer = new Mock<IStringLocalizer>();
|
||||||
stringLocalizer.Setup(s => s["Hello"]).Returns(localizedString);
|
stringLocalizer.Setup(s => s["Hello"]).Returns(localizedString);
|
||||||
|
|
||||||
var htmlLocalizer = new HtmlLocalizer(stringLocalizer.Object, new CommonTestEncoder());
|
var htmlLocalizer = new HtmlLocalizer(stringLocalizer.Object, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var exception = Assert.Throws<FormatException>(() => htmlLocalizer.Html("Hello", new object[] { }));
|
var exception = Assert.Throws<FormatException>(() => htmlLocalizer.Html("Hello", new object[] { }));
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,12 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Mvc.Razor;
|
using Microsoft.AspNet.Mvc.Razor;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
using Microsoft.Extensions.Localization;
|
using Microsoft.Extensions.Localization;
|
||||||
using Microsoft.Extensions.OptionsModel;
|
using Microsoft.Extensions.OptionsModel;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
using Microsoft.Extensions.WebEncoders.Testing;
|
using Microsoft.Extensions.WebEncoders.Testing;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -57,7 +56,7 @@ namespace Microsoft.AspNet.Mvc.Localization.Internal
|
||||||
},
|
},
|
||||||
service =>
|
service =>
|
||||||
{
|
{
|
||||||
Assert.Equal(typeof(IHtmlEncoder), service.ServiceType);
|
Assert.Equal(typeof(HtmlEncoder), service.ServiceType);
|
||||||
Assert.Equal(ServiceLifetime.Singleton, service.Lifetime);
|
Assert.Equal(ServiceLifetime.Singleton, service.Lifetime);
|
||||||
},
|
},
|
||||||
service =>
|
service =>
|
||||||
|
|
@ -84,13 +83,13 @@ namespace Microsoft.AspNet.Mvc.Localization.Internal
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var collection = new ServiceCollection();
|
var collection = new ServiceCollection();
|
||||||
var testEncoder = new CommonTestEncoder();
|
var testEncoder = new HtmlTestEncoder();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
collection.Add(ServiceDescriptor.Singleton(typeof(IHtmlLocalizerFactory), typeof(TestHtmlLocalizerFactory)));
|
collection.Add(ServiceDescriptor.Singleton(typeof(IHtmlLocalizerFactory), typeof(TestHtmlLocalizerFactory)));
|
||||||
collection.Add(ServiceDescriptor.Transient(typeof(IHtmlLocalizer<>), typeof(TestHtmlLocalizer<>)));
|
collection.Add(ServiceDescriptor.Transient(typeof(IHtmlLocalizer<>), typeof(TestHtmlLocalizer<>)));
|
||||||
collection.Add(ServiceDescriptor.Transient(typeof(IViewLocalizer), typeof(TestViewLocalizer)));
|
collection.Add(ServiceDescriptor.Transient(typeof(IViewLocalizer), typeof(TestViewLocalizer)));
|
||||||
collection.Add(ServiceDescriptor.Instance(typeof(IHtmlEncoder), testEncoder));
|
collection.Add(ServiceDescriptor.Instance(typeof(HtmlEncoder), testEncoder));
|
||||||
|
|
||||||
MvcLocalizationServices.AddLocalizationServices(
|
MvcLocalizationServices.AddLocalizationServices(
|
||||||
collection,
|
collection,
|
||||||
|
|
@ -119,7 +118,7 @@ namespace Microsoft.AspNet.Mvc.Localization.Internal
|
||||||
},
|
},
|
||||||
service =>
|
service =>
|
||||||
{
|
{
|
||||||
Assert.Equal(typeof(IHtmlEncoder), service.ServiceType);
|
Assert.Equal(typeof(HtmlEncoder), service.ServiceType);
|
||||||
Assert.Same(testEncoder, service.ImplementationInstance);
|
Assert.Same(testEncoder, service.ImplementationInstance);
|
||||||
},
|
},
|
||||||
service =>
|
service =>
|
||||||
|
|
@ -165,7 +164,7 @@ namespace Microsoft.AspNet.Mvc.Localization.Internal
|
||||||
|
|
||||||
collection.Add(ServiceDescriptor.Transient(typeof(IHtmlLocalizer<>), typeof(TestHtmlLocalizer<>)));
|
collection.Add(ServiceDescriptor.Transient(typeof(IHtmlLocalizer<>), typeof(TestHtmlLocalizer<>)));
|
||||||
collection.Add(ServiceDescriptor.Transient(typeof(IHtmlLocalizer), typeof(TestViewLocalizer)));
|
collection.Add(ServiceDescriptor.Transient(typeof(IHtmlLocalizer), typeof(TestViewLocalizer)));
|
||||||
collection.Add(ServiceDescriptor.Instance(typeof(IHtmlEncoder), typeof(CommonTestEncoder)));
|
collection.Add(ServiceDescriptor.Instance(typeof(HtmlEncoder), typeof(HtmlTestEncoder)));
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(collection,
|
Assert.Collection(collection,
|
||||||
|
|
@ -199,7 +198,7 @@ namespace Microsoft.AspNet.Mvc.Localization.Internal
|
||||||
},
|
},
|
||||||
service =>
|
service =>
|
||||||
{
|
{
|
||||||
Assert.Equal(typeof(IHtmlEncoder), service.ServiceType);
|
Assert.Equal(typeof(HtmlEncoder), service.ServiceType);
|
||||||
Assert.Equal(ServiceLifetime.Singleton, service.Lifetime);
|
Assert.Equal(ServiceLifetime.Singleton, service.Lifetime);
|
||||||
},
|
},
|
||||||
service =>
|
service =>
|
||||||
|
|
@ -233,8 +232,8 @@ namespace Microsoft.AspNet.Mvc.Localization.Internal
|
||||||
},
|
},
|
||||||
service =>
|
service =>
|
||||||
{
|
{
|
||||||
Assert.Equal(typeof(IHtmlEncoder), service.ServiceType);
|
Assert.Equal(typeof(HtmlEncoder), service.ServiceType);
|
||||||
Assert.Equal(typeof(CommonTestEncoder), service.ImplementationInstance);
|
Assert.Equal(typeof(HtmlTestEncoder), service.ImplementationInstance);
|
||||||
Assert.Equal(ServiceLifetime.Singleton, service.Lifetime);
|
Assert.Equal(ServiceLifetime.Singleton, service.Lifetime);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -278,7 +277,7 @@ namespace Microsoft.AspNet.Mvc.Localization.Internal
|
||||||
},
|
},
|
||||||
service =>
|
service =>
|
||||||
{
|
{
|
||||||
Assert.Equal(typeof(IHtmlEncoder), service.ServiceType);
|
Assert.Equal(typeof(HtmlEncoder), service.ServiceType);
|
||||||
Assert.Equal(ServiceLifetime.Singleton, service.Lifetime);
|
Assert.Equal(ServiceLifetime.Singleton, service.Lifetime);
|
||||||
},
|
},
|
||||||
service =>
|
service =>
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Http;
|
using Microsoft.AspNet.Http;
|
||||||
using Microsoft.AspNet.Mvc.Abstractions;
|
using Microsoft.AspNet.Mvc.Abstractions;
|
||||||
|
|
@ -14,7 +15,6 @@ using Microsoft.AspNet.Mvc.ViewEngines;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures;
|
using Microsoft.AspNet.Mvc.ViewFeatures;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures.Internal;
|
using Microsoft.AspNet.Mvc.ViewFeatures.Internal;
|
||||||
using Microsoft.AspNet.Routing;
|
using Microsoft.AspNet.Routing;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
using Microsoft.Extensions.WebEncoders.Testing;
|
using Microsoft.Extensions.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
@ -32,13 +32,13 @@ 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 CommonTestEncoder();
|
var htmlEncoder = new HtmlTestEncoder();
|
||||||
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);
|
||||||
serviceProvider.Setup(p => p.GetService(typeof(IHtmlHelper<object>)))
|
serviceProvider.Setup(p => p.GetService(typeof(IHtmlHelper<object>)))
|
||||||
.Returns(helper);
|
.Returns(helper);
|
||||||
serviceProvider.Setup(p => p.GetService(typeof(IHtmlEncoder)))
|
serviceProvider.Setup(p => p.GetService(typeof(HtmlEncoder)))
|
||||||
.Returns(htmlEncoder);
|
.Returns(htmlEncoder);
|
||||||
var httpContext = new Mock<HttpContext>();
|
var httpContext = new Mock<HttpContext>();
|
||||||
httpContext.SetupGet(c => c.RequestServices)
|
httpContext.SetupGet(c => c.RequestServices)
|
||||||
|
|
@ -103,13 +103,13 @@ 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 CommonTestEncoder();
|
var htmlEncoder = new HtmlTestEncoder();
|
||||||
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);
|
||||||
serviceProvider.Setup(p => p.GetService(typeof(IHtmlHelper<object>)))
|
serviceProvider.Setup(p => p.GetService(typeof(IHtmlHelper<object>)))
|
||||||
.Returns(helper);
|
.Returns(helper);
|
||||||
serviceProvider.Setup(p => p.GetService(typeof(IHtmlEncoder)))
|
serviceProvider.Setup(p => p.GetService(typeof(HtmlEncoder)))
|
||||||
.Returns(htmlEncoder);
|
.Returns(htmlEncoder);
|
||||||
var httpContext = new Mock<HttpContext>();
|
var httpContext = new Mock<HttpContext>();
|
||||||
httpContext.SetupGet(c => c.RequestServices)
|
httpContext.SetupGet(c => c.RequestServices)
|
||||||
|
|
@ -142,13 +142,13 @@ 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 CommonTestEncoder();
|
var htmlEncoder = new HtmlTestEncoder();
|
||||||
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);
|
||||||
serviceProvider.Setup(p => p.GetService(typeof(IHtmlHelper<object>)))
|
serviceProvider.Setup(p => p.GetService(typeof(IHtmlHelper<object>)))
|
||||||
.Returns(helper);
|
.Returns(helper);
|
||||||
serviceProvider.Setup(p => p.GetService(typeof(IHtmlEncoder)))
|
serviceProvider.Setup(p => p.GetService(typeof(HtmlEncoder)))
|
||||||
.Returns(htmlEncoder);
|
.Returns(htmlEncoder);
|
||||||
var httpContext = new Mock<HttpContext>();
|
var httpContext = new Mock<HttpContext>();
|
||||||
httpContext.SetupGet(c => c.RequestServices)
|
httpContext.SetupGet(c => c.RequestServices)
|
||||||
|
|
@ -181,13 +181,13 @@ 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 CommonTestEncoder();
|
var htmlEncoder = new HtmlTestEncoder();
|
||||||
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);
|
||||||
serviceProvider.Setup(p => p.GetService(typeof(IHtmlHelper<object>)))
|
serviceProvider.Setup(p => p.GetService(typeof(IHtmlHelper<object>)))
|
||||||
.Returns(helper);
|
.Returns(helper);
|
||||||
serviceProvider.Setup(p => p.GetService(typeof(IHtmlEncoder)))
|
serviceProvider.Setup(p => p.GetService(typeof(HtmlEncoder)))
|
||||||
.Returns(htmlEncoder);
|
.Returns(htmlEncoder);
|
||||||
var httpContext = new Mock<HttpContext>();
|
var httpContext = new Mock<HttpContext>();
|
||||||
httpContext.SetupGet(c => c.RequestServices)
|
httpContext.SetupGet(c => c.RequestServices)
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var viewContext = CreateViewContext();
|
var viewContext = CreateViewContext();
|
||||||
var page = CreatePage(v =>
|
var page = CreatePage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new CommonTestEncoder();
|
v.HtmlEncoder = new HtmlTestEncoder();
|
||||||
v.Write("Hello Prefix");
|
v.Write("Hello Prefix");
|
||||||
v.StartTagHelperWritingScope();
|
v.StartTagHelperWritingScope();
|
||||||
v.Write("Hello from Output");
|
v.Write("Hello from Output");
|
||||||
|
|
@ -63,7 +63,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var viewContext = CreateViewContext();
|
var viewContext = CreateViewContext();
|
||||||
var page = CreatePage(v =>
|
var page = CreatePage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new CommonTestEncoder();
|
v.HtmlEncoder = new HtmlTestEncoder();
|
||||||
v.Write("Hello Prefix");
|
v.Write("Hello Prefix");
|
||||||
v.StartTagHelperWritingScope();
|
v.StartTagHelperWritingScope();
|
||||||
v.Write("Hello In Scope");
|
v.Write("Hello In Scope");
|
||||||
|
|
@ -87,7 +87,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var viewContext = CreateViewContext();
|
var viewContext = CreateViewContext();
|
||||||
var page = CreatePage(v =>
|
var page = CreatePage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new CommonTestEncoder();
|
v.HtmlEncoder = new HtmlTestEncoder();
|
||||||
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");
|
||||||
|
|
@ -161,7 +161,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Act
|
// Act
|
||||||
var page = CreatePage(v =>
|
var page = CreatePage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new CommonTestEncoder();
|
v.HtmlEncoder = new HtmlTestEncoder();
|
||||||
v.StartTagHelperWritingScope();
|
v.StartTagHelperWritingScope();
|
||||||
v.Write("Hello World!");
|
v.Write("Hello World!");
|
||||||
var returnValue = v.EndTagHelperWritingScope();
|
var returnValue = v.EndTagHelperWritingScope();
|
||||||
|
|
@ -182,7 +182,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Act
|
// Act
|
||||||
var page = CreatePage(v =>
|
var page = CreatePage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new CommonTestEncoder();
|
v.HtmlEncoder = new HtmlTestEncoder();
|
||||||
v.StartTagHelperWritingScope(new RazorTextWriter(TextWriter.Null, Encoding.UTF8, v.HtmlEncoder));
|
v.StartTagHelperWritingScope(new RazorTextWriter(TextWriter.Null, Encoding.UTF8, v.HtmlEncoder));
|
||||||
v.Write("Hello ");
|
v.Write("Hello ");
|
||||||
v.Write("World!");
|
v.Write("World!");
|
||||||
|
|
@ -560,7 +560,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
.Verifiable();
|
.Verifiable();
|
||||||
var page = CreatePage(v =>
|
var page = CreatePage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new CommonTestEncoder();
|
v.HtmlEncoder = new HtmlTestEncoder();
|
||||||
v.Write(v.Href("url"));
|
v.Write(v.Href("url"));
|
||||||
});
|
});
|
||||||
var services = new Mock<IServiceProvider>();
|
var services = new Mock<IServiceProvider>();
|
||||||
|
|
@ -664,7 +664,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Arrange
|
// Arrange
|
||||||
var page = CreatePage(p =>
|
var page = CreatePage(p =>
|
||||||
{
|
{
|
||||||
p.HtmlEncoder = new CommonTestEncoder();
|
p.HtmlEncoder = new HtmlTestEncoder();
|
||||||
p.BeginWriteAttribute("href", "prefix", 0, "suffix", 34, 2);
|
p.BeginWriteAttribute("href", "prefix", 0, "suffix", 34, 2);
|
||||||
p.WriteAttributeValue("prefix", 0, "attr1-value", 8, 14, true);
|
p.WriteAttributeValue("prefix", 0, "attr1-value", 8, 14, true);
|
||||||
p.WriteAttributeValue("prefix2", 22, "attr2", 29, 5, false);
|
p.WriteAttributeValue("prefix2", 22, "attr2", 29, 5, false);
|
||||||
|
|
@ -699,7 +699,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Arrange
|
// Arrange
|
||||||
var page = CreatePage(p =>
|
var page = CreatePage(p =>
|
||||||
{
|
{
|
||||||
p.HtmlEncoder = new CommonTestEncoder();
|
p.HtmlEncoder = new HtmlTestEncoder();
|
||||||
p.BeginWriteAttribute("href", "prefix", 0, "suffix", 10, 1);
|
p.BeginWriteAttribute("href", "prefix", 0, "suffix", 10, 1);
|
||||||
p.WriteAttributeValue("", 6, "true", 6, 4, false);
|
p.WriteAttributeValue("", 6, "true", 6, 4, false);
|
||||||
p.EndWriteAttribute();
|
p.EndWriteAttribute();
|
||||||
|
|
@ -810,7 +810,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var page = CreatePage(p => { });
|
var page = CreatePage(p => { });
|
||||||
page.HtmlEncoder = new CommonTestEncoder();
|
page.HtmlEncoder = new HtmlTestEncoder();
|
||||||
var executionContext = new TagHelperExecutionContext(
|
var executionContext = new TagHelperExecutionContext(
|
||||||
"p",
|
"p",
|
||||||
tagMode: TagMode.StartTagAndEndTag,
|
tagMode: TagMode.StartTagAndEndTag,
|
||||||
|
|
@ -850,7 +850,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var page = CreatePage(p => { });
|
var page = CreatePage(p => { });
|
||||||
page.HtmlEncoder = new CommonTestEncoder();
|
page.HtmlEncoder = new HtmlTestEncoder();
|
||||||
var executionContext = new TagHelperExecutionContext(
|
var executionContext = new TagHelperExecutionContext(
|
||||||
"p",
|
"p",
|
||||||
tagMode: TagMode.StartTagAndEndTag,
|
tagMode: TagMode.StartTagAndEndTag,
|
||||||
|
|
@ -878,7 +878,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var page = CreatePage(p => { });
|
var page = CreatePage(p => { });
|
||||||
page.HtmlEncoder = new CommonTestEncoder();
|
page.HtmlEncoder = new HtmlTestEncoder();
|
||||||
var executionContext = new TagHelperExecutionContext(
|
var executionContext = new TagHelperExecutionContext(
|
||||||
"p",
|
"p",
|
||||||
tagMode: TagMode.StartTagAndEndTag,
|
tagMode: TagMode.StartTagAndEndTag,
|
||||||
|
|
@ -966,7 +966,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var page = CreatePage(p => { });
|
var page = CreatePage(p => { });
|
||||||
page.HtmlEncoder = new CommonTestEncoder();
|
page.HtmlEncoder = new HtmlTestEncoder();
|
||||||
var writer = new StringWriter();
|
var writer = new StringWriter();
|
||||||
var prefix = "someattr=";
|
var prefix = "someattr=";
|
||||||
var suffix = string.Empty;
|
var suffix = string.Empty;
|
||||||
|
|
@ -994,7 +994,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task Write_WithHtmlString_WritesValueWithoutEncoding()
|
public async Task Write_WithHtmlString_WritesValueWithoutEncoding()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
|
|
||||||
var page = CreatePage(p =>
|
var page = CreatePage(p =>
|
||||||
{
|
{
|
||||||
|
|
@ -1630,7 +1630,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Act
|
// Act
|
||||||
var page = CreatePage(p =>
|
var page = CreatePage(p =>
|
||||||
{
|
{
|
||||||
p.HtmlEncoder = new CommonTestEncoder();
|
p.HtmlEncoder = new HtmlTestEncoder();
|
||||||
p.WriteTagHelperAsync(tagHelperExecutionContext).Wait();
|
p.WriteTagHelperAsync(tagHelperExecutionContext).Wait();
|
||||||
}, context);
|
}, context);
|
||||||
await page.ExecuteAsync();
|
await page.ExecuteAsync();
|
||||||
|
|
@ -1675,7 +1675,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Act
|
// Act
|
||||||
var page = CreatePage(p =>
|
var page = CreatePage(p =>
|
||||||
{
|
{
|
||||||
p.HtmlEncoder = new CommonTestEncoder();
|
p.HtmlEncoder = new HtmlTestEncoder();
|
||||||
p.WriteTagHelperAsync(tagHelperExecutionContext).Wait();
|
p.WriteTagHelperAsync(tagHelperExecutionContext).Wait();
|
||||||
}, context);
|
}, context);
|
||||||
await page.ExecuteAsync();
|
await page.ExecuteAsync();
|
||||||
|
|
@ -1707,7 +1707,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Act
|
// Act
|
||||||
var page = CreatePage(p =>
|
var page = CreatePage(p =>
|
||||||
{
|
{
|
||||||
p.HtmlEncoder = new CommonTestEncoder();
|
p.HtmlEncoder = new HtmlTestEncoder();
|
||||||
p.WriteTagHelperToAsync(writer, tagHelperExecutionContext).Wait();
|
p.WriteTagHelperToAsync(writer, tagHelperExecutionContext).Wait();
|
||||||
}, context);
|
}, context);
|
||||||
await page.ExecuteAsync();
|
await page.ExecuteAsync();
|
||||||
|
|
@ -1736,7 +1736,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
// Act
|
// Act
|
||||||
var page = CreatePage(p =>
|
var page = CreatePage(p =>
|
||||||
{
|
{
|
||||||
p.HtmlEncoder = new CommonTestEncoder();
|
p.HtmlEncoder = new HtmlTestEncoder();
|
||||||
p.WriteTagHelperToAsync(writer, tagHelperExecutionContext).Wait();
|
p.WriteTagHelperToAsync(writer, tagHelperExecutionContext).Wait();
|
||||||
}, context);
|
}, context);
|
||||||
await page.ExecuteAsync();
|
await page.ExecuteAsync();
|
||||||
|
|
@ -1828,7 +1828,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
{
|
{
|
||||||
public TestableRazorPage()
|
public TestableRazorPage()
|
||||||
{
|
{
|
||||||
HtmlEncoder = new CommonTestEncoder();
|
HtmlEncoder = new HtmlTestEncoder();
|
||||||
}
|
}
|
||||||
|
|
||||||
public string RenderedContent
|
public string RenderedContent
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var expected = new[] { "True", "3", "18446744073709551615", "Hello world", "3.14", "2.718", "m" };
|
var expected = new[] { "True", "3", "18446744073709551615", "Hello world", "3.14", "2.718", "m" };
|
||||||
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
writer.Write(true);
|
writer.Write(true);
|
||||||
|
|
@ -44,7 +44,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
// Arrange
|
// Arrange
|
||||||
var expected = new[] { "True", "3", "18446744073709551615", "Hello world", "3.14", "2.718" };
|
var expected = new[] { "True", "3", "18446744073709551615", "Hello world", "3.14", "2.718" };
|
||||||
var unbufferedWriter = new Mock<TextWriter>();
|
var unbufferedWriter = new Mock<TextWriter>();
|
||||||
var writer = new RazorTextWriter(unbufferedWriter.Object, Encoding.UTF8, new CommonTestEncoder());
|
var writer = new RazorTextWriter(unbufferedWriter.Object, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
var testClass = new TestClass();
|
var testClass = new TestClass();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -70,7 +70,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var unbufferedWriter = new Mock<TextWriter> { CallBase = true };
|
var unbufferedWriter = new Mock<TextWriter> { CallBase = true };
|
||||||
var writer = new RazorTextWriter(unbufferedWriter.Object, Encoding.UTF8, new CommonTestEncoder());
|
var writer = new RazorTextWriter(unbufferedWriter.Object, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
var buffer1 = new[] { 'a', 'b', 'c', 'd' };
|
var buffer1 = new[] { 'a', 'b', 'c', 'd' };
|
||||||
var buffer2 = new[] { 'd', 'e', 'f' };
|
var buffer2 = new[] { 'd', 'e', 'f' };
|
||||||
|
|
||||||
|
|
@ -98,7 +98,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var unbufferedWriter = new Mock<TextWriter>();
|
var unbufferedWriter = new Mock<TextWriter>();
|
||||||
var writer = new RazorTextWriter(unbufferedWriter.Object, Encoding.UTF8, new CommonTestEncoder());
|
var writer = new RazorTextWriter(unbufferedWriter.Object, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
await writer.FlushAsync();
|
await writer.FlushAsync();
|
||||||
|
|
@ -122,7 +122,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
// Arrange
|
// Arrange
|
||||||
var newLine = Environment.NewLine;
|
var newLine = Environment.NewLine;
|
||||||
var expected = new List<object> { "False", newLine, "1.1", newLine, "3", newLine };
|
var expected = new List<object> { "False", newLine, "1.1", newLine, "3", newLine };
|
||||||
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
writer.WriteLine(false);
|
writer.WriteLine(false);
|
||||||
|
|
@ -139,7 +139,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var unbufferedWriter = new Mock<TextWriter>();
|
var unbufferedWriter = new Mock<TextWriter>();
|
||||||
var writer = new RazorTextWriter(unbufferedWriter.Object, Encoding.UTF8, new CommonTestEncoder());
|
var writer = new RazorTextWriter(unbufferedWriter.Object, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
writer.Flush();
|
writer.Flush();
|
||||||
|
|
@ -162,7 +162,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
var input1 = new ArraySegment<char>(new char[] { 'a', 'b', 'c', 'd' }, 1, 3);
|
var input1 = new ArraySegment<char>(new char[] { 'a', 'b', 'c', 'd' }, 1, 3);
|
||||||
var input2 = new ArraySegment<char>(new char[] { 'e', 'f' }, 0, 2);
|
var input2 = new ArraySegment<char>(new char[] { 'e', 'f' }, 0, 2);
|
||||||
var input3 = new ArraySegment<char>(new char[] { 'g', 'h', 'i', 'j' }, 3, 1);
|
var input3 = new ArraySegment<char>(new char[] { 'g', 'h', 'i', 'j' }, 3, 1);
|
||||||
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
writer.Write(input1.Array, input1.Offset, input1.Count);
|
writer.Write(input1.Array, input1.Offset, input1.Count);
|
||||||
|
|
@ -183,7 +183,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var newLine = Environment.NewLine;
|
var newLine = Environment.NewLine;
|
||||||
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
writer.WriteLine();
|
writer.WriteLine();
|
||||||
|
|
@ -203,7 +203,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
var input2 = "from";
|
var input2 = "from";
|
||||||
var input3 = "ASP";
|
var input3 = "ASP";
|
||||||
var input4 = ".Net";
|
var input4 = ".Net";
|
||||||
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
writer.Write(input1);
|
writer.Write(input1);
|
||||||
|
|
@ -220,7 +220,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
public void Write_HtmlContent_AddsToEntries()
|
public void Write_HtmlContent_AddsToEntries()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
var content = new HtmlString("Hello, world!");
|
var content = new HtmlString("Hello, world!");
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -236,7 +236,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
public void Write_Object_HtmlContent_AddsToEntries()
|
public void Write_Object_HtmlContent_AddsToEntries()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
var content = new HtmlString("Hello, world!");
|
var content = new HtmlString("Hello, world!");
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -252,7 +252,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
public void WriteLine_Object_HtmlContent_AddsToEntries()
|
public void WriteLine_Object_HtmlContent_AddsToEntries()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var writer = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
var content = new HtmlString("Hello, world!");
|
var content = new HtmlString("Hello, world!");
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -271,7 +271,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
// Arrange
|
// Arrange
|
||||||
var stringWriter = new StringWriter();
|
var stringWriter = new StringWriter();
|
||||||
|
|
||||||
var writer = new RazorTextWriter(stringWriter, Encoding.UTF8, new CommonTestEncoder());
|
var writer = new RazorTextWriter(stringWriter, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
writer.Flush();
|
writer.Flush();
|
||||||
|
|
||||||
var content = new HtmlString("Hello, world!");
|
var content = new HtmlString("Hello, world!");
|
||||||
|
|
@ -287,8 +287,8 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
public void Copy_CopiesContent_IfTargetTextWriterIsARazorTextWriterAndBuffering()
|
public void Copy_CopiesContent_IfTargetTextWriterIsARazorTextWriterAndBuffering()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var source = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var source = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
var target = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var target = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
source.Write("Hello world");
|
source.Write("Hello world");
|
||||||
|
|
@ -307,8 +307,8 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var unbufferedWriter = new Mock<TextWriter>();
|
var unbufferedWriter = new Mock<TextWriter>();
|
||||||
var source = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var source = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
var target = new RazorTextWriter(unbufferedWriter.Object, Encoding.UTF8, new CommonTestEncoder());
|
var target = new RazorTextWriter(unbufferedWriter.Object, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
target.Flush();
|
target.Flush();
|
||||||
|
|
@ -328,7 +328,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
public void Copy_WritesContent_IfTargetTextWriterIsNotARazorTextWriter()
|
public void Copy_WritesContent_IfTargetTextWriterIsNotARazorTextWriter()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var source = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var source = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
var target = new StringWriter();
|
var target = new StringWriter();
|
||||||
var expected = "Hello world" + Environment.NewLine + "abc";
|
var expected = "Hello world" + Environment.NewLine + "abc";
|
||||||
|
|
||||||
|
|
@ -345,8 +345,8 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
public async Task CopyAsync_WritesContent_IfTargetTextWriterIsARazorTextWriterAndBuffering()
|
public async Task CopyAsync_WritesContent_IfTargetTextWriterIsARazorTextWriterAndBuffering()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var source = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var source = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
var target = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var target = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
source.WriteLine("Hello world");
|
source.WriteLine("Hello world");
|
||||||
|
|
@ -365,8 +365,8 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var unbufferedWriter = new Mock<TextWriter>();
|
var unbufferedWriter = new Mock<TextWriter>();
|
||||||
var source = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var source = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
var target = new RazorTextWriter(unbufferedWriter.Object, Encoding.UTF8, new CommonTestEncoder());
|
var target = new RazorTextWriter(unbufferedWriter.Object, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
await target.FlushAsync();
|
await target.FlushAsync();
|
||||||
|
|
@ -387,7 +387,7 @@ namespace Microsoft.AspNet.Mvc.Razor.Test
|
||||||
public async Task CopyAsync_WritesContent_IfTargetTextWriterIsNotARazorTextWriter()
|
public async Task CopyAsync_WritesContent_IfTargetTextWriterIsNotARazorTextWriter()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var source = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new CommonTestEncoder());
|
var source = new RazorTextWriter(TextWriter.Null, Encoding.UTF8, new HtmlTestEncoder());
|
||||||
var target = new StringWriter();
|
var target = new StringWriter();
|
||||||
var expected = "Hello world" + Environment.NewLine;
|
var expected = "Hello world" + Environment.NewLine;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var factory = new RazorViewFactory(
|
var factory = new RazorViewFactory(
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
Mock.Of<IViewStartProvider>(),
|
Mock.Of<IViewStartProvider>(),
|
||||||
new CommonTestEncoder());
|
new HtmlTestEncoder());
|
||||||
var page = Mock.Of<IRazorPage>();
|
var page = Mock.Of<IRazorPage>();
|
||||||
var viewEngine = Mock.Of<IRazorViewEngine>();
|
var viewEngine = Mock.Of<IRazorViewEngine>();
|
||||||
|
|
||||||
|
|
@ -38,7 +38,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var factory = new RazorViewFactory(
|
var factory = new RazorViewFactory(
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
Mock.Of<IViewStartProvider>(),
|
Mock.Of<IViewStartProvider>(),
|
||||||
new CommonTestEncoder());
|
new HtmlTestEncoder());
|
||||||
|
|
||||||
var page = Mock.Of<IRazorPage>();
|
var page = Mock.Of<IRazorPage>();
|
||||||
var viewEngine = Mock.Of<IRazorViewEngine>();
|
var viewEngine = Mock.Of<IRazorViewEngine>();
|
||||||
|
|
|
||||||
|
|
@ -36,14 +36,14 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
actual = v.Output;
|
actual = v.Output;
|
||||||
v.HtmlEncoder = new CommonTestEncoder();
|
v.HtmlEncoder = new HtmlTestEncoder();
|
||||||
v.Write("Hello world");
|
v.Write("Hello world");
|
||||||
});
|
});
|
||||||
var view = new RazorView(Mock.Of<IRazorViewEngine>(),
|
var view = new RazorView(Mock.Of<IRazorViewEngine>(),
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: true);
|
isPartial: true);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
var expected = viewContext.Writer;
|
var expected = viewContext.Writer;
|
||||||
|
|
@ -72,7 +72,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
activator.Object,
|
activator.Object,
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: true);
|
isPartial: true);
|
||||||
|
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
@ -136,7 +136,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
activator,
|
activator,
|
||||||
CreateViewStartProvider(viewStart),
|
CreateViewStartProvider(viewStart),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
|
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
@ -161,7 +161,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
activator.Object,
|
activator.Object,
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: true);
|
isPartial: true);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -176,7 +176,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task RenderAsync_AsPartial_ExecutesLayout_ButNotViewStartPages()
|
public async Task RenderAsync_AsPartial_ExecutesLayout_ButNotViewStartPages()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new CommonTestEncoder();
|
var htmlEncoder = new HtmlTestEncoder();
|
||||||
var expected = string.Join(Environment.NewLine,
|
var expected = string.Join(Environment.NewLine,
|
||||||
"HtmlEncode[[layout-content",
|
"HtmlEncode[[layout-content",
|
||||||
"]]HtmlEncode[[page-content]]");
|
"]]HtmlEncode[[page-content]]");
|
||||||
|
|
@ -206,7 +206,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
viewStartProvider,
|
viewStartProvider,
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: true);
|
isPartial: true);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -232,7 +232,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
var original = viewContext.Writer;
|
var original = viewContext.Writer;
|
||||||
|
|
@ -257,7 +257,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
var original = viewContext.Writer;
|
var original = viewContext.Writer;
|
||||||
|
|
@ -284,7 +284,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
activator.Object,
|
activator.Object,
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -327,7 +327,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
activator.Object,
|
activator.Object,
|
||||||
CreateViewStartProvider(viewStart1, viewStart2),
|
CreateViewStartProvider(viewStart1, viewStart2),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -360,7 +360,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
Mock.Of<IViewStartProvider>(),
|
Mock.Of<IViewStartProvider>(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
viewEngine.Setup(v => v.FindPage(viewContext, layoutPath))
|
viewEngine.Setup(v => v.FindPage(viewContext, layoutPath))
|
||||||
|
|
@ -379,8 +379,8 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task RenderAsync_ExecutesLayoutPages()
|
public async Task RenderAsync_ExecutesLayoutPages()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new CommonTestEncoder();
|
var htmlEncoder = new HtmlTestEncoder();
|
||||||
var htmlEncodedNewLine = htmlEncoder.HtmlEncode(Environment.NewLine);
|
var htmlEncodedNewLine = htmlEncoder.Encode(Environment.NewLine);
|
||||||
var expected = "HtmlEncode[[layout-content" +
|
var expected = "HtmlEncode[[layout-content" +
|
||||||
Environment.NewLine +
|
Environment.NewLine +
|
||||||
"]]head-content" +
|
"]]head-content" +
|
||||||
|
|
@ -424,7 +424,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
activator.Object,
|
activator.Object,
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
viewEngine.Setup(p => p.FindPage(viewContext, LayoutPath))
|
viewEngine.Setup(p => p.FindPage(viewContext, LayoutPath))
|
||||||
|
|
@ -466,7 +466,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -485,7 +485,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
"layout-section-content",
|
"layout-section-content",
|
||||||
"page-section-content");
|
"page-section-content");
|
||||||
|
|
||||||
var htmlEncoder = new CommonTestEncoder();
|
var htmlEncoder = new HtmlTestEncoder();
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = htmlEncoder;
|
v.HtmlEncoder = htmlEncoder;
|
||||||
|
|
@ -529,7 +529,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -549,7 +549,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
"layout-section-content",
|
"layout-section-content",
|
||||||
"page-section-content");
|
"page-section-content");
|
||||||
|
|
||||||
var htmlEncoder = new CommonTestEncoder();
|
var htmlEncoder = new HtmlTestEncoder();
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = htmlEncoder;
|
v.HtmlEncoder = htmlEncoder;
|
||||||
|
|
@ -589,7 +589,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -604,7 +604,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task RenderAsync_WithNestedSections_ThrowsIfSectionsWereDefinedButNotRendered()
|
public async Task RenderAsync_WithNestedSections_ThrowsIfSectionsWereDefinedButNotRendered()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new CommonTestEncoder();
|
var htmlEncoder = new HtmlTestEncoder();
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = htmlEncoder;
|
v.HtmlEncoder = htmlEncoder;
|
||||||
|
|
@ -649,7 +649,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -663,7 +663,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task RenderAsync_WithNestedSectionsOfTheSameName_ThrowsIfSectionsWereDefinedButNotRendered()
|
public async Task RenderAsync_WithNestedSectionsOfTheSameName_ThrowsIfSectionsWereDefinedButNotRendered()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new CommonTestEncoder();
|
var htmlEncoder = new HtmlTestEncoder();
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = htmlEncoder;
|
v.HtmlEncoder = htmlEncoder;
|
||||||
|
|
@ -714,7 +714,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -746,7 +746,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -759,7 +759,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task RenderAsync_ExecutesNestedLayoutPages()
|
public async Task RenderAsync_ExecutesNestedLayoutPages()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new CommonTestEncoder();
|
var htmlEncoder = new HtmlTestEncoder();
|
||||||
var expected = "HtmlEncode[[layout-2" +
|
var expected = "HtmlEncode[[layout-2" +
|
||||||
Environment.NewLine +
|
Environment.NewLine +
|
||||||
"]]bar-content" +
|
"]]bar-content" +
|
||||||
|
|
@ -810,7 +810,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -846,7 +846,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -891,7 +891,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -906,7 +906,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task RenderAsync_ExecutesNestedLayoutsWithNestedSections()
|
public async Task RenderAsync_ExecutesNestedLayoutsWithNestedSections()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new CommonTestEncoder();
|
var htmlEncoder = new HtmlTestEncoder();
|
||||||
var expected = "HtmlEncode[[BaseLayout" +
|
var expected = "HtmlEncode[[BaseLayout" +
|
||||||
Environment.NewLine +
|
Environment.NewLine +
|
||||||
"]]HtmlEncode[[NestedLayout" +
|
"]]HtmlEncode[[NestedLayout" +
|
||||||
|
|
@ -935,7 +935,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
v.RenderBodyPublic();
|
v.RenderBodyPublic();
|
||||||
v.DefineSection("foo", async writer =>
|
v.DefineSection("foo", async writer =>
|
||||||
{
|
{
|
||||||
await writer.WriteLineAsync(htmlEncoder.HtmlEncode(v.RenderSection("foo").ToString()));
|
await writer.WriteLineAsync(htmlEncoder.Encode(v.RenderSection("foo").ToString()));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
nestedLayout.Path = "~/Shared/Layout2.cshtml";
|
nestedLayout.Path = "~/Shared/Layout2.cshtml";
|
||||||
|
|
@ -959,7 +959,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -974,7 +974,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task RenderAsync_DoesNotCopyContentOnceRazorTextWriterIsNoLongerBuffering()
|
public async Task RenderAsync_DoesNotCopyContentOnceRazorTextWriterIsNoLongerBuffering()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new CommonTestEncoder();
|
var htmlEncoder = new HtmlTestEncoder();
|
||||||
var expected = "HtmlEncode[[layout-1" +
|
var expected = "HtmlEncode[[layout-1" +
|
||||||
Environment.NewLine +
|
Environment.NewLine +
|
||||||
"]]body content" +
|
"]]body content" +
|
||||||
|
|
@ -1012,7 +1012,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -1027,7 +1027,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public async Task FlushAsync_DoesNotThrowWhenInvokedInsideOfASection()
|
public async Task FlushAsync_DoesNotThrowWhenInvokedInsideOfASection()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlEncoder = new CommonTestEncoder();
|
var htmlEncoder = new HtmlTestEncoder();
|
||||||
var expected = "HtmlEncode[[layout-1" +
|
var expected = "HtmlEncode[[layout-1" +
|
||||||
Environment.NewLine +
|
Environment.NewLine +
|
||||||
"]]section-content-1" +
|
"]]section-content-1" +
|
||||||
|
|
@ -1062,7 +1062,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -1092,7 +1092,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -1110,7 +1110,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 CommonTestEncoder();
|
v.HtmlEncoder = new HtmlTestEncoder();
|
||||||
v.DefineSection("foo", async writer =>
|
v.DefineSection("foo", async writer =>
|
||||||
{
|
{
|
||||||
writer.WriteLine("foo-content");
|
writer.WriteLine("foo-content");
|
||||||
|
|
@ -1121,7 +1121,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
});
|
});
|
||||||
var layoutPage = new TestableRazorPage(v =>
|
var layoutPage = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new CommonTestEncoder();
|
v.HtmlEncoder = new HtmlTestEncoder();
|
||||||
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"));
|
||||||
|
|
@ -1137,7 +1137,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -1184,7 +1184,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
|
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new CommonTestEncoder();
|
v.HtmlEncoder = new HtmlTestEncoder();
|
||||||
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);
|
||||||
|
|
@ -1193,7 +1193,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
|
|
||||||
var layout = new TestableRazorPage(v =>
|
var layout = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new CommonTestEncoder();
|
v.HtmlEncoder = new HtmlTestEncoder();
|
||||||
Assert.Same(layoutWriter, v.Output);
|
Assert.Same(layoutWriter, v.Output);
|
||||||
Assert.Same(layoutContext, v.PageExecutionContext);
|
Assert.Same(layoutContext, v.PageExecutionContext);
|
||||||
v.RenderBodyPublic();
|
v.RenderBodyPublic();
|
||||||
|
|
@ -1213,7 +1213,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
viewStartProvider.Object,
|
viewStartProvider.Object,
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
viewContext.HttpContext.Features.Set<IPageExecutionListenerFeature>(feature.Object);
|
viewContext.HttpContext.Features.Set<IPageExecutionListenerFeature>(feature.Object);
|
||||||
|
|
@ -1246,7 +1246,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
|
|
||||||
var page = new TestableRazorPage(v =>
|
var page = new TestableRazorPage(v =>
|
||||||
{
|
{
|
||||||
v.HtmlEncoder = new CommonTestEncoder();
|
v.HtmlEncoder = new HtmlTestEncoder();
|
||||||
Assert.IsType<RazorTextWriter>(v.Output);
|
Assert.IsType<RazorTextWriter>(v.Output);
|
||||||
Assert.Same(pageContext, v.PageExecutionContext);
|
Assert.Same(pageContext, v.PageExecutionContext);
|
||||||
executed = true;
|
executed = true;
|
||||||
|
|
@ -1259,7 +1259,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
Mock.Of<IViewStartProvider>(),
|
Mock.Of<IViewStartProvider>(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: true);
|
isPartial: true);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
viewContext.Writer = writer;
|
viewContext.Writer = writer;
|
||||||
|
|
@ -1291,7 +1291,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
Mock.Of<IViewStartProvider>(),
|
Mock.Of<IViewStartProvider>(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial);
|
isPartial);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -1331,7 +1331,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(viewStart1, viewStart2),
|
CreateViewStartProvider(viewStart1, viewStart2),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -1369,7 +1369,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(viewStart1, viewStart2),
|
CreateViewStartProvider(viewStart1, viewStart2),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -1411,7 +1411,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(viewStart),
|
CreateViewStartProvider(viewStart),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: false);
|
isPartial: false);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -1437,7 +1437,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
Mock.Of<IRazorPageActivator>(),
|
Mock.Of<IRazorPageActivator>(),
|
||||||
CreateViewStartProvider(),
|
CreateViewStartProvider(),
|
||||||
page,
|
page,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
isPartial: true);
|
isPartial: true);
|
||||||
var viewContext = CreateViewContext(view);
|
var viewContext = CreateViewContext(view);
|
||||||
|
|
||||||
|
|
@ -1488,7 +1488,7 @@ namespace Microsoft.AspNet.Mvc.Razor
|
||||||
public TestableRazorPage(Action<TestableRazorPage> executeAction)
|
public TestableRazorPage(Action<TestableRazorPage> executeAction)
|
||||||
{
|
{
|
||||||
_executeAction = executeAction;
|
_executeAction = executeAction;
|
||||||
HtmlEncoder = new CommonTestEncoder();
|
HtmlEncoder = new HtmlTestEncoder();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RenderBodyPublic()
|
public void RenderBodyPublic()
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ using System.Reflection;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Razor.TagHelpers;
|
using Microsoft.AspNet.Razor.TagHelpers;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
using Microsoft.Extensions.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -58,7 +58,7 @@ namespace Microsoft.AspNet.Mvc.Razor.TagHelpers
|
||||||
urlHelperMock
|
urlHelperMock
|
||||||
.Setup(urlHelper => urlHelper.Content(It.IsAny<string>()))
|
.Setup(urlHelper => urlHelper.Content(It.IsAny<string>()))
|
||||||
.Returns(new Func<string, string>(value => "/approot" + value.Substring(1)));
|
.Returns(new Func<string, string>(value => "/approot" + value.Substring(1)));
|
||||||
var tagHelper = new UrlResolutionTagHelper(urlHelperMock.Object, new TestHtmlEncoder());
|
var tagHelper = new UrlResolutionTagHelper(urlHelperMock.Object, new HtmlTestEncoder());
|
||||||
|
|
||||||
var context = new TagHelperContext(
|
var context = new TagHelperContext(
|
||||||
allAttributes: new ReadOnlyTagHelperAttributeList<IReadOnlyTagHelperAttribute>(
|
allAttributes: new ReadOnlyTagHelperAttributeList<IReadOnlyTagHelperAttribute>(
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var expectedPostContent = "Something" +
|
var expectedPostContent = "Something" +
|
||||||
HtmlContentUtilities.HtmlContentToString(
|
HtmlContentUtilities.HtmlContentToString(
|
||||||
htmlGenerator.GenerateAntiforgery(viewContext),
|
htmlGenerator.GenerateAntiforgery(viewContext),
|
||||||
new NullTestEncoder());
|
new HtmlTestEncoder());
|
||||||
var formTagHelper = new FormTagHelper(htmlGenerator)
|
var formTagHelper = new FormTagHelper(htmlGenerator)
|
||||||
{
|
{
|
||||||
Action = "index",
|
Action = "index",
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var helper = new ImageTagHelper(
|
var helper = new ImageTagHelper(
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
urlHelper.Object)
|
urlHelper.Object)
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -118,7 +118,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var hostingEnvironment = MakeHostingEnvironment();
|
var hostingEnvironment = MakeHostingEnvironment();
|
||||||
var viewContext = MakeViewContext();
|
var viewContext = MakeViewContext();
|
||||||
|
|
||||||
var helper = new ImageTagHelper(hostingEnvironment, MakeCache(), new CommonTestEncoder(), MakeUrlHelper())
|
var helper = new ImageTagHelper(hostingEnvironment, MakeCache(), new HtmlTestEncoder(), MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
Src = "testimage.png",
|
Src = "testimage.png",
|
||||||
|
|
@ -159,7 +159,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var hostingEnvironment = MakeHostingEnvironment();
|
var hostingEnvironment = MakeHostingEnvironment();
|
||||||
var viewContext = MakeViewContext();
|
var viewContext = MakeViewContext();
|
||||||
|
|
||||||
var helper = new ImageTagHelper(hostingEnvironment, MakeCache(), new CommonTestEncoder(), MakeUrlHelper())
|
var helper = new ImageTagHelper(hostingEnvironment, MakeCache(), new HtmlTestEncoder(), MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
Src = "/images/test-image.png",
|
Src = "/images/test-image.png",
|
||||||
|
|
@ -195,7 +195,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var hostingEnvironment = MakeHostingEnvironment();
|
var hostingEnvironment = MakeHostingEnvironment();
|
||||||
var viewContext = MakeViewContext();
|
var viewContext = MakeViewContext();
|
||||||
|
|
||||||
var helper = new ImageTagHelper(hostingEnvironment, MakeCache(), new CommonTestEncoder(), MakeUrlHelper())
|
var helper = new ImageTagHelper(hostingEnvironment, MakeCache(), new HtmlTestEncoder(), MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
Src = "/images/test-image.png",
|
Src = "/images/test-image.png",
|
||||||
|
|
@ -231,7 +231,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
var hostingEnvironment = MakeHostingEnvironment();
|
var hostingEnvironment = MakeHostingEnvironment();
|
||||||
var viewContext = MakeViewContext("/bar");
|
var viewContext = MakeViewContext("/bar");
|
||||||
|
|
||||||
var helper = new ImageTagHelper(hostingEnvironment, MakeCache(), new CommonTestEncoder(), MakeUrlHelper())
|
var helper = new ImageTagHelper(hostingEnvironment, MakeCache(), new HtmlTestEncoder(), MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
Src = "/bar/images/image.jpg",
|
Src = "/bar/images/image.jpg",
|
||||||
|
|
|
||||||
|
|
@ -69,8 +69,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
urlHelper.Object)
|
urlHelper.Object)
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -168,8 +168,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -288,8 +288,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -384,8 +384,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -431,8 +431,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -541,8 +541,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -573,8 +573,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -616,8 +616,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
||||||
|
|
@ -661,8 +661,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
||||||
|
|
@ -704,8 +704,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -744,8 +744,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -788,8 +788,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
||||||
|
|
|
||||||
|
|
@ -69,8 +69,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
urlHelper.Object)
|
urlHelper.Object)
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -117,8 +117,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
CreateLogger(),
|
CreateLogger(),
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -279,8 +279,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
CreateLogger(),
|
CreateLogger(),
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -376,8 +376,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
CreateLogger(),
|
CreateLogger(),
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -472,8 +472,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
CreateLogger(),
|
CreateLogger(),
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -507,8 +507,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger,
|
logger,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -551,8 +551,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
CreateLogger(),
|
CreateLogger(),
|
||||||
MakeHostingEnvironment(),
|
MakeHostingEnvironment(),
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -581,8 +581,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger,
|
logger,
|
||||||
MakeHostingEnvironment(),
|
MakeHostingEnvironment(),
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -633,8 +633,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger,
|
logger,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -675,8 +675,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
||||||
|
|
@ -716,8 +716,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
hostingEnvironment,
|
hostingEnvironment,
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
||||||
|
|
@ -755,8 +755,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
MakeHostingEnvironment(),
|
MakeHostingEnvironment(),
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -792,8 +792,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
MakeHostingEnvironment(),
|
MakeHostingEnvironment(),
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -831,8 +831,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
MakeHostingEnvironment(),
|
MakeHostingEnvironment(),
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
ViewContext = viewContext,
|
ViewContext = viewContext,
|
||||||
|
|
@ -849,7 +849,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
Assert.Equal("script", output.TagName);
|
Assert.Equal("script", output.TagName);
|
||||||
Assert.Equal("/js/site.js?v=f4OxZX_x_FO5LcGBSKHWXfwtSx-j1ncoSt3SABJtkGk", output.Attributes["src"].Value);
|
Assert.Equal("/js/site.js?v=f4OxZX_x_FO5LcGBSKHWXfwtSx-j1ncoSt3SABJtkGk", output.Attributes["src"].Value);
|
||||||
Assert.Equal(Environment.NewLine + "<script>(isavailable()||document.write(\"<script " +
|
Assert.Equal(Environment.NewLine + "<script>(isavailable()||document.write(\"<script " +
|
||||||
"src=\\\"JavaScriptStringEncode[[fallback.js?v=f4OxZX_x_FO5LcGBSKHWXfwtSx-j1ncoSt3SABJtkGk]]\\\">" +
|
"src=\\\"JavaScriptEncode[[fallback.js?v=f4OxZX_x_FO5LcGBSKHWXfwtSx-j1ncoSt3SABJtkGk]]\\\">" +
|
||||||
"<\\/script>\"));</script>", output.PostElement.GetContent());
|
"<\\/script>\"));</script>", output.PostElement.GetContent());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -876,8 +876,8 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
logger.Object,
|
logger.Object,
|
||||||
MakeHostingEnvironment(),
|
MakeHostingEnvironment(),
|
||||||
MakeCache(),
|
MakeCache(),
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new CommonTestEncoder(),
|
new JavaScriptTestEncoder(),
|
||||||
MakeUrlHelper())
|
MakeUrlHelper())
|
||||||
{
|
{
|
||||||
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
GlobbingUrlBuilder = globbingUrlBuilder.Object,
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ namespace Microsoft.AspNet.Mvc.TagHelpers
|
||||||
IOptions<MvcViewOptions> options,
|
IOptions<MvcViewOptions> options,
|
||||||
IUrlHelper urlHelper,
|
IUrlHelper urlHelper,
|
||||||
IDictionary<string, object> validationAttributes)
|
IDictionary<string, object> validationAttributes)
|
||||||
: base(Mock.Of<IAntiforgery>(), options, metadataProvider, urlHelper, new CommonTestEncoder())
|
: base(Mock.Of<IAntiforgery>(), options, metadataProvider, urlHelper, new HtmlTestEncoder())
|
||||||
{
|
{
|
||||||
_validationAttributes = validationAttributes;
|
_validationAttributes = validationAttributes;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,19 +2,19 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Html.Abstractions;
|
using Microsoft.AspNet.Html.Abstractions;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
using Microsoft.Extensions.WebEncoders.Testing;
|
using Microsoft.Extensions.WebEncoders.Testing;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc.TestCommon
|
namespace Microsoft.AspNet.Mvc.TestCommon
|
||||||
{
|
{
|
||||||
public class HtmlContentUtilities
|
public class HtmlContentUtilities
|
||||||
{
|
{
|
||||||
public static string HtmlContentToString(IHtmlContent content, IHtmlEncoder encoder = null)
|
public static string HtmlContentToString(IHtmlContent content, HtmlEncoder encoder = null)
|
||||||
{
|
{
|
||||||
if (encoder == null)
|
if (encoder == null)
|
||||||
{
|
{
|
||||||
encoder = new CommonTestEncoder();
|
encoder = new HtmlTestEncoder();
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var writer = new StringWriter())
|
using (var writer = new StringWriter())
|
||||||
|
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System.IO;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.WebEncoders
|
|
||||||
{
|
|
||||||
internal class TestHtmlEncoder : IHtmlEncoder
|
|
||||||
{
|
|
||||||
public string HtmlEncode(string value)
|
|
||||||
{
|
|
||||||
return $"HtmlEncode[[{ value }]]";
|
|
||||||
}
|
|
||||||
|
|
||||||
public void HtmlEncode(string value, int startIndex, int charCount, TextWriter output)
|
|
||||||
{
|
|
||||||
output.Write($"HtmlEncode[[{ value.Substring(startIndex, charCount) }]]");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void HtmlEncode(char[] value, int startIndex, int charCount, TextWriter output)
|
|
||||||
{
|
|
||||||
output.Write("HtmlEncode[[");
|
|
||||||
output.Write(value, startIndex, charCount);
|
|
||||||
output.Write("]]");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System.IO;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.WebEncoders
|
|
||||||
{
|
|
||||||
internal class TestJavaScriptEncoder : IJavaScriptStringEncoder
|
|
||||||
{
|
|
||||||
public string JavaScriptStringEncode(string value)
|
|
||||||
{
|
|
||||||
return $"JavaScriptEncode[[{ value }]]";
|
|
||||||
}
|
|
||||||
|
|
||||||
public void JavaScriptStringEncode(string value, int startIndex, int charCount, TextWriter output)
|
|
||||||
{
|
|
||||||
output.Write($"JavaScriptEncode[[{ value.Substring(startIndex, charCount) }]]");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void JavaScriptStringEncode(char[] value, int startIndex, int charCount, TextWriter output)
|
|
||||||
{
|
|
||||||
output.Write("JavaScriptEncode[[");
|
|
||||||
output.Write(value, startIndex, charCount);
|
|
||||||
output.Write("]]");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System.IO;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.WebEncoders
|
|
||||||
{
|
|
||||||
internal class TestUrlEncoder : IUrlEncoder
|
|
||||||
{
|
|
||||||
public string UrlEncode(string value)
|
|
||||||
{
|
|
||||||
return $"UrlEncode[[{ value }]]";
|
|
||||||
}
|
|
||||||
|
|
||||||
public void UrlEncode(string value, int startIndex, int charCount, TextWriter output)
|
|
||||||
{
|
|
||||||
output.Write($"UrlEncode[[{ value.Substring(startIndex, charCount) }]]");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void UrlEncode(char[] value, int startIndex, int charCount, TextWriter output)
|
|
||||||
{
|
|
||||||
output.Write("UrlEncode[[");
|
|
||||||
output.Write(value, startIndex, charCount);
|
|
||||||
output.Write("]]");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -7,6 +7,7 @@ using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Antiforgery;
|
using Microsoft.AspNet.Antiforgery;
|
||||||
using Microsoft.AspNet.Http.Internal;
|
using Microsoft.AspNet.Http.Internal;
|
||||||
|
|
@ -17,7 +18,6 @@ using Microsoft.AspNet.Mvc.ViewEngines;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures;
|
using Microsoft.AspNet.Mvc.ViewFeatures;
|
||||||
using Microsoft.AspNet.Routing;
|
using Microsoft.AspNet.Routing;
|
||||||
using Microsoft.Extensions.OptionsModel;
|
using Microsoft.Extensions.OptionsModel;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
using Microsoft.Extensions.WebEncoders.Testing;
|
using Microsoft.Extensions.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
|
|
||||||
|
|
@ -254,7 +254,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
optionsAccessor.Object,
|
optionsAccessor.Object,
|
||||||
provider,
|
provider,
|
||||||
urlHelper,
|
urlHelper,
|
||||||
new CommonTestEncoder());
|
new HtmlTestEncoder());
|
||||||
}
|
}
|
||||||
|
|
||||||
// TemplateRenderer will Contextualize this transient service.
|
// TemplateRenderer will Contextualize this transient service.
|
||||||
|
|
@ -262,9 +262,9 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
htmlGenerator,
|
htmlGenerator,
|
||||||
viewEngine,
|
viewEngine,
|
||||||
provider,
|
provider,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new UrlEncoder(),
|
UrlEncoder.Default,
|
||||||
new JavaScriptStringEncoder());
|
JavaScriptEncoder.Default);
|
||||||
|
|
||||||
if (innerHelperWrapper != null)
|
if (innerHelperWrapper != null)
|
||||||
{
|
{
|
||||||
|
|
@ -278,9 +278,9 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
htmlGenerator,
|
htmlGenerator,
|
||||||
viewEngine,
|
viewEngine,
|
||||||
provider,
|
provider,
|
||||||
new CommonTestEncoder(),
|
new HtmlTestEncoder(),
|
||||||
new UrlEncoder(),
|
UrlEncoder.Default,
|
||||||
new JavaScriptStringEncoder());
|
JavaScriptEncoder.Default);
|
||||||
|
|
||||||
var viewContext = new ViewContext(
|
var viewContext = new ViewContext(
|
||||||
actionContext,
|
actionContext,
|
||||||
|
|
|
||||||
|
|
@ -149,7 +149,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
Assert.Equal(expected, HtmlContentUtilities.HtmlContentToString(html));
|
Assert.Equal(expected, HtmlContentUtilities.HtmlContentToString(html));
|
||||||
var writer = new StringWriter();
|
var writer = new StringWriter();
|
||||||
var hiddenTag = Assert.Single(helper.ViewContext.FormContext.EndOfFormContent);
|
var hiddenTag = Assert.Single(helper.ViewContext.FormContext.EndOfFormContent);
|
||||||
hiddenTag.WriteTo(writer, new CommonTestEncoder());
|
hiddenTag.WriteTo(writer, new HtmlTestEncoder());
|
||||||
Assert.Equal("<input name=\"HtmlEncode[[Property1]]\" type=\"HtmlEncode[[hidden]]\" value=\"HtmlEncode[[false]]\" />",
|
Assert.Equal("<input name=\"HtmlEncode[[Property1]]\" type=\"HtmlEncode[[hidden]]\" value=\"HtmlEncode[[false]]\" />",
|
||||||
writer.ToString());
|
writer.ToString());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,10 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Http;
|
using Microsoft.AspNet.Http;
|
||||||
using Microsoft.AspNet.Mvc.Routing;
|
using Microsoft.AspNet.Mvc.Routing;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures;
|
using Microsoft.AspNet.Mvc.ViewFeatures;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
using Microsoft.Extensions.WebEncoders.Testing;
|
using Microsoft.Extensions.WebEncoders.Testing;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
@ -327,7 +327,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
// Arrange
|
// Arrange
|
||||||
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper();
|
var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper();
|
||||||
var serviceProvider = new Mock<IServiceProvider>();
|
var serviceProvider = new Mock<IServiceProvider>();
|
||||||
serviceProvider.Setup(s => s.GetService(typeof(IHtmlEncoder))).Returns(new CommonTestEncoder());
|
serviceProvider.Setup(s => s.GetService(typeof(HtmlEncoder))).Returns(new HtmlTestEncoder());
|
||||||
var viewContext = htmlHelper.ViewContext;
|
var viewContext = htmlHelper.ViewContext;
|
||||||
viewContext.HttpContext.RequestServices = serviceProvider.Object;
|
viewContext.HttpContext.RequestServices = serviceProvider.Object;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,12 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Mvc.ModelBinding;
|
using Microsoft.AspNet.Mvc.ModelBinding;
|
||||||
using Microsoft.AspNet.Mvc.TestCommon;
|
using Microsoft.AspNet.Mvc.TestCommon;
|
||||||
using Microsoft.AspNet.Mvc.ViewEngines;
|
using Microsoft.AspNet.Mvc.ViewEngines;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures;
|
using Microsoft.AspNet.Mvc.ViewFeatures;
|
||||||
using Microsoft.AspNet.Testing;
|
using Microsoft.AspNet.Testing;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -1568,9 +1568,9 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
new Mock<IHtmlGenerator>(MockBehavior.Strict).Object,
|
new Mock<IHtmlGenerator>(MockBehavior.Strict).Object,
|
||||||
new Mock<ICompositeViewEngine>(MockBehavior.Strict).Object,
|
new Mock<ICompositeViewEngine>(MockBehavior.Strict).Object,
|
||||||
metadataProvider,
|
metadataProvider,
|
||||||
new Mock<IHtmlEncoder>(MockBehavior.Strict).Object,
|
new Mock<HtmlEncoder>(MockBehavior.Strict).Object,
|
||||||
new Mock<IUrlEncoder>(MockBehavior.Strict).Object,
|
new Mock<UrlEncoder>(MockBehavior.Strict).Object,
|
||||||
new Mock<IJavaScriptStringEncoder>(MockBehavior.Strict).Object)
|
new Mock<JavaScriptEncoder>(MockBehavior.Strict).Object)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
||||||
var writer = new StringWriter();
|
var writer = new StringWriter();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
content.WriteTo(writer, new CommonTestEncoder());
|
content.WriteTo(writer, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal(expectedText, writer.ToString());
|
Assert.Equal(expectedText, writer.ToString());
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Microsoft.AspNet.Html.Abstractions;
|
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.Extensions.WebEncoders.Testing;
|
using Microsoft.Extensions.WebEncoders.Testing;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
@ -85,7 +84,7 @@ namespace Microsoft.AspNet.Mvc.Core.Rendering
|
||||||
// Act
|
// Act
|
||||||
using (var writer = new StringWriter())
|
using (var writer = new StringWriter())
|
||||||
{
|
{
|
||||||
tagBuilder.WriteTo(writer, new NullTestEncoder());
|
tagBuilder.WriteTo(writer, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal(expectedOutput, writer.ToString());
|
Assert.Equal(expectedOutput, writer.ToString());
|
||||||
|
|
@ -116,7 +115,7 @@ namespace Microsoft.AspNet.Mvc.Core.Rendering
|
||||||
// Act
|
// Act
|
||||||
using (var writer = new StringWriter())
|
using (var writer = new StringWriter())
|
||||||
{
|
{
|
||||||
tagBuilder.WriteTo(writer, new CommonTestEncoder());
|
tagBuilder.WriteTo(writer, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal("<p><span>Hello</span>HtmlEncode[[, World!]]</p>", writer.ToString());
|
Assert.Equal("<p><span>Hello</span>HtmlEncode[[, World!]]</p>", writer.ToString());
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Mvc.ViewComponents;
|
using Microsoft.AspNet.Mvc.ViewComponents;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures;
|
using Microsoft.AspNet.Mvc.ViewFeatures;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Mvc
|
namespace Microsoft.AspNet.Mvc
|
||||||
|
|
@ -49,7 +49,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
// Arrange
|
// Arrange
|
||||||
var viewComponent = new TestViewComponent();
|
var viewComponent = new TestViewComponent();
|
||||||
var expectedContent = "TestContent&";
|
var expectedContent = "TestContent&";
|
||||||
var expectedEncodedContent = new HtmlString(new HtmlEncoder().HtmlEncode(expectedContent));
|
var expectedEncodedContent = new HtmlString(HtmlEncoder.Default.Encode(expectedContent));
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var actualResult = viewComponent.Content(expectedContent);
|
var actualResult = viewComponent.Content(expectedContent);
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ using System.ComponentModel.DataAnnotations;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Html.Abstractions;
|
using Microsoft.AspNet.Html.Abstractions;
|
||||||
using Microsoft.AspNet.Http;
|
using Microsoft.AspNet.Http;
|
||||||
|
|
@ -18,7 +19,6 @@ using Microsoft.AspNet.Mvc.TestCommon;
|
||||||
using Microsoft.AspNet.Mvc.ViewEngines;
|
using Microsoft.AspNet.Mvc.ViewEngines;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures.Internal;
|
using Microsoft.AspNet.Mvc.ViewFeatures.Internal;
|
||||||
using Microsoft.AspNet.Testing;
|
using Microsoft.AspNet.Testing;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -919,14 +919,14 @@ Environment.NewLine;
|
||||||
get { return _innerHelper.TempData; }
|
get { return _innerHelper.TempData; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public IUrlEncoder UrlEncoder
|
public UrlEncoder UrlEncoder
|
||||||
{
|
{
|
||||||
get { return _innerHelper.UrlEncoder; }
|
get { return _innerHelper.UrlEncoder; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public IJavaScriptStringEncoder JavaScriptStringEncoder
|
public JavaScriptEncoder JavaScriptEncoder
|
||||||
{
|
{
|
||||||
get { return _innerHelper.JavaScriptStringEncoder; }
|
get { return _innerHelper.JavaScriptEncoder; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Contextualize(ViewContext viewContext)
|
public void Contextualize(ViewContext viewContext)
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Antiforgery;
|
using Microsoft.AspNet.Antiforgery;
|
||||||
using Microsoft.AspNet.Http.Internal;
|
using Microsoft.AspNet.Http.Internal;
|
||||||
using Microsoft.AspNet.Mvc.Abstractions;
|
using Microsoft.AspNet.Mvc.Abstractions;
|
||||||
|
|
@ -14,7 +15,6 @@ using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Mvc.ViewEngines;
|
using Microsoft.AspNet.Mvc.ViewEngines;
|
||||||
using Microsoft.AspNet.Routing;
|
using Microsoft.AspNet.Routing;
|
||||||
using Microsoft.Extensions.OptionsModel;
|
using Microsoft.Extensions.OptionsModel;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
using Moq;
|
using Moq;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
|
@ -645,7 +645,7 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
{
|
{
|
||||||
var mvcViewOptionsAccessor = new Mock<IOptions<MvcViewOptions>>();
|
var mvcViewOptionsAccessor = new Mock<IOptions<MvcViewOptions>>();
|
||||||
mvcViewOptionsAccessor.SetupGet(accessor => accessor.Value).Returns(new MvcViewOptions());
|
mvcViewOptionsAccessor.SetupGet(accessor => accessor.Value).Returns(new MvcViewOptions());
|
||||||
var htmlEncoder = Mock.Of<IHtmlEncoder>();
|
var htmlEncoder = Mock.Of<HtmlEncoder>();
|
||||||
var antiforgery = Mock.Of<IAntiforgery>();
|
var antiforgery = Mock.Of<IAntiforgery>();
|
||||||
|
|
||||||
var optionsAccessor = new Mock<IOptions<MvcOptions>>();
|
var optionsAccessor = new Mock<IOptions<MvcOptions>>();
|
||||||
|
|
|
||||||
|
|
@ -175,7 +175,7 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
// Act
|
// Act
|
||||||
source.Write("Hello world");
|
source.Write("Hello world");
|
||||||
source.Write(new char[1], 0, 1);
|
source.Write(new char[1], 0, 1);
|
||||||
source.CopyTo(target, new CommonTestEncoder());
|
source.CopyTo(target, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
// Make sure content was written to the source.
|
// Make sure content was written to the source.
|
||||||
|
|
@ -197,7 +197,7 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
// Act
|
// Act
|
||||||
source.WriteLine("Hello world");
|
source.WriteLine("Hello world");
|
||||||
source.Write(new[] { 'x', 'a', 'b', 'c' }, 1, 3);
|
source.Write(new[] { 'x', 'a', 'b', 'c' }, 1, 3);
|
||||||
source.CopyTo(target, new CommonTestEncoder());
|
source.CopyTo(target, new HtmlTestEncoder());
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal(expected, target.ToString());
|
Assert.Equal(expected, target.ToString());
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ namespace Microsoft.AspNet.Mvc.ViewFeatures
|
||||||
// Assert
|
// Assert
|
||||||
using (var writer = new StringWriter())
|
using (var writer = new StringWriter())
|
||||||
{
|
{
|
||||||
content.WriteTo(writer, new CommonTestEncoder());
|
content.WriteTo(writer, new HtmlTestEncoder());
|
||||||
Assert.Equal("HtmlEncode[[Hello World]]", writer.ToString());
|
Assert.Equal("HtmlEncode[[Hello World]]", writer.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Mvc.Rendering;
|
using Microsoft.AspNet.Mvc.Rendering;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures;
|
using Microsoft.AspNet.Mvc.ViewFeatures;
|
||||||
using Microsoft.AspNet.Mvc.ViewFeatures.Internal;
|
using Microsoft.AspNet.Mvc.ViewFeatures.Internal;
|
||||||
using Microsoft.AspNet.Razor.TagHelpers;
|
using Microsoft.AspNet.Razor.TagHelpers;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
|
|
||||||
namespace ActivatorWebSite.TagHelpers
|
namespace ActivatorWebSite.TagHelpers
|
||||||
{
|
{
|
||||||
[HtmlTargetElement("span")]
|
[HtmlTargetElement("span")]
|
||||||
public class HiddenTagHelper : TagHelper
|
public class HiddenTagHelper : TagHelper
|
||||||
{
|
{
|
||||||
public HiddenTagHelper(IHtmlHelper htmlHelper, IHtmlEncoder htmlEncoder)
|
public HiddenTagHelper(IHtmlHelper htmlHelper, HtmlEncoder htmlEncoder)
|
||||||
{
|
{
|
||||||
HtmlHelper = htmlHelper;
|
HtmlHelper = htmlHelper;
|
||||||
HtmlEncoder = htmlEncoder;
|
HtmlEncoder = htmlEncoder;
|
||||||
|
|
@ -21,7 +21,7 @@ namespace ActivatorWebSite.TagHelpers
|
||||||
|
|
||||||
public IHtmlHelper HtmlHelper { get; }
|
public IHtmlHelper HtmlHelper { get; }
|
||||||
|
|
||||||
public IHtmlEncoder HtmlEncoder { get; }
|
public HtmlEncoder HtmlEncoder { get; }
|
||||||
|
|
||||||
[HtmlAttributeNotBound]
|
[HtmlAttributeNotBound]
|
||||||
[ViewContext]
|
[ViewContext]
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
using Microsoft.AspNet.Authentication;
|
using Microsoft.AspNet.Authentication;
|
||||||
using Microsoft.AspNet.Builder;
|
using Microsoft.AspNet.Builder;
|
||||||
using Microsoft.Extensions.WebEncoders;
|
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace FiltersWebSite
|
namespace FiltersWebSite
|
||||||
|
|
@ -13,7 +13,7 @@ namespace FiltersWebSite
|
||||||
public AuthorizeBasicMiddleware(
|
public AuthorizeBasicMiddleware(
|
||||||
RequestDelegate next,
|
RequestDelegate next,
|
||||||
ILoggerFactory loggerFactory,
|
ILoggerFactory loggerFactory,
|
||||||
IUrlEncoder encoder,
|
UrlEncoder encoder,
|
||||||
string authScheme) :
|
string authScheme) :
|
||||||
base(next,
|
base(next,
|
||||||
new BasicOptions { AuthenticationScheme = authScheme },
|
new BasicOptions { AuthenticationScheme = authScheme },
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue