public void SetUp() { TestHelper.SetupLog4NetForTests(); Umbraco.Core.Configuration.UmbracoSettings.UseLegacyXmlSchema = false; _httpContextFactory = new FakeHttpContextFactory("~/Home"); //ensure the StateHelper is using our custom context StateHelper.HttpContext = _httpContextFactory.HttpContext; _umbracoContext = new UmbracoContext(_httpContextFactory.HttpContext, new ApplicationContext(), new DefaultRoutesCache(false)); _umbracoContext.GetXmlDelegate = () => { var xDoc = new XmlDocument(); //create a custom xml structure to return xDoc.LoadXml(GetXml()); //return the custom x doc return xDoc; }; _publishedContentStore = new DefaultPublishedContentStore(); }
public void SetUp() { TestHelper.SetupLog4NetForTests(); //create the app context ApplicationContext.Current = new ApplicationContext(false); _httpContextFactory = new FakeHttpContextFactory("~/Home"); //ensure the StateHelper is using our custom context StateHelper.HttpContext = _httpContextFactory.HttpContext; UmbracoSettings.UseLegacyXmlSchema = false; var cache = new PublishedContentCache { GetXmlDelegate = (context, preview) => { var doc = new XmlDocument(); doc.LoadXml(GetXml()); return doc; } }; _umbracoContext = new UmbracoContext( _httpContextFactory.HttpContext, ApplicationContext.Current, new PublishedCaches(cache, new PublishedMediaCache())); _cache = _umbracoContext.ContentCache; }
/// <summary> /// Checks if the URL will be ignored in the RouteTable /// </summary> /// <param name="url"></param> /// <returns></returns> /// <remarks> /// MVCContrib has a similar one but is faulty: /// http://mvccontrib.codeplex.com/workitem/7173 /// </remarks> public static bool ShouldIgnoreRoute(this string url) { var http = new FakeHttpContextFactory(url); var r = RouteTable.Routes.GetRouteData(http.HttpContext); if (r == null) return false; return (r.RouteHandler is StopRoutingHandler); }
public void Ensure_All_Ancestor_ViewData_Is_Merged_Without_Data_Loss() { var http = new FakeHttpContextFactory("http://localhost"); //setup an heirarchy var rootViewCtx = new ViewContext { Controller = new MyController(), RequestContext = http.RequestContext, ViewData = new ViewDataDictionary() }; var parentViewCtx = new ViewContext { Controller = new MyController(), RequestContext = http.RequestContext, RouteData = new RouteData(), ViewData = new ViewDataDictionary() }; parentViewCtx.RouteData.DataTokens.Add("ParentActionViewContext", rootViewCtx); var controllerCtx = new ControllerContext(http.RequestContext, new MyController()) { RouteData = new RouteData() }; controllerCtx.RouteData.DataTokens.Add("ParentActionViewContext", parentViewCtx); //set up the view data with overlapping keys controllerCtx.Controller.ViewData["Test1"] = "Test1"; controllerCtx.Controller.ViewData["Test2"] = "Test2"; controllerCtx.Controller.ViewData["Test3"] = "Test3"; parentViewCtx.ViewData["Test2"] = "Test4"; parentViewCtx.ViewData["Test3"] = "Test5"; parentViewCtx.ViewData["Test4"] = "Test6"; rootViewCtx.ViewData["Test3"] = "Test7"; rootViewCtx.ViewData["Test4"] = "Test8"; rootViewCtx.ViewData["Test5"] = "Test9"; var filter = new ResultExecutingContext(controllerCtx, new ContentResult()) { RouteData = controllerCtx.RouteData }; var att = new MergeParentContextViewDataAttribute(); Assert.IsTrue(filter.IsChildAction); att.OnResultExecuting(filter); Assert.AreEqual(5, controllerCtx.Controller.ViewData.Count); Assert.AreEqual("Test1", controllerCtx.Controller.ViewData["Test1"]); Assert.AreEqual("Test2", controllerCtx.Controller.ViewData["Test2"]); Assert.AreEqual("Test3", controllerCtx.Controller.ViewData["Test3"]); Assert.AreEqual("Test6", controllerCtx.Controller.ViewData["Test4"]); Assert.AreEqual("Test9", controllerCtx.Controller.ViewData["Test5"]); }
public override void Initialize() { base.Initialize(); _httpContextFactory = new FakeHttpContextFactory("~/Home"); //ensure the StateHelper is using our custom context StateHelper.HttpContext = _httpContextFactory.HttpContext; var settings = SettingsForTests.GetMockSettings(); var contentMock = Mock.Get(settings.Content); contentMock.Setup(x => x.UseLegacyXmlSchema).Returns(false); SettingsForTests.ConfigureSettings(settings); _xml = new XmlDocument(); _xml.LoadXml(GetXml()); var cache = new PublishedContentCache { GetXmlDelegate = (context, preview) => _xml }; _umbracoContext = new UmbracoContext( _httpContextFactory.HttpContext, ApplicationContext.Current, new PublishedCaches(cache, new PublishedMediaCache()), new WebSecurity(_httpContextFactory.HttpContext, ApplicationContext.Current)); _cache = _umbracoContext.ContentCache; }
public void Ensure_Request_Routable(string url, bool assert) { var httpContextFactory = new FakeHttpContextFactory(url); var httpContext = httpContextFactory.HttpContext; var routingContext = GetRoutingContext(url); var umbracoContext = routingContext.UmbracoContext; var result = _module.EnsureUmbracoRoutablePage(umbracoContext, httpContext); Assert.AreEqual(assert, result); }
public override void Initialize() { base.Initialize(); _httpContextFactory = new FakeHttpContextFactory("~/Home"); //ensure the StateHelper is using our custom context StateHelper.HttpContext = _httpContextFactory.HttpContext; UmbracoSettings.UseLegacyXmlSchema = false; _xml = new XmlDocument(); _xml.LoadXml(GetXml()); var cache = new PublishedContentCache { GetXmlDelegate = (context, preview) => _xml }; _umbracoContext = new UmbracoContext( _httpContextFactory.HttpContext, ApplicationContext.Current, new PublishedCaches(cache, new PublishedMediaCache())); _cache = _umbracoContext.ContentCache; }
public void Is_Reserved_By_Route(string url, bool shouldMatch) { //reset the app config, we only want to test routes not the hard coded paths Umbraco.Core.Configuration.GlobalSettings.ReservedPaths = ""; Umbraco.Core.Configuration.GlobalSettings.ReservedUrls = ""; var routes = new RouteCollection(); routes.MapRoute( "Umbraco_default", "Umbraco/RenderMvc/{action}/{id}", new { controller = "RenderMvc", action = "Index", id = UrlParameter.Optional }); routes.MapRoute( "WebAPI", "api/{controller}/{id}", new { controller = "WebApiTestController", action = "Index", id = UrlParameter.Optional }); var context = new FakeHttpContextFactory(url); Assert.AreEqual( shouldMatch, Umbraco.Core.Configuration.GlobalSettings.IsReservedPathOrUrl(url, context.HttpContext, routes)); }
/// <summary> /// Return the route data for the url based on a mocked context /// </summary> /// <param name="routes"></param> /// <param name="requestUrl"></param> /// <returns></returns> public static RouteData GetDataForRoute(this RouteCollection routes, string requestUrl) { var context = new FakeHttpContextFactory(requestUrl); return routes.GetDataForRoute(context.HttpContext); }
public override void Setup() { base.Setup(); _ctx = new FakeHttpContextFactory("http://localhost/test"); _provider = new HttpRequestCacheProvider(() => _ctx.HttpContext); }