* Remove EncoderServiceProviderExtensions
This commit is contained in:
parent
b4239550f3
commit
46f64dfa20
|
|
@ -11,6 +11,12 @@ namespace Microsoft.Extensions.DependencyInjection
|
||||||
{
|
{
|
||||||
public static class EncoderServiceCollectionExtensions
|
public static class EncoderServiceCollectionExtensions
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Adds <see cref="HtmlEncoder"/>, <see cref="JavaScriptEncoder"/> and <see cref="UrlEncoder"/>
|
||||||
|
/// to the specified <paramref name="services" />.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="services">The <see cref="IServiceCollection"/>.</param>
|
||||||
|
/// <returns>The <see cref="IServiceCollection"/> instance after the encoders have been added.</returns>
|
||||||
public static IServiceCollection AddWebEncoders(this IServiceCollection services)
|
public static IServiceCollection AddWebEncoders(this IServiceCollection services)
|
||||||
{
|
{
|
||||||
if (services == null)
|
if (services == null)
|
||||||
|
|
@ -21,6 +27,13 @@ namespace Microsoft.Extensions.DependencyInjection
|
||||||
return AddWebEncoders(services, configureOptions: null);
|
return AddWebEncoders(services, configureOptions: null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds <see cref="HtmlEncoder"/>, <see cref="JavaScriptEncoder"/> and <see cref="UrlEncoder"/>
|
||||||
|
/// to the specified <paramref name="services" />.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="services">The <see cref="IServiceCollection"/>.</param>
|
||||||
|
/// <param name="configureOptions">A callback to configure <see cref="WebEncoderOptions"/>.</param>
|
||||||
|
/// <returns>The <see cref="IServiceCollection"/> instance after the encoders have been added.</returns>
|
||||||
public static IServiceCollection AddWebEncoders(this IServiceCollection services, Action<WebEncoderOptions> configureOptions)
|
public static IServiceCollection AddWebEncoders(this IServiceCollection services, Action<WebEncoderOptions> configureOptions)
|
||||||
{
|
{
|
||||||
if (services == null)
|
if (services == null)
|
||||||
|
|
|
||||||
|
|
@ -1,50 +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;
|
|
||||||
using System.Text.Encodings.Web;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.WebEncoders
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Contains extension methods for fetching encoders from an <see cref="IServiceProvider"/>.
|
|
||||||
/// </summary>
|
|
||||||
public static class EncoderServiceProviderExtensions
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Retrieves an <see cref="HtmlEncoder"/> from an <see cref="IServiceProvider"/>.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// This method is guaranteed never to return null.
|
|
||||||
/// It will return a default encoder instance if <paramref name="serviceProvider"/> does not contain one or is null.
|
|
||||||
/// </remarks>
|
|
||||||
public static HtmlEncoder GetHtmlEncoder(this IServiceProvider serviceProvider)
|
|
||||||
{
|
|
||||||
return (HtmlEncoder)serviceProvider?.GetService(typeof(HtmlEncoder)) ?? HtmlEncoder.Default;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Retrieves an <see cref="JavaScriptEncoder"/> from an <see cref="IServiceProvider"/>.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// This method is guaranteed never to return null.
|
|
||||||
/// It will return a default encoder instance if <paramref name="serviceProvider"/> does not contain one or is null.
|
|
||||||
/// </remarks>
|
|
||||||
public static JavaScriptEncoder GetJavaScriptEncoder(this IServiceProvider serviceProvider)
|
|
||||||
{
|
|
||||||
return (JavaScriptEncoder)serviceProvider?.GetService(typeof(JavaScriptEncoder)) ?? JavaScriptEncoder.Default;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Retrieves an <see cref="UrlEncoder"/> from an <see cref="IServiceProvider"/>.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// This method is guaranteed never to return null.
|
|
||||||
/// It will return a default encoder instance if <paramref name="serviceProvider"/> does not contain one or is null.
|
|
||||||
/// </remarks>
|
|
||||||
public static UrlEncoder GetUrlEncoder(this IServiceProvider serviceProvider)
|
|
||||||
{
|
|
||||||
return (UrlEncoder)serviceProvider?.GetService(typeof(UrlEncoder)) ?? UrlEncoder.Default;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -77,13 +77,13 @@ namespace Microsoft.Extensions.WebEncoders
|
||||||
// Assert
|
// Assert
|
||||||
var serviceProvider = serviceCollection.BuildServiceProvider();
|
var serviceProvider = serviceCollection.BuildServiceProvider();
|
||||||
|
|
||||||
var htmlEncoder = serviceProvider.GetHtmlEncoder();
|
var htmlEncoder = serviceProvider.GetRequiredService<HtmlEncoder>();
|
||||||
Assert.Equal("HtmlEncode[[abcde]]", htmlEncoder.Encode("abcde"));
|
Assert.Equal("HtmlEncode[[abcde]]", htmlEncoder.Encode("abcde"));
|
||||||
|
|
||||||
var javaScriptEncoder = serviceProvider.GetJavaScriptEncoder();
|
var javaScriptEncoder = serviceProvider.GetRequiredService<JavaScriptEncoder>();
|
||||||
Assert.Equal("JavaScriptEncode[[abcde]]", javaScriptEncoder.Encode("abcde"));
|
Assert.Equal("JavaScriptEncode[[abcde]]", javaScriptEncoder.Encode("abcde"));
|
||||||
|
|
||||||
var urlEncoder = serviceProvider.GetUrlEncoder();
|
var urlEncoder = serviceProvider.GetRequiredService<UrlEncoder>();
|
||||||
Assert.Equal("a%62c%64e", urlEncoder.Encode("abcde"));
|
Assert.Equal("a%62c%64e", urlEncoder.Encode("abcde"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,103 +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;
|
|
||||||
using System.Text.Encodings.Web;
|
|
||||||
using Xunit;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.WebEncoders
|
|
||||||
{
|
|
||||||
public class EncoderServiceProviderExtensionsTests
|
|
||||||
{
|
|
||||||
[Fact]
|
|
||||||
public void GetHtmlEncoder_ServiceProviderDoesNotHaveEncoder_UsesDefault()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var serviceProvider = new TestServiceProvider();
|
|
||||||
|
|
||||||
// Act
|
|
||||||
var retVal = serviceProvider.GetHtmlEncoder();
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
Assert.Same(HtmlEncoder.Default, retVal);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void GetHtmlEncoder_ServiceProviderHasEncoder_ReturnsRegisteredInstance()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var expectedEncoder = HtmlEncoder.Default;
|
|
||||||
var serviceProvider = new TestServiceProvider() { Service = expectedEncoder };
|
|
||||||
|
|
||||||
// Act
|
|
||||||
var retVal = serviceProvider.GetHtmlEncoder();
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
Assert.Same(expectedEncoder, retVal);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void GetJavaScriptEncoder_ServiceProviderDoesNotHaveEncoder_UsesDefault()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var serviceProvider = new TestServiceProvider();
|
|
||||||
|
|
||||||
// Act
|
|
||||||
var retVal = serviceProvider.GetJavaScriptEncoder();
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
Assert.Same(JavaScriptEncoder.Default, retVal);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void GetJavaScriptEncoder_ServiceProviderHasEncoder_ReturnsRegisteredInstance()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var expectedEncoder = JavaScriptEncoder.Default;
|
|
||||||
var serviceProvider = new TestServiceProvider() { Service = expectedEncoder };
|
|
||||||
|
|
||||||
// Act
|
|
||||||
var retVal = serviceProvider.GetJavaScriptEncoder();
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
Assert.Same(expectedEncoder, retVal);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void GetUrlEncoder_ServiceProviderDoesNotHaveEncoder_UsesDefault()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var serviceProvider = new TestServiceProvider();
|
|
||||||
|
|
||||||
// Act
|
|
||||||
var retVal = serviceProvider.GetUrlEncoder();
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
Assert.Same(UrlEncoder.Default, retVal);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void GetUrlEncoder_ServiceProviderHasEncoder_ReturnsRegisteredInstance()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var expectedEncoder = UrlEncoder.Default;
|
|
||||||
var serviceProvider = new TestServiceProvider() { Service = expectedEncoder };
|
|
||||||
|
|
||||||
// Act
|
|
||||||
var retVal = serviceProvider.GetUrlEncoder();
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
Assert.Same(expectedEncoder, retVal);
|
|
||||||
}
|
|
||||||
|
|
||||||
private class TestServiceProvider : IServiceProvider
|
|
||||||
{
|
|
||||||
public object Service { get; set; }
|
|
||||||
|
|
||||||
public object GetService(Type serviceType)
|
|
||||||
{
|
|
||||||
return Service;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Microsoft.Extensions.DependencyInjection": "1.0.0-*",
|
"Microsoft.Extensions.DependencyInjection": "1.0.0-*",
|
||||||
"Microsoft.Extensions.WebEncoders": "1.0.0-*",
|
"Microsoft.Extensions.WebEncoders": "1.0.0-*",
|
||||||
"Newtonsoft.Json": "6.0.6",
|
|
||||||
"xunit.runner.aspnet": "2.0.0-aspnet-*"
|
"xunit.runner.aspnet": "2.0.0-aspnet-*"
|
||||||
},
|
},
|
||||||
"commands": {
|
"commands": {
|
||||||
|
|
@ -15,10 +14,6 @@
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
"dnx451": { },
|
"dnx451": { },
|
||||||
"dnxcore50": {
|
"dnxcore50": { }
|
||||||
"dependencies": {
|
|
||||||
"System.Text.Encoding.Extensions": "4.0.11-*"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue