From dbffb8f458dd2338e35d72127b41e13d52b39b37 Mon Sep 17 00:00:00 2001 From: dougbu Date: Fri, 27 Jun 2014 15:28:09 -0700 Subject: [PATCH] Add a few more `Display()` and `Editor()` tests --- .../Html/Test/DisplayExtensionsTest.cs | 97 ++++++++++++++++ .../Html/Test/EditorExtensionsTest.cs | 105 ++++++++++++++++++ 2 files changed, 202 insertions(+) diff --git a/test/System.Web.Mvc.Test/Html/Test/DisplayExtensionsTest.cs b/test/System.Web.Mvc.Test/Html/Test/DisplayExtensionsTest.cs index 1de2fcdb..306d371a 100644 --- a/test/System.Web.Mvc.Test/Html/Test/DisplayExtensionsTest.cs +++ b/test/System.Web.Mvc.Test/Html/Test/DisplayExtensionsTest.cs @@ -228,6 +228,103 @@ public void UrlTemplate_AttributeAndHtmlEncodes( Assert.Equal(expectedResult, displayForModelResult); } + [Fact] + public void Display_FindsViewDataMember() + { + // Arrange + var model = new ObjectTemplateModel { Property1 = "Model string" }; + var viewData = new ViewDataDictionary(model); + viewData["Property1"] = "ViewData string"; + var html = MvcHelper.GetHtmlHelper(viewData); + + var viewContext = Mock.Get(html.ViewContext); + viewContext.Setup(c => c.TempData).Returns(new TempDataDictionary()); + viewContext.Setup(c => c.View).Returns(new DummyView()); + viewContext.Setup(c => c.Writer).Returns(TextWriter.Null); + + MvcHtmlString result; + using (new TemplateHelpersSafeScope()) + { + // Act + result = html.Display("Property1"); + } + + // Assert + Assert.Equal("ViewData string", result.ToString()); + } + + [Fact] + public void DisplayFor_FindsModel() + { + var model = new ObjectTemplateModel { Property1 = "Model string" }; + var viewData = new ViewDataDictionary(model); + viewData["Property1"] = "ViewData string"; + var html = MvcHelper.GetHtmlHelper(viewData); + + var viewContext = Mock.Get(html.ViewContext); + viewContext.Setup(c => c.TempData).Returns(new TempDataDictionary()); + viewContext.Setup(c => c.View).Returns(new DummyView()); + viewContext.Setup(c => c.Writer).Returns(TextWriter.Null); + + MvcHtmlString result; + using (new TemplateHelpersSafeScope()) + { + // Act + result = html.DisplayFor(m => m.Property1); + } + + // Assert + Assert.Equal("Model string", result.ToString()); + } + + [Fact] + public void Display_FindsModel_IfNoViewDataMember() + { + // Arrange + var model = new ObjectTemplateModel { Property1 = "Model string" }; + var viewData = new ViewDataDictionary(model); + var html = MvcHelper.GetHtmlHelper(viewData); + + var viewContext = Mock.Get(html.ViewContext); + viewContext.Setup(c => c.TempData).Returns(new TempDataDictionary()); + viewContext.Setup(c => c.View).Returns(new DummyView()); + viewContext.Setup(c => c.Writer).Returns(TextWriter.Null); + + MvcHtmlString result; + using (new TemplateHelpersSafeScope()) + { + // Act + result = html.Display("Property1"); + } + + // Assert + Assert.Equal("Model string", result.ToString()); + } + + [Fact] + public void DisplayFor_FindsModel_EvenIfNull() + { + var model = new ObjectTemplateModel(); + var viewData = new ViewDataDictionary(model); + viewData["Property1"] = "ViewData string"; + var html = MvcHelper.GetHtmlHelper(viewData); + + var viewContext = Mock.Get(html.ViewContext); + viewContext.Setup(c => c.TempData).Returns(new TempDataDictionary()); + viewContext.Setup(c => c.View).Returns(new DummyView()); + viewContext.Setup(c => c.Writer).Returns(TextWriter.Null); + + MvcHtmlString result; + using (new TemplateHelpersSafeScope()) + { + // Act + result = html.DisplayFor(m => m.Property1); + } + + // Assert + Assert.Empty(result.ToString()); + } + private class ObjectTemplateModel { public string Property1 { get; set; } diff --git a/test/System.Web.Mvc.Test/Html/Test/EditorExtensionsTest.cs b/test/System.Web.Mvc.Test/Html/Test/EditorExtensionsTest.cs index 709b4e2e..c99eb3ff 100644 --- a/test/System.Web.Mvc.Test/Html/Test/EditorExtensionsTest.cs +++ b/test/System.Web.Mvc.Test/Html/Test/EditorExtensionsTest.cs @@ -229,6 +229,111 @@ public void StringTemplate_AttributeEncodesText( Assert.Equal(expectedResult, editorForModelResult); } + [Fact] + public void Editor_FindsViewDataMember() + { + // Arrange + var model = new ObjectTemplateModel { Property1 = "Model string" }; + var viewData = new ViewDataDictionary(model); + viewData["Property1"] = "ViewData string"; + var html = MvcHelper.GetHtmlHelper(viewData); + + var viewContext = Mock.Get(html.ViewContext); + viewContext.Setup(c => c.TempData).Returns(new TempDataDictionary()); + viewContext.Setup(c => c.View).Returns(new DummyView()); + viewContext.Setup(c => c.Writer).Returns(TextWriter.Null); + + MvcHtmlString result; + using (new TemplateHelpersSafeScope()) + { + // Act + result = html.Editor("Property1"); + } + + // Assert + Assert.Equal( + "", + result.ToString()); + } + + [Fact] + public void EditorFor_FindsModel() + { + var model = new ObjectTemplateModel { Property1 = "Model string" }; + var viewData = new ViewDataDictionary(model); + viewData["Property1"] = "ViewData string"; + var html = MvcHelper.GetHtmlHelper(viewData); + + var viewContext = Mock.Get(html.ViewContext); + viewContext.Setup(c => c.TempData).Returns(new TempDataDictionary()); + viewContext.Setup(c => c.View).Returns(new DummyView()); + viewContext.Setup(c => c.Writer).Returns(TextWriter.Null); + + MvcHtmlString result; + using (new TemplateHelpersSafeScope()) + { + // Act + result = html.EditorFor(m => m.Property1); + } + + // Assert + Assert.Equal( + "", + result.ToString()); + } + + [Fact] + public void Editor_FindsModel_IfNoViewDataMember() + { + // Arrange + var model = new ObjectTemplateModel { Property1 = "Model string" }; + var viewData = new ViewDataDictionary(model); + var html = MvcHelper.GetHtmlHelper(viewData); + + var viewContext = Mock.Get(html.ViewContext); + viewContext.Setup(c => c.TempData).Returns(new TempDataDictionary()); + viewContext.Setup(c => c.View).Returns(new DummyView()); + viewContext.Setup(c => c.Writer).Returns(TextWriter.Null); + + MvcHtmlString result; + using (new TemplateHelpersSafeScope()) + { + // Act + result = html.Editor("Property1"); + } + + // Assert + Assert.Equal( + "", + result.ToString()); + } + + [Fact] + public void EditorFor_FindsModel_EvenIfNull() + { + var model = new ObjectTemplateModel(); + var viewData = new ViewDataDictionary(model); + viewData["Property1"] = "ViewData string"; + var html = MvcHelper.GetHtmlHelper(viewData); + + var viewContext = Mock.Get(html.ViewContext); + viewContext.Setup(c => c.TempData).Returns(new TempDataDictionary()); + viewContext.Setup(c => c.View).Returns(new DummyView()); + viewContext.Setup(c => c.Writer).Returns(TextWriter.Null); + + MvcHtmlString result; + using (new TemplateHelpersSafeScope()) + { + // Act + result = html.EditorFor(m => m.Property1); + } + + // Assert + Assert.Equal( + "", + result.ToString()); + } + private class ObjectTemplateModel { public string Property1 { get; set; }