From 2982c7254795f9cd7ea041268d0c88e2bd5d8a62 Mon Sep 17 00:00:00 2001 From: Doug Bunting Date: Sun, 9 Nov 2014 20:56:54 -0800 Subject: [PATCH] Add `Html.BeginForm()` and `Html.BeginRouteForm()` tests - helps w/ #453 since `Html.BeginForm()` wasn't previously tested - provide a `DefaultTemplatesUtilities.GetHtmlHelper()` overload with an `IHtmlGenerator` parameter - update `DefaultTemplateUtilities` to use `DefaultHttpContext` - stop using a mock for this purpose; provides a non-`null` `Request` nit: - `DefaultTemplatesUtilities.GetHtmlHelperForViewData()` -> `...GetHtmlHelper()` for consistency with other overloads --- .../Rendering/DefaultTemplatesUtilities.cs | 86 +- .../Rendering/HtmlHelperCheckboxTest.cs | 32 +- .../HtmlHelperDisplayNameExtensionsTest.cs | 12 +- .../Rendering/HtmlHelperFormExtensionsTest.cs | 818 ++++++++++++++++++ .../Rendering/HtmlHelperFormTest.cs | 281 ++++++ .../Rendering/HtmlHelperHiddenTest.cs | 64 +- 6 files changed, 1199 insertions(+), 94 deletions(-) create mode 100644 test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperFormExtensionsTest.cs create mode 100644 test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperFormTest.cs diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/DefaultTemplatesUtilities.cs b/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/DefaultTemplatesUtilities.cs index baf673d303..0c239742f3 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/DefaultTemplatesUtilities.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/DefaultTemplatesUtilities.cs @@ -2,13 +2,12 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; -using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Globalization; using System.IO; using System.Threading.Tasks; -using Microsoft.AspNet.Http; using Microsoft.AspNet.Mvc.ModelBinding; +using Microsoft.AspNet.PipelineCore; using Microsoft.AspNet.Routing; using Microsoft.AspNet.Security.DataProtection; using Microsoft.Framework.OptionsModel; @@ -55,13 +54,27 @@ namespace Microsoft.AspNet.Mvc.Rendering provider: CreateModelMetadataProvider()); } - public static HtmlHelper GetHtmlHelperForViewData(ViewDataDictionary viewData) + public static HtmlHelper GetHtmlHelper(IHtmlGenerator htmlGenerator) { - return GetHtmlHelper(viewData, - CreateUrlHelper(), - CreateViewEngine(), - CreateModelMetadataProvider(), - innerHelperWrapper: null); + var metadataProvider = CreateModelMetadataProvider(); + return GetHtmlHelper( + new ViewDataDictionary(metadataProvider), + CreateUrlHelper(), + CreateViewEngine(), + metadataProvider, + innerHelperWrapper: null, + htmlGenerator: htmlGenerator); + } + + public static HtmlHelper GetHtmlHelper(ViewDataDictionary viewData) + { + return GetHtmlHelper( + viewData, + CreateUrlHelper(), + CreateViewEngine(), + CreateModelMetadataProvider(), + innerHelperWrapper: null, + htmlGenerator: null); } public static HtmlHelper GetHtmlHelper(TModel model) @@ -116,7 +129,7 @@ namespace Microsoft.AspNet.Mvc.Rendering var viewData = new ViewDataDictionary(provider); viewData.Model = model; - return GetHtmlHelper(viewData, urlHelper, viewEngine, provider, innerHelperWrapper); + return GetHtmlHelper(viewData, urlHelper, viewEngine, provider, innerHelperWrapper, htmlGenerator: null); } private static HtmlHelper GetHtmlHelper( @@ -124,30 +137,11 @@ namespace Microsoft.AspNet.Mvc.Rendering IUrlHelper urlHelper, ICompositeViewEngine viewEngine, IModelMetadataProvider provider, - Func innerHelperWrapper) + Func innerHelperWrapper, + IHtmlGenerator htmlGenerator) { - var httpContext = new Mock(); - httpContext - .Setup(o => o.Response) - .Returns(Mock.Of()); - httpContext - .Setup(o => o.Items) - .Returns(new Dictionary()); - - var actionContext = new ActionContext(httpContext.Object, - new RouteData(), - new ActionDescriptor()); - - var actionBindingContext = new ActionBindingContext(actionContext, - provider, - Mock.Of(), - Mock.Of(), - Mock.Of(), - new DataAnnotationsModelValidatorProvider()); - var actionBindingContextProvider = new Mock(); - actionBindingContextProvider - .Setup(c => c.GetActionBindingContextAsync(It.IsAny())) - .Returns(Task.FromResult(actionBindingContext)); + var httpContext = new DefaultHttpContext(); + var actionContext = new ActionContext(httpContext, new RouteData(), new ActionDescriptor()); var serviceProvider = new Mock(); serviceProvider @@ -160,15 +154,27 @@ namespace Microsoft.AspNet.Mvc.Rendering .Setup(s => s.GetService(typeof(IViewComponentHelper))) .Returns(new Mock().Object); - httpContext - .Setup(o => o.RequestServices) - .Returns(serviceProvider.Object); + httpContext.RequestServices = serviceProvider.Object; + if (htmlGenerator == null) + { + var actionBindingContext = new ActionBindingContext( + actionContext, + provider, + Mock.Of(), + Mock.Of(), + Mock.Of(), + new DataAnnotationsModelValidatorProvider()); + var actionBindingContextProvider = new Mock(); + actionBindingContextProvider + .Setup(c => c.GetActionBindingContextAsync(It.IsAny())) + .Returns(Task.FromResult(actionBindingContext)); - var htmlGenerator = new DefaultHtmlGenerator( - actionBindingContextProvider.Object, - GetAntiForgeryInstance(), - provider, - urlHelper); + htmlGenerator = new DefaultHtmlGenerator( + actionBindingContextProvider.Object, + GetAntiForgeryInstance(), + provider, + urlHelper); + } // TemplateRenderer will Contextualize this transient service. var innerHelper = (IHtmlHelper)new HtmlHelper(htmlGenerator, viewEngine, provider); diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperCheckboxTest.cs b/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperCheckboxTest.cs index 262a84d50d..2a9f2db117 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperCheckboxTest.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperCheckboxTest.cs @@ -19,7 +19,7 @@ namespace Microsoft.AspNet.Mvc.Rendering // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetTestModelViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData()); // Act var html = helper.CheckBox("Property3", @@ -36,7 +36,7 @@ namespace Microsoft.AspNet.Mvc.Rendering // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetTestModelViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData()); // Act var html = helper.CheckBox("Property3", @@ -69,7 +69,7 @@ namespace Microsoft.AspNet.Mvc.Rendering { // Arrange var expected = "String was not recognized as a valid Boolean."; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetTestModelViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData()); // Act & Assert var ex = Assert.Throws( @@ -83,7 +83,7 @@ namespace Microsoft.AspNet.Mvc.Rendering // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetTestModelViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData()); // Act var html = helper.CheckBox("Property1", isChecked: true, htmlAttributes: null); @@ -99,7 +99,7 @@ namespace Microsoft.AspNet.Mvc.Rendering var expected = @"" + @""; var valueProviderResult = new ValueProviderResult("false", "false", CultureInfo.InvariantCulture); - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetTestModelViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData()); helper.ViewData.ModelState.SetModelValue("Property1", valueProviderResult); // Act @@ -116,7 +116,7 @@ namespace Microsoft.AspNet.Mvc.Rendering var expected = @"" + @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetModelWithValidationViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetModelWithValidationViewData()); // Act var html = helper.CheckBox("Name", isChecked: null, htmlAttributes: null); @@ -132,7 +132,7 @@ namespace Microsoft.AspNet.Mvc.Rendering var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper>(GetTestModelViewData()); var htmlAttributes = new { Property1_Property3 = "Property3ObjValue" }; // Act @@ -204,7 +204,7 @@ namespace Microsoft.AspNet.Mvc.Rendering var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetModelWithValidationViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetModelWithValidationViewData()); // Act var html = helper.CheckBox("ComplexProperty.Property1", isChecked: null, htmlAttributes: null); @@ -218,7 +218,7 @@ namespace Microsoft.AspNet.Mvc.Rendering { // Arrange var expected = "String was not recognized as a valid Boolean."; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetTestModelViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData()); // Act & Assert // "Property2" in ViewData isn't a valid boolean @@ -232,7 +232,7 @@ namespace Microsoft.AspNet.Mvc.Rendering // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetTestModelViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData()); // Act var html = helper.CheckBoxFor(m => m.Property3, new { @checked = "checked", value = "false" }); @@ -253,7 +253,7 @@ namespace Microsoft.AspNet.Mvc.Rendering { Model = new ModelWithValidation() }; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(viewDataDictionary); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(viewDataDictionary); // Act var html = helper.CheckBoxFor(m => m.Name, htmlAttributes: null); @@ -269,7 +269,7 @@ namespace Microsoft.AspNet.Mvc.Rendering var expected = @"" + @""; var viewData = GetTestModelViewData(); - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(viewData); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(viewData); var valueProviderResult = new ValueProviderResult("false", "false", CultureInfo.InvariantCulture); viewData.ModelState.SetModelValue("Property1", valueProviderResult); @@ -287,7 +287,7 @@ namespace Microsoft.AspNet.Mvc.Rendering var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetTestModelViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData()); var htmlAttributes = new { Property1_Property3 = "Property3ObjValue" }; // Act @@ -304,7 +304,7 @@ namespace Microsoft.AspNet.Mvc.Rendering var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetTestModelViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData()); var attributes = new Dictionary { { "Property3", "Property3Value" } }; // Act @@ -321,7 +321,7 @@ namespace Microsoft.AspNet.Mvc.Rendering var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetTestModelViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData()); helper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "MyPrefix"; var attributes = new Dictionary { { "Property3", "PropValue" } }; @@ -339,7 +339,7 @@ namespace Microsoft.AspNet.Mvc.Rendering var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetModelWithValidationViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetModelWithValidationViewData()); // Act var html = helper.CheckBoxFor(m => m.ComplexProperty.Property1, htmlAttributes: null); diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperDisplayNameExtensionsTest.cs b/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperDisplayNameExtensionsTest.cs index 40f969ca07..8ea209f8be 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperDisplayNameExtensionsTest.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperDisplayNameExtensionsTest.cs @@ -21,7 +21,7 @@ namespace Microsoft.AspNet.Mvc.Core // Arrange var helper = DefaultTemplatesUtilities.GetHtmlHelper(); var enumerableHelper = - DefaultTemplatesUtilities.GetHtmlHelper>(null); + DefaultTemplatesUtilities.GetHtmlHelper>((IEnumerable)null); // Act var displayNameResult = helper.DisplayName(expression: string.Empty); @@ -44,7 +44,7 @@ namespace Microsoft.AspNet.Mvc.Core // Arrange var helper = DefaultTemplatesUtilities.GetHtmlHelper(); var enumerableHelper = - DefaultTemplatesUtilities.GetHtmlHelper>(null); + DefaultTemplatesUtilities.GetHtmlHelper>((IEnumerable)null); // Act var displayNameResult = helper.DisplayName("Property1"); @@ -92,7 +92,7 @@ namespace Microsoft.AspNet.Mvc.Core var helper = DefaultTemplatesUtilities.GetHtmlHelper(); helper.ViewData.ModelMetadata = metadata; var enumerableHelper = - DefaultTemplatesUtilities.GetHtmlHelper>(null); + DefaultTemplatesUtilities.GetHtmlHelper>((IEnumerable)null); enumerableHelper.ViewData.ModelMetadata = metadata; // Act @@ -149,7 +149,7 @@ namespace Microsoft.AspNet.Mvc.Core var helper = DefaultTemplatesUtilities.GetHtmlHelper(); helper.ViewData.ModelMetadata.DisplayName = displayName; var enumerableHelper = - DefaultTemplatesUtilities.GetHtmlHelper>(null); + DefaultTemplatesUtilities.GetHtmlHelper>((IEnumerable)null); enumerableHelper.ViewData.ModelMetadata.DisplayName = displayName; // Act @@ -255,7 +255,7 @@ namespace Microsoft.AspNet.Mvc.Core { // Arrange var helper = - DefaultTemplatesUtilities.GetHtmlHelper>(null); + DefaultTemplatesUtilities.GetHtmlHelper>((IEnumerable)null); // Act & Assert var exception = Assert.Throws( @@ -285,7 +285,7 @@ namespace Microsoft.AspNet.Mvc.Core // Arrange var unknownKey = "this is a dummy parameter value"; var helper = - DefaultTemplatesUtilities.GetHtmlHelper>(null); + DefaultTemplatesUtilities.GetHtmlHelper>((IEnumerable)null); // Act var result = helper.DisplayNameFor(model => unknownKey); diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperFormExtensionsTest.cs b/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperFormExtensionsTest.cs new file mode 100644 index 0000000000..57da9afdc5 --- /dev/null +++ b/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperFormExtensionsTest.cs @@ -0,0 +1,818 @@ + +using System.Collections.Generic; +using System.IO; +using Moq; +using Xunit; + +namespace Microsoft.AspNet.Mvc.Rendering +{ + /// + /// Tests the 's and + /// methods. + /// + public class HtmlHelperFormExtensionsTest + { + private static readonly IEnumerable _actionNames = new List { null, "Details" }; + private static readonly IEnumerable _controllerNames = new List { null, "Product" }; + private static readonly IEnumerable _htmlAttributes = new List + { + null, + new { isprint = "false", showreviews = "false" }, + new Dictionary { { "isprint", "false" }, { "showreviews", "true" }, }, + }; + private static readonly IEnumerable _methods = new List + { + FormMethod.Get, + FormMethod.Post, + }; + private static readonly IEnumerable _routeNames = new List { null, "default" }; + private static readonly IEnumerable _routeValues = new List + { + null, + new { p1_name = "p1-value" }, + new Dictionary { { "p1-name", "p1-value" }, { "p2-name", "p2-value" } }, + }; + + public static TheoryData ActionNameAndControllerNameDataSet + { + get + { + var dataSet = new TheoryData(); + foreach (var actionName in _actionNames) + { + foreach (var controllerName in _controllerNames) + { + dataSet.Add(actionName, controllerName); + } + } + + return dataSet; + } + } + + public static TheoryData ActionNameControllerNameAndMethodDataSet + { + get + { + var dataSet = new TheoryData(); + foreach (var actionName in _actionNames) + { + foreach (var controllerName in _controllerNames) + { + foreach (var method in _methods) + { + dataSet.Add(actionName, controllerName, method); + } + } + } + + return dataSet; + } + } + + public static TheoryData ActionNameControllerNameMethodAndHtmlAttributesDataSet + { + get + { + var dataSet = new TheoryData(); + foreach (var actionName in _actionNames) + { + foreach (var controllerName in _controllerNames) + { + foreach (var method in _methods) + { + foreach (var htmlAttributes in _htmlAttributes) + { + dataSet.Add(actionName, controllerName, method, htmlAttributes); + } + } + } + } + + return dataSet; + } + } + + public static TheoryData ActionNameControllerNameAndRouteValuesDataSet + { + get + { + var dataSet = new TheoryData(); + foreach (var actionName in _actionNames) + { + foreach (var controllerName in _controllerNames) + { + foreach (var routeValues in _routeValues) + { + dataSet.Add(actionName, controllerName, routeValues); + } + } + } + + return dataSet; + } + } + + public static TheoryData ActionNameControllerNameRouteValuesAndMethodDataSet + { + get + { + var dataSet = new TheoryData(); + foreach (var actionName in _actionNames) + { + foreach (var controllerName in _controllerNames) + { + foreach (var routeValues in _routeValues) + { + foreach (var method in _methods) + { + dataSet.Add(actionName, controllerName, routeValues, method); + } + } + } + } + + return dataSet; + } + } + + public static TheoryData MethodDataSet + { + get + { + var dataSet = new TheoryData(); + foreach (var method in _methods) + { + dataSet.Add(method); + } + + return dataSet; + } + } + + public static TheoryData MethodAndHtmlAttributesDataSet + { + get + { + var dataSet = new TheoryData(); + foreach (var method in _methods) + { + foreach (var htmlAttributes in _htmlAttributes) + { + dataSet.Add(method, htmlAttributes); + } + } + + return dataSet; + } + } + + public static TheoryData RouteNameDataSet + { + get + { + var dataSet = new TheoryData(); + foreach (var routeName in _routeNames) + { + dataSet.Add(routeName); + } + + return dataSet; + } + } + + public static TheoryData RouteNameAndMethodDataSet + { + get + { + var dataSet = new TheoryData(); + foreach (var routeName in _routeNames) + { + foreach (var method in _methods) + { + dataSet.Add(routeName, method); + } + } + + return dataSet; + } + } + + public static TheoryData RouteNameMethodAndHtmlAttributesDataSet + { + get + { + var dataSet = new TheoryData(); + foreach (var routeName in _routeNames) + { + foreach (var method in _methods) + { + foreach (var htmlAttributes in _htmlAttributes) + { + dataSet.Add(routeName, method, htmlAttributes); + } + } + } + + return dataSet; + } + } + + public static TheoryData RouteNameAndRouteValuesDataSet + { + get + { + var dataSet = new TheoryData(); + foreach (var routeName in _routeNames) + { + foreach (var routeValues in _routeValues) + { + dataSet.Add(routeName, routeValues); + } + } + + return dataSet; + } + } + + public static TheoryData RouteNameRouteValuesAndMethodDataSet + { + get + { + var dataSet = new TheoryData(); + foreach (var routeName in _routeNames) + { + foreach (var routeValues in _routeValues) + { + foreach (var method in _methods) + { + dataSet.Add(routeName, routeValues, method); + } + } + } + + return dataSet; + } + } + + public static TheoryData RouteValuesDataSet + { + get + { + var dataSet = new TheoryData(); + foreach (var routeValues in _routeValues) + { + dataSet.Add(routeValues); + } + + return dataSet; + } + } + + [Fact] + public void BeginFormWithNoParameters_CallsHtmlGeneratorWithExpectedValues() + { + // Arrange + var tagBuilder = new TagBuilder(tagName: "form"); + var htmlGenerator = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object); + htmlGenerator + .Setup(realHelper => realHelper.GenerateForm( + htmlHelper.ViewContext, + null, // actionName + null, // controllerName + null, // routeValues + FormMethod.Post.ToString().ToLowerInvariant(), + null)) // htmlAttributes + .Returns(tagBuilder) + .Verifiable(); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginForm(); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal("
", builder.ToString()); + htmlGenerator.Verify(); + } + + [Theory] + [MemberData(nameof(MethodDataSet))] + public void BeginFormWithMethodParameter_CallsHtmlGeneratorWithExpectedValues(FormMethod method) + { + // Arrange + var tagBuilder = new TagBuilder(tagName: "form"); + var htmlGenerator = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object); + htmlGenerator + .Setup(realHelper => realHelper.GenerateForm( + htmlHelper.ViewContext, + null, // actionName + null, // controllerName + null, // routeValues + method.ToString().ToLowerInvariant(), + null)) // htmlAttributes + .Returns(tagBuilder) + .Verifiable(); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginForm(method); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal("", builder.ToString()); + htmlGenerator.Verify(); + } + + [Theory] + [MemberData(nameof(MethodAndHtmlAttributesDataSet))] + public void BeginFormWithMethodAndHtmlAttributesParameters_CallsHtmlGeneratorWithExpectedValues( + FormMethod method, + object htmlAttributes) + { + // Arrange + var tagBuilder = new TagBuilder(tagName: "form"); + var htmlGenerator = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object); + htmlGenerator + .Setup(realHelper => realHelper.GenerateForm( + htmlHelper.ViewContext, + null, // actionName + null, // controllerName + null, // routeValues + method.ToString().ToLowerInvariant(), + htmlAttributes)) + .Returns(tagBuilder) + .Verifiable(); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginForm(method, htmlAttributes); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal("", builder.ToString()); + htmlGenerator.Verify(); + } + + [Theory] + [MemberData(nameof(RouteValuesDataSet))] + public void BeginFormWithRouteValuesParameter_CallsHtmlGeneratorWithExpectedValues(object routeValues) + { + // Arrange + var tagBuilder = new TagBuilder(tagName: "form"); + var htmlGenerator = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object); + htmlGenerator + .Setup(realHelper => realHelper.GenerateForm( + htmlHelper.ViewContext, + null, // actionName + null, // controllerName + routeValues, + FormMethod.Post.ToString().ToLowerInvariant(), + null)) // htmlAttributes + .Returns(tagBuilder) + .Verifiable(); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginForm(routeValues); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal("", builder.ToString()); + htmlGenerator.Verify(); + } + + [Theory] + [MemberData(nameof(ActionNameAndControllerNameDataSet))] + public void BeginFormWithActionNameAndControllerNameParameters_CallsHtmlGeneratorWithExpectedValues( + string actionName, + string controllerName) + { + // Arrange + var tagBuilder = new TagBuilder(tagName: "form"); + var htmlGenerator = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object); + htmlGenerator + .Setup(realHelper => realHelper.GenerateForm( + htmlHelper.ViewContext, + actionName, + controllerName, + null, // routeValues + FormMethod.Post.ToString().ToLowerInvariant(), + null)) // htmlAttributes + .Returns(tagBuilder) + .Verifiable(); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginForm(actionName, controllerName); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal("", builder.ToString()); + htmlGenerator.Verify(); + } + + [Theory] + [MemberData(nameof(ActionNameControllerNameAndRouteValuesDataSet))] + public void BeginFormWithActionNameControllerNameAndRouteValuesParameters_CallsHtmlGeneratorWithExpectedValues( + string actionName, + string controllerName, + object routeValues) + { + // Arrange + var tagBuilder = new TagBuilder(tagName: "form"); + var htmlGenerator = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object); + htmlGenerator + .Setup(realHelper => realHelper.GenerateForm( + htmlHelper.ViewContext, + actionName, + controllerName, + routeValues, + FormMethod.Post.ToString().ToLowerInvariant(), + null)) // htmlAttributes + .Returns(tagBuilder) + .Verifiable(); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginForm(actionName, controllerName, routeValues); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal("", builder.ToString()); + htmlGenerator.Verify(); + } + + [Theory] + [MemberData(nameof(ActionNameControllerNameAndMethodDataSet))] + public void BeginFormWithActionNameControllerNameAndMethodParameters_CallsHtmlGeneratorWithExpectedValues( + string actionName, + string controllerName, + FormMethod method) + { + // Arrange + var tagBuilder = new TagBuilder(tagName: "form"); + var htmlGenerator = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object); + htmlGenerator + .Setup(realHelper => realHelper.GenerateForm( + htmlHelper.ViewContext, + actionName, + controllerName, + null, // routeValues + method.ToString().ToLowerInvariant(), + null)) // htmlAttributes + .Returns(tagBuilder) + .Verifiable(); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginForm(actionName, controllerName, method); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal("", builder.ToString()); + htmlGenerator.Verify(); + } + + [Theory] + [MemberData(nameof(ActionNameControllerNameRouteValuesAndMethodDataSet))] + public void BeginFormWithActionNameContollerNameRouteValuesAndMethodParameters_CallsHtmlGeneratorWithExpectedValues( + string actionName, + string controllerName, + object routeValues, + FormMethod method) + { + // Arrange + var tagBuilder = new TagBuilder(tagName: "form"); + var htmlGenerator = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object); + htmlGenerator + .Setup(realHelper => realHelper.GenerateForm( + htmlHelper.ViewContext, + actionName, + controllerName, + routeValues, + method.ToString().ToLowerInvariant(), + null)) // htmlAttributes + .Returns(tagBuilder) + .Verifiable(); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginForm(actionName, controllerName, routeValues, method); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal("", builder.ToString()); + htmlGenerator.Verify(); + } + + [Theory] + [MemberData(nameof(ActionNameControllerNameMethodAndHtmlAttributesDataSet))] + public void BeginFormWithActionNameContollerNameMethodAndHtmlAttributesParameters_CallsHtmlGeneratorWithExpectedValues( + string actionName, + string controllerName, + FormMethod method, + object htmlAttributes) + { + // Arrange + var tagBuilder = new TagBuilder(tagName: "form"); + var htmlGenerator = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object); + htmlGenerator + .Setup(realHelper => realHelper.GenerateForm( + htmlHelper.ViewContext, + actionName, + controllerName, + null, // routeValues + method.ToString().ToLowerInvariant(), + htmlAttributes)) + .Returns(tagBuilder) + .Verifiable(); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginForm(actionName, controllerName, method, htmlAttributes); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal("", builder.ToString()); + htmlGenerator.Verify(); + } + + [Theory] + [MemberData(nameof(RouteValuesDataSet))] + public void BeginRouteFormWithRouteValuesParameter_CallsHtmlGeneratorWithExpectedValues(object routeValues) + { + // Arrange + var tagBuilder = new TagBuilder(tagName: "form"); + var htmlGenerator = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object); + htmlGenerator + .Setup(realHelper => realHelper.GenerateRouteForm( + htmlHelper.ViewContext, + null, // routeName + routeValues, + FormMethod.Post.ToString().ToLowerInvariant(), + null)) // htmlAttributes + .Returns(tagBuilder) + .Verifiable(); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginRouteForm(routeValues); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal("", builder.ToString()); + htmlGenerator.Verify(); + } + + [Theory] + [MemberData(nameof(RouteNameDataSet))] + public void BeginRouteFormWithRouteNameParameter_CallsHtmlGeneratorWithExpectedValues(string routeName) + { + // Arrange + var tagBuilder = new TagBuilder(tagName: "form"); + var htmlGenerator = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object); + htmlGenerator + .Setup(realHelper => realHelper.GenerateRouteForm( + htmlHelper.ViewContext, + routeName, + null, // routeValues + FormMethod.Post.ToString().ToLowerInvariant(), + null)) // htmlAttributes + .Returns(tagBuilder) + .Verifiable(); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginRouteForm(routeName); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal("", builder.ToString()); + htmlGenerator.Verify(); + } + + [Theory] + [MemberData(nameof(RouteNameAndRouteValuesDataSet))] + public void BeginRouteFormWithRouteNameAndRouteValuesParameters_CallsHtmlGeneratorWithExpectedValues( + string routeName, + object routeValues) + { + // Arrange + var tagBuilder = new TagBuilder(tagName: "form"); + var htmlGenerator = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object); + htmlGenerator + .Setup(realHelper => realHelper.GenerateRouteForm( + htmlHelper.ViewContext, + routeName, + routeValues, + FormMethod.Post.ToString().ToLowerInvariant(), + null)) // htmlAttributes + .Returns(tagBuilder) + .Verifiable(); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginRouteForm(routeName, routeValues); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal("", builder.ToString()); + htmlGenerator.Verify(); + } + + [Theory] + [MemberData(nameof(RouteNameAndMethodDataSet))] + public void BeginRouteFormWithRouteNameAndMethodParameters_CallsHtmlGeneratorWithExpectedValues( + string routeName, + FormMethod method) + { + // Arrange + var tagBuilder = new TagBuilder(tagName: "form"); + var htmlGenerator = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object); + htmlGenerator + .Setup(realHelper => realHelper.GenerateRouteForm( + htmlHelper.ViewContext, + routeName, + null, // routeValues + method.ToString().ToLowerInvariant(), + null)) // htmlAttributes + .Returns(tagBuilder) + .Verifiable(); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginRouteForm(routeName, method); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal("", builder.ToString()); + htmlGenerator.Verify(); + } + + [Theory] + [MemberData(nameof(RouteNameRouteValuesAndMethodDataSet))] + public void BeginRouteFormWithRouteNameRouteValuesAndMethodParameters_CallsHtmlGeneratorWithExpectedValues( + string routeName, + object routeValues, + FormMethod method) + { + // Arrange + var tagBuilder = new TagBuilder(tagName: "form"); + var htmlGenerator = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object); + htmlGenerator + .Setup(realHelper => realHelper.GenerateRouteForm( + htmlHelper.ViewContext, + routeName, + routeValues, + method.ToString().ToLowerInvariant(), + null)) // htmlAttributes + .Returns(tagBuilder) + .Verifiable(); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginRouteForm(routeName, routeValues, method); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal("", builder.ToString()); + htmlGenerator.Verify(); + } + + [Theory] + [MemberData(nameof(RouteNameMethodAndHtmlAttributesDataSet))] + public void BeginRouteFormWithRouteNameMethodAndHtmlAttributesParameters_CallsHtmlGeneratorWithExpectedValues( + string routeName, + FormMethod method, + object htmlAttributes) + { + // Arrange + var tagBuilder = new TagBuilder(tagName: "form"); + var htmlGenerator = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(htmlGenerator.Object); + htmlGenerator + .Setup(realHelper => realHelper.GenerateRouteForm( + htmlHelper.ViewContext, + routeName, + null, // routeValues + method.ToString().ToLowerInvariant(), + htmlAttributes)) + .Returns(tagBuilder) + .Verifiable(); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginRouteForm(routeName, method, htmlAttributes); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal("", builder.ToString()); + htmlGenerator.Verify(); + } + } +} \ No newline at end of file diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperFormTest.cs b/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperFormTest.cs new file mode 100644 index 0000000000..c172157add --- /dev/null +++ b/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperFormTest.cs @@ -0,0 +1,281 @@ + +using System.Collections.Generic; +using System.IO; +using System.Linq; +using Microsoft.AspNet.Http; +using Moq; +using Xunit; + +namespace Microsoft.AspNet.Mvc.Rendering +{ + /// + /// Tests the 's and + /// methods. + /// + public class HtmlHelperFormTest + { + // actionName, controllerName, routeValues, method, htmlAttributes + public static TheoryData BeginFormDataSet + { + get + { + return new TheoryData + { + { + null, null, null, FormMethod.Get, null + }, + { + "Details", "Product", null, FormMethod.Get, null + }, + { + "Details", "Product", null, FormMethod.Post, null + }, + { + "Details", "Product", new { isprint = "false", showreviews = "false" }, FormMethod.Get, null + }, + { + "Details", "Product", new { isprint = "false", showreviews = "true" }, FormMethod.Post, null + }, + { + "Details", "Product", new { isprint = "true", showreviews = "false" }, FormMethod.Get, + new { p1_name = "p1-value" } + }, + { + "Details", "Product", new { isprint = "true", showreviews = "true" }, FormMethod.Post, + new { p1_name = "p1-value" } + }, + { + "Details", "Product", + new Dictionary { { "isprint", "false" }, { "showreviews", "false" }, }, + FormMethod.Get, + new Dictionary { { "p1-name", "p1-value" }, { "p2-name", "p2-value" } } + }, + { + "Details", "Product", + new Dictionary { { "isprint", "false" }, { "showreviews", "false" }, }, + FormMethod.Post, + new Dictionary { { "p1-name", "p1-value" }, { "p2-name", "p2-value" } } + }, + }; + } + } + + // routeName, routeValues, method, htmlAttributes + public static TheoryData BeginRouteFormDataSet + { + get + { + return new TheoryData + { + { + null, null, FormMethod.Get, null + }, + { + null, null, FormMethod.Post, null + }, + { + "default", null, FormMethod.Get, null + }, + { + "default", null, FormMethod.Post, null + }, + { + "default", new { isprint = "false", showreviews = "false" }, FormMethod.Get, null + }, + { + "default", new { isprint = "false", showreviews = "true" }, FormMethod.Post, null + }, + { + "default", new { isprint = "true", showreviews = "false" }, FormMethod.Get, + new { p1 = "p1-value" } + }, + { + "default", new { isprint = "true", showreviews = "true" }, FormMethod.Post, + new { p1 = "p1-value" } + }, + { + "default", + new Dictionary { { "isprint", "false" }, { "showreviews", "false" }, }, + FormMethod.Get, + new Dictionary { { "p1-name", "p1-value" }, { "p2-name", "p2-value" } } + }, + { + "default", + new Dictionary { { "isprint", "false" }, { "showreviews", "false" }, }, + FormMethod.Post, + new Dictionary { { "p1-name", "p1-value" }, { "p2-name", "p2-value" } } + }, + }; + } + + } + + [Fact] + public void BeginForm_RendersExpectedValues_WithDefaultArguments() + { + // Arrange + var pathBase = "/Base"; + var path = "/Path"; + var queryString = "?query=string"; + var expectedAction = pathBase + path + queryString; + var expectedStartTag = string.Format("", expectedAction); + + // IUrlHelper should not be used in this scenario. + var urlHelper = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(urlHelper.Object); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + Assert.NotNull(htmlHelper.ViewContext.HttpContext); + var request = htmlHelper.ViewContext.HttpContext.Request; + Assert.NotNull(request); + + // Set properties the IHtmlGenerator implementation should use in this scenario. + request.PathBase = new PathString(pathBase); + request.Path = new PathString(path); + request.QueryString = new QueryString(queryString); + + // Act + var mvcForm = htmlHelper.BeginForm( + actionName: null, + controllerName: null, + routeValues: null, + method: FormMethod.Post, + htmlAttributes: null); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal(expectedStartTag, builder.ToString()); + urlHelper.Verify(); + + builder.Clear(); + mvcForm.Dispose(); + Assert.Equal("", builder.ToString()); + } + + [Theory] + [MemberData(nameof(BeginFormDataSet))] + public void BeginForm_RendersExpectedValues( + string actionName, + string controllerName, + object routeValues, + FormMethod method, + object htmlAttributes) + { + // Arrange + var expectedAction = "http://localhost/Hello/World"; + var expectedStartTag = string.Format( + "
", + expectedAction, + method.ToString().ToLowerInvariant(), + GetHtmlAttributesAsString(htmlAttributes)); + + var urlHelper = new Mock(MockBehavior.Strict); + urlHelper + .Setup(realHelper => realHelper.Action( + actionName, + controllerName, + routeValues, + null, // protocol + null, // host + null)) // fragment + .Returns(expectedAction) + .Verifiable(); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(urlHelper.Object); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginForm(actionName, controllerName, routeValues, method, htmlAttributes); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal(expectedStartTag, builder.ToString()); + urlHelper.Verify(); + } + + [Theory] + [MemberData(nameof(BeginRouteFormDataSet))] + public void BeginRouteForm_RendersExpectedValues( + string routeName, + object routeValues, + FormMethod method, + object htmlAttributes) + { + // Arrange + var expectedAction = "http://localhost/Hello/World"; + var expectedStartTag = string.Format( + "", + expectedAction, + method.ToString().ToLowerInvariant(), + GetHtmlAttributesAsString(htmlAttributes)); + + var urlHelper = new Mock(MockBehavior.Strict); + urlHelper + .Setup(realHelper => realHelper.RouteUrl( + routeName, + routeValues, + null, // protocol + null, // host + null)) // fragment + .Returns(expectedAction) + .Verifiable(); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(urlHelper.Object); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + var mvcForm = htmlHelper.BeginRouteForm(routeName, routeValues, method, htmlAttributes); + + // Assert + Assert.NotNull(mvcForm); + Assert.Equal(expectedStartTag, builder.ToString()); + urlHelper.Verify(); + } + + [Fact] + public void EndForm_RendersExpectedValues() + { + // Arrange + // IUrlHelper should not be used in this scenario. + var urlHelper = new Mock(MockBehavior.Strict); + var htmlHelper = DefaultTemplatesUtilities.GetHtmlHelper(urlHelper.Object); + + // Guards + Assert.NotNull(htmlHelper.ViewContext); + var writer = htmlHelper.ViewContext.Writer as StringWriter; + Assert.NotNull(writer); + var builder = writer.GetStringBuilder(); + Assert.NotNull(builder); + + // Act + htmlHelper.EndForm(); + + // Assert + Assert.Equal("", builder.ToString()); + urlHelper.Verify(); + } + + private string GetHtmlAttributesAsString(object htmlAttributes) + { + var dictionary = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes); + return string.Join( + string.Empty, + dictionary.Select(keyValue => string.Format(" {0}=\"{1}\"", keyValue.Key, keyValue.Value))); + } + } +} \ No newline at end of file diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperHiddenTest.cs b/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperHiddenTest.cs index 1f4606aff5..330e3b3e34 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperHiddenTest.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/Rendering/HtmlHelperHiddenTest.cs @@ -49,7 +49,7 @@ namespace Microsoft.AspNet.Mvc.Rendering public void HiddenWithArgumentValueAndAttributes_UsesArgumentValue(object attributes, string expected) { // Arrange - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewData.Model.Property1 = "should-not-be-used"; // Act @@ -65,7 +65,7 @@ namespace Microsoft.AspNet.Mvc.Rendering // Arrange var expected = @""; var attributes = new { value = "attribute-value" }; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithNullModelAndNonNullViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithNullModelAndNonNullViewData()); helper.ViewData.Clear(); // Act @@ -82,7 +82,7 @@ namespace Microsoft.AspNet.Mvc.Rendering var expected = @""; var attributes = new { key = "value" }; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithNullModelAndNonNullViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithNullModelAndNonNullViewData()); // Act var result = helper.Hidden("Property1", "test", attributes); @@ -98,7 +98,7 @@ namespace Microsoft.AspNet.Mvc.Rendering var expected = @""; var attributes = new Dictionary { { "data-key", "value" } }; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithNullModelAndNonNullViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithNullModelAndNonNullViewData()); // Act var result = helper.Hidden("Property1", "test", attributes); @@ -112,7 +112,7 @@ namespace Microsoft.AspNet.Mvc.Rendering { // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewData.Model.Property1 = "test-value"; // Act @@ -127,7 +127,7 @@ namespace Microsoft.AspNet.Mvc.Rendering { // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewData.ModelState.Clear(); helper.ViewData.Model.Property1 = "property-value"; @@ -143,7 +143,7 @@ namespace Microsoft.AspNet.Mvc.Rendering { // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewData.ModelState.Clear(); helper.ViewData.Model.Property1 = "property-value"; @@ -159,7 +159,7 @@ namespace Microsoft.AspNet.Mvc.Rendering { // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewData.ModelState.Clear(); helper.ViewData.Clear(); helper.ViewData.Model.Property1 = "property-value"; @@ -176,7 +176,7 @@ namespace Microsoft.AspNet.Mvc.Rendering { // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewData.ModelState.Clear(); helper.ViewData.Clear(); helper.ViewData.Model.Property1 = null; @@ -194,7 +194,7 @@ namespace Microsoft.AspNet.Mvc.Rendering // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); var attributes = new Dictionary { { "baz", "BazValue" } }; // Act @@ -210,7 +210,7 @@ namespace Microsoft.AspNet.Mvc.Rendering // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "MyPrefix"; // Act @@ -225,7 +225,7 @@ namespace Microsoft.AspNet.Mvc.Rendering { // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "MyPrefix"; // Act @@ -241,7 +241,7 @@ namespace Microsoft.AspNet.Mvc.Rendering // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "MyPrefix"; helper.IdAttributeDotReplacement = "$"; helper.ViewData.ModelState.Clear(); @@ -262,7 +262,7 @@ namespace Microsoft.AspNet.Mvc.Rendering // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "MyPrefix"; helper.IdAttributeDotReplacement = "$"; helper.ViewData.ModelState.Clear(); @@ -282,7 +282,7 @@ namespace Microsoft.AspNet.Mvc.Rendering public void HiddenWithEmptyNameAndPrefixThrows() { // Arrange - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); var attributes = new Dictionary { { "class", "some-class"} @@ -299,7 +299,7 @@ namespace Microsoft.AspNet.Mvc.Rendering // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithErrors()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithErrors()); var attributes = new Dictionary { { "baz", "BazValue" }, @@ -319,7 +319,7 @@ namespace Microsoft.AspNet.Mvc.Rendering // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); // Act var result = helper.Hidden("Property2", value: null, htmlAttributes: null); @@ -364,7 +364,7 @@ namespace Microsoft.AspNet.Mvc.Rendering viewData["Property3[height]"] = "Prop3Value"; viewData["Property4.Property5"] = "Prop5Value"; viewData["Property4.Property6[0]"] = "Prop6Value"; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(viewData); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(viewData); var attributes = new Dictionary { { "data-test", "val" } }; // Act @@ -403,7 +403,7 @@ namespace Microsoft.AspNet.Mvc.Rendering viewData["Property3[height]"] = "Prop3Value"; viewData["Property4.Property5"] = "Prop5Value"; viewData["Property4.Property6[0]"] = "Prop6Value"; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(viewData); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(viewData); helper.IdAttributeDotReplacement = "$$"; var attributes = new Dictionary { { "data-test", "val" } }; @@ -419,7 +419,7 @@ namespace Microsoft.AspNet.Mvc.Rendering { // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewData.Model.Bytes = new byte[] { 23, 43, 53 }; // Act @@ -434,7 +434,7 @@ namespace Microsoft.AspNet.Mvc.Rendering public void HiddenForWithAttributes_GeneratesExpectedValue(object htmlAttributes, string expected) { // Arrange - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewData.Model.Property1 = "test"; // Act @@ -449,7 +449,7 @@ namespace Microsoft.AspNet.Mvc.Rendering { // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewData.Model.Property1 = "DefaultValue"; // Act @@ -464,7 +464,7 @@ namespace Microsoft.AspNet.Mvc.Rendering { // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewData.ModelState.Clear(); helper.ViewData.Model.Property1 = "PropertyValue"; @@ -480,7 +480,7 @@ namespace Microsoft.AspNet.Mvc.Rendering { // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewData.Model.Property1 = null; helper.ViewData.ModelState.Clear(); @@ -496,7 +496,7 @@ namespace Microsoft.AspNet.Mvc.Rendering { // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithNullModelAndNonNullViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithNullModelAndNonNullViewData()); var attributes = new Dictionary { { "key", "value" } }; // Act @@ -513,7 +513,7 @@ namespace Microsoft.AspNet.Mvc.Rendering // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewData.Model.Property1 = "propValue"; helper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "MyPrefix"; @@ -530,7 +530,7 @@ namespace Microsoft.AspNet.Mvc.Rendering // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithModelStateAndModelAndViewDataValues()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithModelStateAndModelAndViewDataValues()); helper.ViewData.Model.Property1 = "propValue"; helper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "MyPrefix"; helper.IdAttributeDotReplacement = "$"; @@ -552,7 +552,7 @@ namespace Microsoft.AspNet.Mvc.Rendering // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithErrors()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithErrors()); var attributes = new Dictionary { { "baz", "BazValue" }, @@ -572,7 +572,7 @@ namespace Microsoft.AspNet.Mvc.Rendering // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithErrors()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithErrors()); // Act var result = helper.HiddenFor(m => m.Property2, htmlAttributes: null); @@ -628,7 +628,7 @@ namespace Microsoft.AspNet.Mvc.Rendering viewData.Model.Property4.Property5 = "ModelProp5Val"; viewData.Model.Property4.Property6.Add("ModelProp6Val"); - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(viewData); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(viewData); var attributes = new Dictionary { { "data-val", "true" }, @@ -679,7 +679,7 @@ namespace Microsoft.AspNet.Mvc.Rendering viewData.ModelState.Add("pre.Property4.Property5", GetModelState("Prop5Val")); viewData.ModelState.Add("pre.Property4.Property6[0]", GetModelState("Prop6Val")); - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(viewData); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(viewData); viewData.TemplateInfo.HtmlFieldPrefix = "pre"; var attributes = new { data_val = "true", value = "attr-val" }; @@ -695,7 +695,7 @@ namespace Microsoft.AspNet.Mvc.Rendering { // Arrange var expected = @""; - var helper = DefaultTemplatesUtilities.GetHtmlHelperForViewData(GetViewDataWithNullModelAndNonNullViewData()); + var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetViewDataWithNullModelAndNonNullViewData()); var attributes = new Dictionary { { "value", "AttrValue" }