From 161d6ca5c0a70abf50b6ebbc0bca7a04b1d56b6d Mon Sep 17 00:00:00 2001 From: Pranav K Date: Tue, 22 Dec 2015 15:25:45 -0800 Subject: [PATCH] Move Microsoft.Extensions.WebEncoders to HtmlAbstractions Fixes #512 --- HttpAbstractions.sln | 30 ----- NuGetPackageVerifier.json | 1 - .../EncoderServiceCollectionExtensions.cs | 63 ----------- .../EncoderServiceProviderExtensions.cs | 50 --------- .../Microsoft.Extensions.WebEncoders.xproj | 17 --- .../Properties/AssemblyInfo.cs | 8 -- .../Testing/HtmlTestEncoder.cs | 104 ------------------ .../Testing/JavaScriptTestEncoder.cs | 104 ------------------ .../Testing/UrlTestEncoder.cs | 104 ------------------ .../WebEncoderOptions.cs | 21 ---- .../project.json | 27 ----- .../project.json | 29 +++-- ...EncoderServiceCollectionExtensionsTests.cs | 90 --------------- .../EncoderServiceProviderExtensionsTests.cs | 103 ----------------- .../HtmlTestEncoderTest.cs | 26 ----- ...crosoft.Extensions.WebEncoders.Tests.xproj | 20 ---- .../project.json | 24 ---- 17 files changed, 17 insertions(+), 804 deletions(-) delete mode 100644 src/Microsoft.Extensions.WebEncoders/EncoderServiceCollectionExtensions.cs delete mode 100644 src/Microsoft.Extensions.WebEncoders/EncoderServiceProviderExtensions.cs delete mode 100644 src/Microsoft.Extensions.WebEncoders/Microsoft.Extensions.WebEncoders.xproj delete mode 100644 src/Microsoft.Extensions.WebEncoders/Properties/AssemblyInfo.cs delete mode 100644 src/Microsoft.Extensions.WebEncoders/Testing/HtmlTestEncoder.cs delete mode 100644 src/Microsoft.Extensions.WebEncoders/Testing/JavaScriptTestEncoder.cs delete mode 100644 src/Microsoft.Extensions.WebEncoders/Testing/UrlTestEncoder.cs delete mode 100644 src/Microsoft.Extensions.WebEncoders/WebEncoderOptions.cs delete mode 100644 src/Microsoft.Extensions.WebEncoders/project.json delete mode 100644 test/Microsoft.Extensions.WebEncoders.Tests/EncoderServiceCollectionExtensionsTests.cs delete mode 100644 test/Microsoft.Extensions.WebEncoders.Tests/EncoderServiceProviderExtensionsTests.cs delete mode 100644 test/Microsoft.Extensions.WebEncoders.Tests/HtmlTestEncoderTest.cs delete mode 100644 test/Microsoft.Extensions.WebEncoders.Tests/Microsoft.Extensions.WebEncoders.Tests.xproj delete mode 100644 test/Microsoft.Extensions.WebEncoders.Tests/project.json diff --git a/HttpAbstractions.sln b/HttpAbstractions.sln index 9e07d734d8..e510c8c96e 100644 --- a/HttpAbstractions.sln +++ b/HttpAbstractions.sln @@ -34,10 +34,6 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.Net.Http.Headers" EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.Net.Http.Headers.Tests", "test\Microsoft.Net.Http.Headers.Tests\Microsoft.Net.Http.Headers.Tests.xproj", "{E6BB7AD1-BD10-4A23-B780-F4A86ADF00D1}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.Extensions.WebEncoders", "src\Microsoft.Extensions.WebEncoders\Microsoft.Extensions.WebEncoders.xproj", "{DD2CE416-765E-4000-A03E-C2FF165DA1B6}" -EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.Extensions.WebEncoders.Tests", "test\Microsoft.Extensions.WebEncoders.Tests\Microsoft.Extensions.WebEncoders.Tests.xproj", "{7AE2731D-43CD-4CF8-850A-4914DE2CE930}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{982F09D8-621E-4872-BA7B-BBDEA47D1EFD}" EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "SampleApp", "samples\SampleApp\SampleApp.xproj", "{1D0764B4-1DEB-4232-A714-D4B7E846918A}" @@ -196,30 +192,6 @@ Global {E6BB7AD1-BD10-4A23-B780-F4A86ADF00D1}.Release|Mixed Platforms.Build.0 = Release|Any CPU {E6BB7AD1-BD10-4A23-B780-F4A86ADF00D1}.Release|x86.ActiveCfg = Release|Any CPU {E6BB7AD1-BD10-4A23-B780-F4A86ADF00D1}.Release|x86.Build.0 = Release|Any CPU - {DD2CE416-765E-4000-A03E-C2FF165DA1B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DD2CE416-765E-4000-A03E-C2FF165DA1B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DD2CE416-765E-4000-A03E-C2FF165DA1B6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {DD2CE416-765E-4000-A03E-C2FF165DA1B6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {DD2CE416-765E-4000-A03E-C2FF165DA1B6}.Debug|x86.ActiveCfg = Debug|Any CPU - {DD2CE416-765E-4000-A03E-C2FF165DA1B6}.Debug|x86.Build.0 = Debug|Any CPU - {DD2CE416-765E-4000-A03E-C2FF165DA1B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DD2CE416-765E-4000-A03E-C2FF165DA1B6}.Release|Any CPU.Build.0 = Release|Any CPU - {DD2CE416-765E-4000-A03E-C2FF165DA1B6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {DD2CE416-765E-4000-A03E-C2FF165DA1B6}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {DD2CE416-765E-4000-A03E-C2FF165DA1B6}.Release|x86.ActiveCfg = Release|Any CPU - {DD2CE416-765E-4000-A03E-C2FF165DA1B6}.Release|x86.Build.0 = Release|Any CPU - {7AE2731D-43CD-4CF8-850A-4914DE2CE930}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7AE2731D-43CD-4CF8-850A-4914DE2CE930}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7AE2731D-43CD-4CF8-850A-4914DE2CE930}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {7AE2731D-43CD-4CF8-850A-4914DE2CE930}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {7AE2731D-43CD-4CF8-850A-4914DE2CE930}.Debug|x86.ActiveCfg = Debug|Any CPU - {7AE2731D-43CD-4CF8-850A-4914DE2CE930}.Debug|x86.Build.0 = Debug|Any CPU - {7AE2731D-43CD-4CF8-850A-4914DE2CE930}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7AE2731D-43CD-4CF8-850A-4914DE2CE930}.Release|Any CPU.Build.0 = Release|Any CPU - {7AE2731D-43CD-4CF8-850A-4914DE2CE930}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {7AE2731D-43CD-4CF8-850A-4914DE2CE930}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {7AE2731D-43CD-4CF8-850A-4914DE2CE930}.Release|x86.ActiveCfg = Release|Any CPU - {7AE2731D-43CD-4CF8-850A-4914DE2CE930}.Release|x86.Build.0 = Release|Any CPU {1D0764B4-1DEB-4232-A714-D4B7E846918A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1D0764B4-1DEB-4232-A714-D4B7E846918A}.Debug|Any CPU.Build.0 = Debug|Any CPU {1D0764B4-1DEB-4232-A714-D4B7E846918A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -251,8 +223,6 @@ Global {93C10E50-BCBB-4D8E-9492-D46E1396225B} = {F31FF137-390C-49BF-A3BD-7C6ED3597C21} {60AA2FDB-8121-4826-8D00-9A143FEFAF66} = {A5A15F1C-885A-452A-A731-B0173DDBD913} {E6BB7AD1-BD10-4A23-B780-F4A86ADF00D1} = {F31FF137-390C-49BF-A3BD-7C6ED3597C21} - {DD2CE416-765E-4000-A03E-C2FF165DA1B6} = {A5A15F1C-885A-452A-A731-B0173DDBD913} - {7AE2731D-43CD-4CF8-850A-4914DE2CE930} = {F31FF137-390C-49BF-A3BD-7C6ED3597C21} {1D0764B4-1DEB-4232-A714-D4B7E846918A} = {982F09D8-621E-4872-BA7B-BBDEA47D1EFD} EndGlobalSection EndGlobal diff --git a/NuGetPackageVerifier.json b/NuGetPackageVerifier.json index 406f44c6a3..adea61d7de 100644 --- a/NuGetPackageVerifier.json +++ b/NuGetPackageVerifier.json @@ -15,7 +15,6 @@ "Microsoft.AspNet.Http.Features": { }, "Microsoft.AspNet.Owin": { }, "Microsoft.AspNet.WebUtilities": { }, - "Microsoft.Extensions.WebEncoders": { }, "Microsoft.Net.Http.Headers": { } } }, diff --git a/src/Microsoft.Extensions.WebEncoders/EncoderServiceCollectionExtensions.cs b/src/Microsoft.Extensions.WebEncoders/EncoderServiceCollectionExtensions.cs deleted file mode 100644 index 7ef6fe8fe9..0000000000 --- a/src/Microsoft.Extensions.WebEncoders/EncoderServiceCollectionExtensions.cs +++ /dev/null @@ -1,63 +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 Microsoft.Extensions.DependencyInjection.Extensions; -using Microsoft.Extensions.Options; -using Microsoft.Extensions.WebEncoders; - -namespace Microsoft.Extensions.DependencyInjection -{ - public static class EncoderServiceCollectionExtensions - { - public static IServiceCollection AddWebEncoders(this IServiceCollection services) - { - if (services == null) - { - throw new ArgumentNullException(nameof(services)); - } - - return AddWebEncoders(services, configureOptions: null); - } - - public static IServiceCollection AddWebEncoders(this IServiceCollection services, Action configureOptions) - { - if (services == null) - { - throw new ArgumentNullException(nameof(services)); - } - - services.AddOptions(); - - // Register the default encoders - // We want to call the 'Default' property getters lazily since they perform static caching - services.TryAdd(ServiceDescriptor.Singleton( - CreateFactory(() => HtmlEncoder.Default, settings => HtmlEncoder.Create(settings)))); - services.TryAdd(ServiceDescriptor.Singleton( - CreateFactory(() => JavaScriptEncoder.Default, settings => JavaScriptEncoder.Create(settings)))); - services.TryAdd(ServiceDescriptor.Singleton( - CreateFactory(() => UrlEncoder.Default, settings => UrlEncoder.Create(settings)))); - - if (configureOptions != null) - { - services.Configure(configureOptions); - } - - return services; - } - - private static Func CreateFactory( - Func defaultFactory, - Func customSettingsFactory) - { - return serviceProvider => - { - var settings = serviceProvider?.GetService>()? - .Value? - .TextEncoderSettings; - return (settings != null) ? customSettingsFactory(settings) : defaultFactory(); - }; - } - } -} diff --git a/src/Microsoft.Extensions.WebEncoders/EncoderServiceProviderExtensions.cs b/src/Microsoft.Extensions.WebEncoders/EncoderServiceProviderExtensions.cs deleted file mode 100644 index 8d9d2da4e8..0000000000 --- a/src/Microsoft.Extensions.WebEncoders/EncoderServiceProviderExtensions.cs +++ /dev/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 -{ - /// - /// Contains extension methods for fetching encoders from an . - /// - public static class EncoderServiceProviderExtensions - { - /// - /// Retrieves an from an . - /// - /// - /// This method is guaranteed never to return null. - /// It will return a default encoder instance if does not contain one or is null. - /// - public static HtmlEncoder GetHtmlEncoder(this IServiceProvider serviceProvider) - { - return (HtmlEncoder)serviceProvider?.GetService(typeof(HtmlEncoder)) ?? HtmlEncoder.Default; - } - - /// - /// Retrieves an from an . - /// - /// - /// This method is guaranteed never to return null. - /// It will return a default encoder instance if does not contain one or is null. - /// - public static JavaScriptEncoder GetJavaScriptEncoder(this IServiceProvider serviceProvider) - { - return (JavaScriptEncoder)serviceProvider?.GetService(typeof(JavaScriptEncoder)) ?? JavaScriptEncoder.Default; - } - - /// - /// Retrieves an from an . - /// - /// - /// This method is guaranteed never to return null. - /// It will return a default encoder instance if does not contain one or is null. - /// - public static UrlEncoder GetUrlEncoder(this IServiceProvider serviceProvider) - { - return (UrlEncoder)serviceProvider?.GetService(typeof(UrlEncoder)) ?? UrlEncoder.Default; - } - } -} diff --git a/src/Microsoft.Extensions.WebEncoders/Microsoft.Extensions.WebEncoders.xproj b/src/Microsoft.Extensions.WebEncoders/Microsoft.Extensions.WebEncoders.xproj deleted file mode 100644 index 084e7901ea..0000000000 --- a/src/Microsoft.Extensions.WebEncoders/Microsoft.Extensions.WebEncoders.xproj +++ /dev/null @@ -1,17 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - dd2ce416-765e-4000-a03e-c2ff165da1b6 - ..\..\artifacts\obj\$(MSBuildProjectName) - ..\..\artifacts\bin\$(MSBuildProjectName)\ - - - 2.0 - - - \ No newline at end of file diff --git a/src/Microsoft.Extensions.WebEncoders/Properties/AssemblyInfo.cs b/src/Microsoft.Extensions.WebEncoders/Properties/AssemblyInfo.cs deleted file mode 100644 index b2437d9ad6..0000000000 --- a/src/Microsoft.Extensions.WebEncoders/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,8 +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.Reflection; -using System.Resources; - -[assembly: AssemblyMetadata("Serviceable", "True")] -[assembly: NeutralResourcesLanguage("en-us")] \ No newline at end of file diff --git a/src/Microsoft.Extensions.WebEncoders/Testing/HtmlTestEncoder.cs b/src/Microsoft.Extensions.WebEncoders/Testing/HtmlTestEncoder.cs deleted file mode 100644 index 162ce4f6c1..0000000000 --- a/src/Microsoft.Extensions.WebEncoders/Testing/HtmlTestEncoder.cs +++ /dev/null @@ -1,104 +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.IO; -using System.Text.Encodings.Web; - -namespace Microsoft.Extensions.WebEncoders.Testing -{ - /// - /// Encoder used for unit testing. - /// - public sealed class HtmlTestEncoder : HtmlEncoder - { - public override int MaxOutputCharactersPerInputCharacter - { - get { return 1; } - } - - public override string Encode(string value) - { - if (value == null) - { - throw new ArgumentNullException(nameof(value)); - } - - if (value.Length == 0) - { - return string.Empty; - } - - return $"HtmlEncode[[{value}]]"; - } - - public override void Encode(TextWriter output, char[] value, int startIndex, int characterCount) - { - if (output == null) - { - throw new ArgumentNullException(nameof(output)); - } - - if (value == null) - { - throw new ArgumentNullException(nameof(value)); - } - - if (characterCount == 0) - { - return; - } - - output.Write("HtmlEncode[["); - output.Write(value, startIndex, characterCount); - output.Write("]]"); - } - - public override void Encode(TextWriter output, string value, int startIndex, int characterCount) - { - if (output == null) - { - throw new ArgumentNullException(nameof(output)); - } - - if (value == null) - { - throw new ArgumentNullException(nameof(value)); - } - - if (characterCount == 0) - { - return; - } - - output.Write("HtmlEncode[["); - output.Write(value.Substring(startIndex, characterCount)); - output.Write("]]"); - } - - public override bool WillEncode(int unicodeScalar) - { - return false; - } - - public override unsafe int FindFirstCharacterToEncode(char* text, int textLength) - { - return -1; - } - - public override unsafe bool TryEncodeUnicodeScalar( - int unicodeScalar, - char* buffer, - int bufferLength, - out int numberOfCharactersWritten) - { - if (buffer == null) - { - throw new ArgumentNullException(nameof(buffer)); - } - - numberOfCharactersWritten = 0; - return false; - } - } -} \ No newline at end of file diff --git a/src/Microsoft.Extensions.WebEncoders/Testing/JavaScriptTestEncoder.cs b/src/Microsoft.Extensions.WebEncoders/Testing/JavaScriptTestEncoder.cs deleted file mode 100644 index bef4461676..0000000000 --- a/src/Microsoft.Extensions.WebEncoders/Testing/JavaScriptTestEncoder.cs +++ /dev/null @@ -1,104 +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.IO; -using System.Text.Encodings.Web; - -namespace Microsoft.Extensions.WebEncoders.Testing -{ - /// - /// Encoder used for unit testing. - /// - public class JavaScriptTestEncoder : JavaScriptEncoder - { - public override int MaxOutputCharactersPerInputCharacter - { - get { return 1; } - } - - public override string Encode(string value) - { - if (value == null) - { - throw new ArgumentNullException(nameof(value)); - } - - if (value.Length == 0) - { - return string.Empty; - } - - return $"JavaScriptEncode[[{value}]]"; - } - - public override void Encode(TextWriter output, char[] value, int startIndex, int characterCount) - { - if (output == null) - { - throw new ArgumentNullException(nameof(output)); - } - - if (value == null) - { - throw new ArgumentNullException(nameof(value)); - } - - if (characterCount == 0) - { - return; - } - - output.Write("JavaScriptEncode[["); - output.Write(value, startIndex, characterCount); - output.Write("]]"); - } - - public override void Encode(TextWriter output, string value, int startIndex, int characterCount) - { - if (output == null) - { - throw new ArgumentNullException(nameof(output)); - } - - if (value == null) - { - throw new ArgumentNullException(nameof(value)); - } - - if (characterCount == 0) - { - return; - } - - output.Write("JavaScriptEncode[["); - output.Write(value.Substring(startIndex, characterCount)); - output.Write("]]"); - } - - public override bool WillEncode(int unicodeScalar) - { - return false; - } - - public override unsafe int FindFirstCharacterToEncode(char* text, int textLength) - { - return -1; - } - - public override unsafe bool TryEncodeUnicodeScalar( - int unicodeScalar, - char* buffer, - int bufferLength, - out int numberOfCharactersWritten) - { - if (buffer == null) - { - throw new ArgumentNullException(nameof(buffer)); - } - - numberOfCharactersWritten = 0; - return false; - } - } -} \ No newline at end of file diff --git a/src/Microsoft.Extensions.WebEncoders/Testing/UrlTestEncoder.cs b/src/Microsoft.Extensions.WebEncoders/Testing/UrlTestEncoder.cs deleted file mode 100644 index 295bda63e8..0000000000 --- a/src/Microsoft.Extensions.WebEncoders/Testing/UrlTestEncoder.cs +++ /dev/null @@ -1,104 +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.IO; -using System.Text.Encodings.Web; - -namespace Microsoft.Extensions.WebEncoders.Testing -{ - /// - /// Encoder used for unit testing. - /// - public class UrlTestEncoder : UrlEncoder - { - public override int MaxOutputCharactersPerInputCharacter - { - get { return 1; } - } - - public override string Encode(string value) - { - if (value == null) - { - throw new ArgumentNullException(nameof(value)); - } - - if (value.Length == 0) - { - return string.Empty; - } - - return $"UrlEncode[[{value}]]"; - } - - public override void Encode(TextWriter output, char[] value, int startIndex, int characterCount) - { - if (output == null) - { - throw new ArgumentNullException(nameof(output)); - } - - if (value == null) - { - throw new ArgumentNullException(nameof(value)); - } - - if (characterCount == 0) - { - return; - } - - output.Write("UrlEncode[["); - output.Write(value, startIndex, characterCount); - output.Write("]]"); - } - - public override void Encode(TextWriter output, string value, int startIndex, int characterCount) - { - if (output == null) - { - throw new ArgumentNullException(nameof(output)); - } - - if (value == null) - { - throw new ArgumentNullException(nameof(value)); - } - - if (characterCount == 0) - { - return; - } - - output.Write("UrlEncode[["); - output.Write(value.Substring(startIndex, characterCount)); - output.Write("]]"); - } - - public override bool WillEncode(int unicodeScalar) - { - return false; - } - - public override unsafe int FindFirstCharacterToEncode(char* text, int textLength) - { - return -1; - } - - public override unsafe bool TryEncodeUnicodeScalar( - int unicodeScalar, - char* buffer, - int bufferLength, - out int numberOfCharactersWritten) - { - if (buffer == null) - { - throw new ArgumentNullException(nameof(buffer)); - } - - numberOfCharactersWritten = 0; - return false; - } - } -} \ No newline at end of file diff --git a/src/Microsoft.Extensions.WebEncoders/WebEncoderOptions.cs b/src/Microsoft.Extensions.WebEncoders/WebEncoderOptions.cs deleted file mode 100644 index 2f5e770a0c..0000000000 --- a/src/Microsoft.Extensions.WebEncoders/WebEncoderOptions.cs +++ /dev/null @@ -1,21 +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.Text.Encodings.Web; - -namespace Microsoft.Extensions.WebEncoders -{ - /// - /// Specifies options common to all three encoders (HtmlEncode, JavaScriptEncode, UrlEncode). - /// - public sealed class WebEncoderOptions - { - /// - /// Specifies which code points are allowed to be represented unescaped by the encoders. - /// - /// - /// If this property is null, then the encoders will use their default allow lists. - /// - public TextEncoderSettings TextEncoderSettings { get; set; } - } -} diff --git a/src/Microsoft.Extensions.WebEncoders/project.json b/src/Microsoft.Extensions.WebEncoders/project.json deleted file mode 100644 index 0facfeeb8c..0000000000 --- a/src/Microsoft.Extensions.WebEncoders/project.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "version": "1.0.0-*", - "description": "Contains registration and configuration APIs for the core framework encoders.", - "repository": { - "type": "git", - "url": "git://github.com/aspnet/httpabstractions" - }, - "compilationOptions": { - "warningsAsErrors": true, - "allowUnsafe": true, - "keyFile": "../../tools/Key.snk" - }, - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-*", - "Microsoft.Extensions.Options": "1.0.0-*", - "System.Text.Encodings.Web": "4.0.0-*" - }, - "frameworks": { - "net451": { - "frameworkAssemblies": { - "System.IO": "", - "System.Runtime": "" - } - }, - "dotnet5.4": {} - } -} diff --git a/test/Microsoft.AspNet.WebUtilities.Tests/project.json b/test/Microsoft.AspNet.WebUtilities.Tests/project.json index 29994be207..b56d4034ca 100644 --- a/test/Microsoft.AspNet.WebUtilities.Tests/project.json +++ b/test/Microsoft.AspNet.WebUtilities.Tests/project.json @@ -1,15 +1,20 @@ { - "dependencies": { - "Microsoft.AspNet.Http": "1.0.0-*", - "Microsoft.AspNet.WebUtilities": "1.0.0-*", - "Microsoft.AspNet.Http.Core": "1.0.0-*", - "xunit.runner.aspnet": "2.0.0-aspnet-*" - }, - "commands": { - "test": "xunit.runner.aspnet" - }, - "frameworks": { - "dnx451": { }, - "dnxcore50": { } + "dependencies": { + "Microsoft.AspNet.WebUtilities": "1.0.0-*", + "xunit.runner.aspnet": "2.0.0-aspnet-*" + }, + "compilationOptions": { + "warningsAsErrors": true + }, + "commands": { + "test": "xunit.runner.aspnet" + }, + "frameworks": { + "dnx451": { }, + "dnxcore50": { + "dependencies": { + "System.Text.Encoding.Extensions": "4.0.11-*" + } } + } } diff --git a/test/Microsoft.Extensions.WebEncoders.Tests/EncoderServiceCollectionExtensionsTests.cs b/test/Microsoft.Extensions.WebEncoders.Tests/EncoderServiceCollectionExtensionsTests.cs deleted file mode 100644 index 8e060102bb..0000000000 --- a/test/Microsoft.Extensions.WebEncoders.Tests/EncoderServiceCollectionExtensionsTests.cs +++ /dev/null @@ -1,90 +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.Text.Encodings.Web; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.WebEncoders.Testing; -using Xunit; - -namespace Microsoft.Extensions.WebEncoders -{ - public class EncoderServiceCollectionExtensionsTests - { - [Fact] - public void AddWebEncoders_WithoutOptions_RegistersDefaultEncoders() - { - // Arrange - var serviceCollection = new ServiceCollection(); - - // Act - serviceCollection.AddWebEncoders(); - - // Assert - var serviceProvider = serviceCollection.BuildServiceProvider(); - Assert.Same(HtmlEncoder.Default, serviceProvider.GetRequiredService()); // default encoder - Assert.Same(HtmlEncoder.Default, serviceProvider.GetRequiredService()); // as singleton instance - Assert.Same(JavaScriptEncoder.Default, serviceProvider.GetRequiredService()); // default encoder - Assert.Same(JavaScriptEncoder.Default, serviceProvider.GetRequiredService()); // as singleton instance - Assert.Same(UrlEncoder.Default, serviceProvider.GetRequiredService()); // default encoder - Assert.Same(UrlEncoder.Default, serviceProvider.GetRequiredService()); // as singleton instance - } - - [Fact] - public void AddWebEncoders_WithOptions_RegistersEncodersWithCustomCodeFilter() - { - // Arrange - var serviceCollection = new ServiceCollection(); - - // Act - serviceCollection.AddWebEncoders(options => - { - options.TextEncoderSettings = new TextEncoderSettings(); - options.TextEncoderSettings.AllowCharacters("ace".ToCharArray()); // only these three chars are allowed - }); - - // Assert - var serviceProvider = serviceCollection.BuildServiceProvider(); - - var htmlEncoder = serviceProvider.GetRequiredService(); - Assert.Equal("abcde", htmlEncoder.Encode("abcde")); - Assert.Same(htmlEncoder, serviceProvider.GetRequiredService()); // as singleton instance - - var javaScriptEncoder = serviceProvider.GetRequiredService(); - Assert.Equal(@"a\u0062c\u0064e", javaScriptEncoder.Encode("abcde")); - Assert.Same(javaScriptEncoder, serviceProvider.GetRequiredService()); // as singleton instance - - var urlEncoder = serviceProvider.GetRequiredService(); - Assert.Equal("a%62c%64e", urlEncoder.Encode("abcde")); - Assert.Same(urlEncoder, serviceProvider.GetRequiredService()); // as singleton instance - } - - [Fact] - public void AddWebEncoders_DoesNotOverrideExistingRegisteredEncoders() - { - // Arrange - var serviceCollection = new ServiceCollection(); - - // Act - serviceCollection.AddSingleton(); - serviceCollection.AddSingleton(); - // we don't register an existing URL encoder - serviceCollection.AddWebEncoders(options => - { - options.TextEncoderSettings = new TextEncoderSettings(); - options.TextEncoderSettings.AllowCharacters("ace".ToCharArray()); // only these three chars are allowed - }); - - // Assert - var serviceProvider = serviceCollection.BuildServiceProvider(); - - var htmlEncoder = serviceProvider.GetHtmlEncoder(); - Assert.Equal("HtmlEncode[[abcde]]", htmlEncoder.Encode("abcde")); - - var javaScriptEncoder = serviceProvider.GetJavaScriptEncoder(); - Assert.Equal("JavaScriptEncode[[abcde]]", javaScriptEncoder.Encode("abcde")); - - var urlEncoder = serviceProvider.GetUrlEncoder(); - Assert.Equal("a%62c%64e", urlEncoder.Encode("abcde")); - } - } -} diff --git a/test/Microsoft.Extensions.WebEncoders.Tests/EncoderServiceProviderExtensionsTests.cs b/test/Microsoft.Extensions.WebEncoders.Tests/EncoderServiceProviderExtensionsTests.cs deleted file mode 100644 index 01492e759e..0000000000 --- a/test/Microsoft.Extensions.WebEncoders.Tests/EncoderServiceProviderExtensionsTests.cs +++ /dev/null @@ -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; - } - } - } -} diff --git a/test/Microsoft.Extensions.WebEncoders.Tests/HtmlTestEncoderTest.cs b/test/Microsoft.Extensions.WebEncoders.Tests/HtmlTestEncoderTest.cs deleted file mode 100644 index baafedc4de..0000000000 --- a/test/Microsoft.Extensions.WebEncoders.Tests/HtmlTestEncoderTest.cs +++ /dev/null @@ -1,26 +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 Xunit; - -namespace Microsoft.Extensions.WebEncoders.Testing -{ - public class HtmlTestEncoderTest - { - [Theory] - [InlineData("", "")] - [InlineData("abcd", "HtmlEncode[[abcd]]")] - [InlineData("<<''\"\">>", "HtmlEncode[[<<''\"\">>]]")] - public void StringEncode_EncodesAsExpected(string input, string expectedOutput) - { - // Arrange - var encoder = new HtmlTestEncoder(); - - // Act - var output = encoder.Encode(input); - - // Assert - Assert.Equal(expectedOutput, output); - } - } -} diff --git a/test/Microsoft.Extensions.WebEncoders.Tests/Microsoft.Extensions.WebEncoders.Tests.xproj b/test/Microsoft.Extensions.WebEncoders.Tests/Microsoft.Extensions.WebEncoders.Tests.xproj deleted file mode 100644 index 9b0698e3cc..0000000000 --- a/test/Microsoft.Extensions.WebEncoders.Tests/Microsoft.Extensions.WebEncoders.Tests.xproj +++ /dev/null @@ -1,20 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - 7ae2731d-43cd-4cf8-850a-4914de2ce930 - ..\..\artifacts\obj\$(MSBuildProjectName) - ..\..\artifacts\bin\$(MSBuildProjectName)\ - - - 2.0 - - - - - - \ No newline at end of file diff --git a/test/Microsoft.Extensions.WebEncoders.Tests/project.json b/test/Microsoft.Extensions.WebEncoders.Tests/project.json deleted file mode 100644 index 4d81779a7c..0000000000 --- a/test/Microsoft.Extensions.WebEncoders.Tests/project.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "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": { - "test": "xunit.runner.aspnet" - }, - "compilationOptions": { - "allowUnsafe": true, - "warningsAsErrors": true, - "keyFile": "../../tools/Key.snk" - }, - "frameworks": { - "dnx451": { }, - "dnxcore50": { - "dependencies": { - "System.Text.Encoding.Extensions": "4.0.11-*" - } - } - } -}