public void CreateController_DecoratedWithViewEnhanceViewEnginesAttribute_NewControllersViewEnginesHaveCustomTransformations() { //Arrange var controllerFactory = new FrontendControllerFactory(); controllerFactory.RegisterController(typeof(DummyEnhancedController).Name, typeof(DummyEnhancedController)); var viewEngine = new RazorViewEngine(); ViewEngines.Engines.Add(viewEngine); try { //Act var controller = (Controller)controllerFactory.CreateController(new DummyHttpContext().Request.RequestContext, "DummyEnhanced"); //Assert var controllerVe = controller.ViewEngineCollection.OfType <RazorViewEngine>().FirstOrDefault(); Assert.IsNotNull(controllerVe, "The newly created controller does not have the expected view engine."); Assert.IsTrue(controllerVe.ViewLocationFormats.Any(p => p.StartsWith("~/" + DummyEnhancedController.CustomControllerPath)), "The newly created controller does not have its custom path in the view locations."); } finally { ViewEngines.Engines.Remove(viewEngine); } }
public void CreateController_DummyController_NewControllerViewEnginesHaveAdditinalSearchPaths() { //Arrange var controllerFactory = new FrontendControllerFactory(); controllerFactory.RegisterController(typeof(DummyController).Name, typeof(DummyController)); var viewEngine = new RazorViewEngine(); ViewEngines.Engines.Add(viewEngine); try { //Act var controller = (Controller)controllerFactory.CreateController(new DummyHttpContext().Request.RequestContext, "Dummy"); //Assert var controllerVe = controller.ViewEngineCollection.OfType <RazorViewEngine>().FirstOrDefault(); Assert.IsNotNull(controllerVe, "The newly created controller does not have the expected view engine."); var containerVp = "~/" + FrontendManager.VirtualPathBuilder.GetVirtualPath(typeof(DummyController).Assembly); Assert.IsTrue(controllerVe.ViewLocationFormats.Any(v => v.StartsWith(containerVp)), "The newly created controller does not have its container path in the view locations."); } finally { ViewEngines.Engines.Remove(viewEngine); } }
private ViewEngineResult ViewResultFor(string view) { var controller = new NewsController(); var routeData = new RouteData(); routeData.Values["controller"] = "News"; controller.ControllerContext = new ControllerContext(new RequestContext(SystemManager.CurrentHttpContext, routeData), controller); FrontendControllerFactory.EnhanceViewEngines(controller); return(controller.ViewEngineCollection.FindView(controller.ControllerContext, view, null)); }
public void Designer_UsesPrecompiledView() { var controller = new DesignerController(); var routeData = new RouteData(); routeData.Values["controller"] = "Designer"; routeData.Values["widgetName"] = "News"; controller.ControllerContext = new ControllerContext(new RequestContext(SystemManager.CurrentHttpContext, routeData), controller); FrontendControllerFactory.EnhanceViewEngines(controller); var viewResult = controller.ViewEngineCollection.FindView(controller.ControllerContext, "Designer", null); Assert.IsNotNull(viewResult, "View result is null."); Assert.IsNotNull(viewResult.View, "The view was not found."); Assert.IsInstanceOfType <PrecompiledMvcView>(viewResult.View, "The view is not precompiled."); viewResult = controller.ViewEngineCollection.FindView(controller.ControllerContext, "DesignerView.Simple", null); Assert.IsNotNull(viewResult, "View result is null."); Assert.IsNotNull(viewResult.View, "The view was not found."); Assert.IsInstanceOfType <PrecompiledMvcView>(viewResult.View, "The view is not precompiled."); }