// 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 Xunit; namespace Microsoft.Framework.WebEncoders { public class EncoderExtensionsTests { [Fact] public void HtmlEncode_ParameterChecks() { Assert.Throws(() => EncoderExtensions.HtmlEncode(null, "Hello!", new StringWriter())); } [Fact] public void HtmlEncode_PositiveTestCase() { // Arrange IHtmlEncoder encoder = new HtmlEncoder(UnicodeRanges.All); StringWriter writer = new StringWriter(); // Act encoder.HtmlEncode("Hello+there!", writer); // Assert Assert.Equal("Hello+there!", writer.ToString()); } [Fact] public void JavaScriptStringEncode_ParameterChecks() { Assert.Throws(() => EncoderExtensions.JavaScriptStringEncode(null, "Hello!", new StringWriter())); } [Fact] public void JavaScriptStringEncode_PositiveTestCase() { // Arrange IJavaScriptStringEncoder encoder = new JavaScriptStringEncoder(UnicodeRanges.All); StringWriter writer = new StringWriter(); // Act encoder.JavaScriptStringEncode("Hello+there!", writer); // Assert Assert.Equal(@"Hello\u002Bthere!", writer.ToString()); } [Fact] public void UrlEncode_ParameterChecks() { Assert.Throws(() => EncoderExtensions.UrlEncode(null, "Hello!", new StringWriter())); } [Fact] public void UrlEncode_PositiveTestCase() { // Arrange IUrlEncoder encoder = new UrlEncoder(UnicodeRanges.All); StringWriter writer = new StringWriter(); // Act encoder.UrlEncode("Hello+there!", writer); // Assert Assert.Equal("Hello%2Bthere!", writer.ToString()); } } }