* Remove EncoderServiceProviderExtensions
This commit is contained in:
parent
b4239550f3
commit
46f64dfa20
|
|
@ -11,6 +11,12 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
{
|
||||
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)
|
||||
{
|
||||
if (services == null)
|
||||
|
|
@ -21,6 +27,13 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
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)
|
||||
{
|
||||
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
|
||||
var serviceProvider = serviceCollection.BuildServiceProvider();
|
||||
|
||||
var htmlEncoder = serviceProvider.GetHtmlEncoder();
|
||||
var htmlEncoder = serviceProvider.GetRequiredService<HtmlEncoder>();
|
||||
Assert.Equal("HtmlEncode[[abcde]]", htmlEncoder.Encode("abcde"));
|
||||
|
||||
var javaScriptEncoder = serviceProvider.GetJavaScriptEncoder();
|
||||
var javaScriptEncoder = serviceProvider.GetRequiredService<JavaScriptEncoder>();
|
||||
Assert.Equal("JavaScriptEncode[[abcde]]", javaScriptEncoder.Encode("abcde"));
|
||||
|
||||
var urlEncoder = serviceProvider.GetUrlEncoder();
|
||||
var urlEncoder = serviceProvider.GetRequiredService<UrlEncoder>();
|
||||
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": {
|
||||
"Microsoft.Extensions.DependencyInjection": "1.0.0-*",
|
||||
"Microsoft.Extensions.WebEncoders": "1.0.0-*",
|
||||
"Newtonsoft.Json": "6.0.6",
|
||||
"xunit.runner.aspnet": "2.0.0-aspnet-*"
|
||||
},
|
||||
"commands": {
|
||||
|
|
@ -15,10 +14,6 @@
|
|||
},
|
||||
"frameworks": {
|
||||
"dnx451": { },
|
||||
"dnxcore50": {
|
||||
"dependencies": {
|
||||
"System.Text.Encoding.Extensions": "4.0.11-*"
|
||||
}
|
||||
}
|
||||
"dnxcore50": { }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue