public void ObjectTemplate_HonorsHideSurroundingHtml() { // Arrange var expected = "Model = p1, ModelType = System.String, PropertyName = Property1, SimpleDisplayText = p1" + "<div class=\"HtmlEncode[[display-label]]\">HtmlEncode[[Prop2]]</div>" + Environment.NewLine + "<div class=\"HtmlEncode[[display-field]]\">Model = (null), ModelType = System.String, PropertyName = Property2," + " SimpleDisplayText = (null)</div>" + Environment.NewLine; var model = new DefaultTemplatesUtilities.ObjectTemplateModel { Property1 = "p1", Property2 = null }; var provider = new TestModelMetadataProvider(); provider.ForProperty <DefaultTemplatesUtilities.ObjectTemplateModel>("Property1").DisplayDetails(dd => { dd.HideSurroundingHtml = true; }); var html = DefaultTemplatesUtilities.GetHtmlHelper(model, provider); // Act var result = DefaultDisplayTemplates.ObjectTemplate(html); // Assert Assert.Equal(expected, HtmlContentUtilities.HtmlContentToString(result)); }
public void ObjectTemplateDisplaysSimpleDisplayTextWhenTemplateDepthGreaterThanOne( string simpleDisplayText, bool htmlEncode, string expectedResult) { // Arrange var model = new DefaultTemplatesUtilities.ObjectTemplateModel(); model.Property1 = simpleDisplayText; var provider = new TestModelMetadataProvider(); provider.ForType <DefaultTemplatesUtilities.ObjectTemplateModel>().DisplayDetails(dd => { dd.HtmlEncode = htmlEncode; dd.SimpleDisplayProperty = "Property1"; }); var html = DefaultTemplatesUtilities.GetHtmlHelper(model, provider); html.ViewData.TemplateInfo.AddVisited("foo"); html.ViewData.TemplateInfo.AddVisited("bar"); // Act var result = DefaultDisplayTemplates.ObjectTemplate(html); // Assert Assert.Equal(expectedResult, HtmlContentUtilities.HtmlContentToString(result)); }
public void DisplayFor_DoesNotWrapExceptionThrowsDuringViewRendering() { // Arrange var expectedMessage = "my exception message"; var model = new DefaultTemplatesUtilities.ObjectTemplateModel { Property1 = "Test string", }; var view = new Mock<IView>(); view.Setup(v => v.RenderAsync(It.IsAny<ViewContext>())) .Returns(Task.Run(() => { throw new ArgumentException(expectedMessage); })); var viewEngine = new Mock<ICompositeViewEngine>(MockBehavior.Strict); viewEngine .Setup(v => v.GetView(/*executingFilePath*/ null, It.IsAny<string>(), /*isMainPage*/ false)) .Returns(ViewEngineResult.NotFound(string.Empty, Enumerable.Empty<string>())); viewEngine .Setup(v => v.FindView(It.IsAny<ActionContext>(), It.IsAny<string>(), /*isMainPage*/ false)) .Returns(ViewEngineResult.Found("test-view", view.Object)); var helper = DefaultTemplatesUtilities.GetHtmlHelper(model, viewEngine.Object); helper.ViewData["Property1"] = "ViewData string"; // Act and Assert var ex = Assert.Throws<ArgumentException>(() => helper.DisplayFor(m => m.Property1)); Assert.Equal(expectedMessage, ex.Message); }
public void DisplayFor_DoesNotWrapExceptionThrowsDuringViewRendering() { // Arrange var expectedMessage = "my exception message"; var model = new DefaultTemplatesUtilities.ObjectTemplateModel { Property1 = "Test string", }; var view = new Mock <IView>(); view.Setup(v => v.RenderAsync(It.IsAny <ViewContext>())) .Returns(Task.Run(() => { throw new ArgumentException(expectedMessage); })); var viewEngine = new Mock <ICompositeViewEngine>(MockBehavior.Strict); viewEngine .Setup(v => v.GetView(/*executingFilePath*/ null, It.IsAny <string>(), /*isMainPage*/ false)) .Returns(ViewEngineResult.NotFound(string.Empty, Enumerable.Empty <string>())); viewEngine .Setup(v => v.FindView(It.IsAny <ActionContext>(), It.IsAny <string>(), /*isMainPage*/ false)) .Returns(ViewEngineResult.Found("test-view", view.Object)); var helper = DefaultTemplatesUtilities.GetHtmlHelper(model, viewEngine.Object); helper.ViewData["Property1"] = "ViewData string"; // Act and Assert var ex = Assert.Throws <ArgumentException>(() => helper.DisplayFor(m => m.Property1)); Assert.Equal(expectedMessage, ex.Message); }
public void Display_FindsModel_IfNoViewDataMember() { // Arrange var model = new DefaultTemplatesUtilities.ObjectTemplateModel { Property1 = "Model string" }; var viewEngine = new Mock <ICompositeViewEngine>(); viewEngine .Setup(v => v.FindPartialView(It.IsAny <ActionContext>(), It.IsAny <string>())) .Returns(ViewEngineResult.NotFound("", Enumerable.Empty <string>())); var helper = DefaultTemplatesUtilities.GetHtmlHelper(model, viewEngine.Object); // Act var result = helper.Display("Property1"); // Assert Assert.Equal("HtmlEncode[[Model string]]", HtmlContentUtilities.HtmlContentToString(result)); }
public void ObjectTemplateDisplaysSimpleDisplayTextWhenTemplateDepthGreaterThanOne() { // Arrange var model = new DefaultTemplatesUtilities.ObjectTemplateModel(); var html = DefaultTemplatesUtilities.GetHtmlHelper(model); var metadata = new EmptyModelMetadataProvider() .GetMetadataForType(() => model, typeof(DefaultTemplatesUtilities.ObjectTemplateModel)); metadata.SimpleDisplayText = "Simple Display Text"; html.ViewData.ModelMetadata = metadata; html.ViewData.TemplateInfo.AddVisited("foo"); html.ViewData.TemplateInfo.AddVisited("bar"); // Act var result = DefaultDisplayTemplates.ObjectTemplate(html); // Assert Assert.Equal(metadata.SimpleDisplayText, result); }
public void ObjectTemplateDisplaysSimplePropertiesOnObjectByDefault() { var expected = "<div class=\"HtmlEncode[[display-label]]\">HtmlEncode[[Property1]]</div>" + Environment.NewLine + "<div class=\"HtmlEncode[[display-field]]\">Model = p1, ModelType = System.String, PropertyName = Property1," + " SimpleDisplayText = p1</div>" + Environment.NewLine + "<div class=\"HtmlEncode[[display-label]]\">HtmlEncode[[Prop2]]</div>" + Environment.NewLine + "<div class=\"HtmlEncode[[display-field]]\">Model = (null), ModelType = System.String, PropertyName = Property2," + " SimpleDisplayText = (null)</div>" + Environment.NewLine; // Arrange var model = new DefaultTemplatesUtilities.ObjectTemplateModel { Property1 = "p1", Property2 = null }; var html = DefaultTemplatesUtilities.GetHtmlHelper(model); // Act var result = DefaultDisplayTemplates.ObjectTemplate(html); // Assert Assert.Equal(expected, HtmlContentUtilities.HtmlContentToString(result)); }
public void ObjectTemplateEditsSimplePropertiesOnObjectByDefault() { var expected = "<div class=\"editor-label\"><label for=\"Property1\">Property1</label></div>" + Environment.NewLine + "<div class=\"editor-field\">Model = p1, ModelType = System.String, PropertyName = Property1," + " SimpleDisplayText = p1 </div>" + Environment.NewLine + "<div class=\"editor-label\"><label for=\"Property2\">Property2</label></div>" + Environment.NewLine + "<div class=\"editor-field\">Model = (null), ModelType = System.String, PropertyName = Property2," + " SimpleDisplayText = (null) </div>" + Environment.NewLine; // Arrange var model = new DefaultTemplatesUtilities.ObjectTemplateModel { Property1 = "p1", Property2 = null }; var html = DefaultTemplatesUtilities.GetHtmlHelper(model); // Act var result = DefaultEditorTemplates.ObjectTemplate(html); // Assert Assert.Equal(expected, result); }
public void DisplayFor_FindsModel_EvenIfNullOrEmpty(string propertyValue) { // Arrange var model = new DefaultTemplatesUtilities.ObjectTemplateModel { Property1 = propertyValue, }; var viewEngine = new Mock <ICompositeViewEngine>(); viewEngine .Setup(v => v.FindPartialView(It.IsAny <ActionContext>(), It.IsAny <string>())) .Returns(ViewEngineResult.NotFound("", Enumerable.Empty <string>())); var helper = DefaultTemplatesUtilities.GetHtmlHelper(model, viewEngine.Object); helper.ViewData["Property1"] = "ViewData string"; // Act var result = helper.DisplayFor(m => m.Property1); // Assert Assert.Equal(string.Empty, HtmlContentUtilities.HtmlContentToString(result)); }
public void Display_FindsModel_IfNoViewDataMember() { // Arrange var model = new DefaultTemplatesUtilities.ObjectTemplateModel { Property1 = "Model string" }; var viewEngine = new Mock <ICompositeViewEngine>(MockBehavior.Strict); viewEngine .Setup(v => v.GetView(/*executingFilePath*/ null, It.IsAny <string>(), /*isMainPage*/ false)) .Returns(ViewEngineResult.NotFound(string.Empty, Enumerable.Empty <string>())); viewEngine .Setup(v => v.FindView(It.IsAny <ActionContext>(), It.IsAny <string>(), /*isMainPage*/ false)) .Returns(ViewEngineResult.NotFound(string.Empty, Enumerable.Empty <string>())); var helper = DefaultTemplatesUtilities.GetHtmlHelper(model, viewEngine.Object); // Act var result = helper.Display("Property1"); // Assert Assert.Equal("HtmlEncode[[Model string]]", HtmlContentUtilities.HtmlContentToString(result)); }
public void ObjectTemplate_HonoursHideSurroundingHtml() { // Arrange var expected = "Model = p1, ModelType = System.String, PropertyName = Property1, SimpleDisplayText = p1" + "<div class=\"HtmlEncode[[display-label]]\">HtmlEncode[[Prop2]]</div>" + Environment.NewLine + "<div class=\"HtmlEncode[[display-field]]\">Model = (null), ModelType = System.String, PropertyName = Property2," + " SimpleDisplayText = (null)</div>" + Environment.NewLine; var model = new DefaultTemplatesUtilities.ObjectTemplateModel { Property1 = "p1", Property2 = null }; var provider = new TestModelMetadataProvider(); provider.ForProperty<DefaultTemplatesUtilities.ObjectTemplateModel>("Property1").DisplayDetails(dd => { dd.HideSurroundingHtml = true; }); var html = DefaultTemplatesUtilities.GetHtmlHelper(model, provider); // Act var result = DefaultDisplayTemplates.ObjectTemplate(html); // Assert Assert.Equal(expected, HtmlContentUtilities.HtmlContentToString(result)); }
public void DropDownList_WithModelValue_GeneratesExpectedValue( IEnumerable<SelectListItem> selectList, string ignoredHtml, string expectedHtml) { // Arrange var model = new DefaultTemplatesUtilities.ObjectTemplateModel { Property1 = "2" }; var helper = DefaultTemplatesUtilities.GetHtmlHelper(model); var savedSelected = selectList.Select(item => item.Selected).ToList(); // Act var html = helper.DropDownList("Property1", selectList, optionLabel: null, htmlAttributes: null); // Assert Assert.Equal(expectedHtml, html.ToString()); Assert.Equal(savedSelected, selectList.Select(item => item.Selected)); }
public void DisplayFor_FindsModel() { // Arrange var model = new DefaultTemplatesUtilities.ObjectTemplateModel { Property1 = "Model string" }; var viewEngine = new Mock<ICompositeViewEngine>(MockBehavior.Strict); viewEngine .Setup(v => v.GetView(/*executingFilePath*/ null, It.IsAny<string>(), /*isMainPage*/ false)) .Returns(ViewEngineResult.NotFound(string.Empty, Enumerable.Empty<string>())); viewEngine .Setup(v => v.FindView(It.IsAny<ActionContext>(), It.IsAny<string>(), /*isMainPage*/ false)) .Returns(ViewEngineResult.NotFound(string.Empty, Enumerable.Empty<string>())); var helper = DefaultTemplatesUtilities.GetHtmlHelper(model, viewEngine.Object); helper.ViewData["Property1"] = "ViewData string"; // Act var result = helper.DisplayFor(m => m.Property1); // Assert Assert.Equal("HtmlEncode[[Model string]]", HtmlContentUtilities.HtmlContentToString(result)); }
public void ObjectTemplateDisplaysSimpleDisplayTextWhenTemplateDepthGreaterThanOne( string simpleDisplayText, bool htmlEncode, string expectedResult) { // Arrange var model = new DefaultTemplatesUtilities.ObjectTemplateModel(); model.Property1 = simpleDisplayText; var provider = new TestModelMetadataProvider(); provider.ForType<DefaultTemplatesUtilities.ObjectTemplateModel>().DisplayDetails(dd => { dd.HtmlEncode = htmlEncode; dd.SimpleDisplayProperty = "Property1"; }); var html = DefaultTemplatesUtilities.GetHtmlHelper(model, provider); html.ViewData.TemplateInfo.AddVisited("foo"); html.ViewData.TemplateInfo.AddVisited("bar"); // Act var result = DefaultDisplayTemplates.ObjectTemplate(html); // Assert Assert.Equal(expectedResult, HtmlContentUtilities.HtmlContentToString(result)); }
public void EditorFor_FindsModel_EvenIfNullOrEmpty(string propertyValue) { // Arrange var model = new DefaultTemplatesUtilities.ObjectTemplateModel { Property1 = propertyValue, }; var viewEngine = new Mock<ICompositeViewEngine>(); viewEngine .Setup(v => v.FindPartialView(It.IsAny<ActionContext>(), It.IsAny<string>())) .Returns(ViewEngineResult.NotFound("", Enumerable.Empty<string>())); var helper = DefaultTemplatesUtilities.GetHtmlHelper(model, viewEngine.Object); helper.ViewData["Property1"] = "ViewData string"; // Act var result = helper.EditorFor(m => m.Property1); // Assert Assert.Equal( "<input class=\"text-box single-line\" id=\"Property1\" name=\"Property1\" type=\"text\" value=\"\" />", result.ToString()); }
public void DisplayFor_FindsModel_EvenIfNullOrEmpty(string propertyValue) { // Arrange var model = new DefaultTemplatesUtilities.ObjectTemplateModel { Property1 = propertyValue, }; var viewEngine = new Mock<ICompositeViewEngine>(); viewEngine .Setup(v => v.FindPartialView(It.IsAny<ActionContext>(), It.IsAny<string>())) .Returns(ViewEngineResult.NotFound("", Enumerable.Empty<string>())); var helper = DefaultTemplatesUtilities.GetHtmlHelper(model, viewEngine.Object); helper.ViewData["Property1"] = "ViewData string"; // Act var result = helper.DisplayFor(m => m.Property1); // Assert Assert.Equal(string.Empty, HtmlContentUtilities.HtmlContentToString(result)); }
public void DropDownListFor_WithModelValueAndNullSelectList_GeneratesExpectedValue( IEnumerable<SelectListItem> selectList, string ignoredHtml, string expectedHtml) { // Arrange var model = new DefaultTemplatesUtilities.ObjectTemplateModel { Property1 = "2" }; var helper = DefaultTemplatesUtilities.GetHtmlHelper(model); helper.ViewData["Property1"] = selectList; var savedSelected = selectList.Select(item => item.Selected).ToList(); // Act var html = helper.DropDownListFor( value => value.Property1, selectList: null, optionLabel: null, htmlAttributes: null); // Assert Assert.Equal(expectedHtml, HtmlContentUtilities.HtmlContentToString(html)); Assert.Equal(savedSelected, selectList.Select(item => item.Selected)); }
public void Display_FindsModel_IfNoViewDataMember() { // Arrange var model = new DefaultTemplatesUtilities.ObjectTemplateModel { Property1 = "Model string" }; var viewEngine = new Mock<ICompositeViewEngine>(); viewEngine .Setup(v => v.FindPartialView(It.IsAny<ActionContext>(), It.IsAny<string>())) .Returns(ViewEngineResult.NotFound("", Enumerable.Empty<string>())); var helper = DefaultTemplatesUtilities.GetHtmlHelper(model, viewEngine.Object); // Act var result = helper.Display("Property1"); // Assert Assert.Equal("HtmlEncode[[Model string]]", HtmlContentUtilities.HtmlContentToString(result)); }