public void HiddenInputTemplateTests() { Assert.AreEqual( @"Hidden Value<input id=""FieldPrefix"" name=""FieldPrefix"" type=""hidden"" value=""Hidden Value"" />", DefaultEditorTemplates.HiddenInputTemplate(MakeHtmlHelper <string>("Hidden Value"))); Assert.AreEqual( @"<script>alert('XSS!')</script><input id=""FieldPrefix"" name=""FieldPrefix"" type=""hidden"" value=""<script>alert('XSS!')</script>"" />", DefaultEditorTemplates.HiddenInputTemplate(MakeHtmlHelper <string>("<script>alert('XSS!')</script>"))); var helperWithInvisibleHtml = MakeHtmlHelper <string>("<script>alert('XSS!')</script>", "<b>Encode me!</b>"); helperWithInvisibleHtml.ViewData.ModelMetadata.HideSurroundingHtml = true; Assert.AreEqual( @"<input id=""FieldPrefix"" name=""FieldPrefix"" type=""hidden"" value=""<script>alert('XSS!')</script>"" />", DefaultEditorTemplates.HiddenInputTemplate(helperWithInvisibleHtml)); byte[] byteValues = { 1, 2, 3, 4, 5 }; Assert.AreEqual( @""AQIDBAU="<input id=""FieldPrefix"" name=""FieldPrefix"" type=""hidden"" value=""AQIDBAU="" />", DefaultEditorTemplates.HiddenInputTemplate(MakeHtmlHelper <Binary>(new Binary(byteValues)))); Assert.AreEqual( @"System.Byte[]<input id=""FieldPrefix"" name=""FieldPrefix"" type=""hidden"" value=""AQIDBAU="" />", DefaultEditorTemplates.HiddenInputTemplate(MakeHtmlHelper <byte[]>(byteValues))); }
public void HiddenInputTemplate_HonoursHideSurroundingHtml() { // Arrange var expected = "<input id=\"HtmlEncode[[FieldPrefix]]\" name=\"HtmlEncode[[FieldPrefix]]\" type=\"HtmlEncode[[hidden]]\" value=\"HtmlEncode[[Model string]]\" />"; var model = "Model string"; var provider = new TestModelMetadataProvider(); provider.ForType <string>().DisplayDetails(dd => { dd.HideSurroundingHtml = true; }); var html = DefaultTemplatesUtilities.GetHtmlHelper(model, provider: provider); var templateInfo = html.ViewData.TemplateInfo; templateInfo.HtmlFieldPrefix = "FieldPrefix"; templateInfo.FormattedModelValue = "Formatted string"; // Act var result = DefaultEditorTemplates.HiddenInputTemplate(html); // Assert Assert.Equal(expected, result); }
public void HiddenInputTemplate_ReturnsValueAndHiddenInput() { // Arrange var expected = "Formatted string<input id=\"FieldPrefix\" name=\"FieldPrefix\" type=\"hidden\" value=\"Model string\" />"; var model = "Model string"; var html = DefaultTemplatesUtilities.GetHtmlHelper(model); var templateInfo = html.ViewData.TemplateInfo; templateInfo.HtmlFieldPrefix = "FieldPrefix"; // TemplateBuilder sets FormattedModelValue before calling TemplateRenderer and it's used below. templateInfo.FormattedModelValue = "Formatted string"; // Act var result = DefaultEditorTemplates.HiddenInputTemplate(html); // Assert Assert.Equal(expected, result); }
public void HiddenInputTemplate_HonoursHideSurroundingHtml() { // Arrange var expected = "<input id=\"FieldPrefix\" name=\"FieldPrefix\" type=\"hidden\" value=\"Model string\" />"; var model = "Model string"; var html = DefaultTemplatesUtilities.GetHtmlHelper(model); var viewData = html.ViewData; viewData.ModelMetadata.HideSurroundingHtml = true; var templateInfo = viewData.TemplateInfo; templateInfo.HtmlFieldPrefix = "FieldPrefix"; templateInfo.FormattedModelValue = "Formatted string"; // Act var result = DefaultEditorTemplates.HiddenInputTemplate(html); // Assert Assert.Equal(expected, result); }