public void BackOfficeRouting_Ensure_Plugin_Tree_Url_Structures() { //Arrange var context = new FakeHttpContextFactory("~/empty", new RouteData()); var contentTree = new Stubs.Trees.ContentTreeController(new FakeBackOfficeRequestContext()); var contentControllerName = RebelController.GetControllerName(contentTree.GetType()); var contentControllerId = RebelController.GetControllerId <TreeAttribute>(contentTree.GetType()); var mediaTree = new Stubs.Trees.MediaTreeController(new FakeBackOfficeRequestContext()); var mediaTreeControllerName = RebelController.GetControllerName(mediaTree.GetType()); var mediaTreeControllerId = RebelController.GetControllerId <TreeAttribute>(mediaTree.GetType()); const string action = "Index"; var defaultId = HiveId.Empty; const int customId = 123; const string area = "TestPackage"; //Act //ensure the area is passed in because we're matchin a URL in an area, otherwise it will not work var contentTreeDefaultUrl = UrlHelper.GenerateUrl(null, action, contentControllerName, new RouteValueDictionary(new { area, id = defaultId, treeId = contentControllerId.ToString("N") }), RouteTable.Routes, context.RequestContext, true); var mediaTreeDefaultUrl = UrlHelper.GenerateUrl(null, action, mediaTreeControllerName, new RouteValueDictionary(new { area, id = defaultId, treeId = mediaTreeControllerId.ToString("N") }), RouteTable.Routes, context.RequestContext, true); var contentTreeCustomUrl = UrlHelper.GenerateUrl(null, action, contentControllerName, new RouteValueDictionary(new { area, id = customId, treeId = contentControllerId.ToString("N") }), RouteTable.Routes, context.RequestContext, true); var mediaTreeCustomUrl = UrlHelper.GenerateUrl(null, action, mediaTreeControllerName, new RouteValueDictionary(new { area, id = customId, treeId = mediaTreeControllerId.ToString("N") }), RouteTable.Routes, context.RequestContext, true); //Assert //Assert.AreEqual(string.Format("/Rebel/TestPackage/Trees/{0}/{1}", contentControllerId.ToString("N"), contentControllerName), contentTreeDefaultUrl); //Assert.AreEqual(string.Format("/Rebel/TestPackage/Trees/{0}/{1}", mediaTreeControllerId.ToString("N"), mediaTreeControllerName), mediaTreeDefaultUrl); //Assert.AreEqual(string.Format("/Rebel/TestPackage/Trees/{0}/{1}/{2}/{3}", contentControllerId.ToString("N"), contentControllerName, action, customId), contentTreeCustomUrl); //Assert.AreEqual(string.Format("/Rebel/TestPackage/Trees/{0}/{1}/{2}/{3}", mediaTreeControllerId.ToString("N"), mediaTreeControllerName, action, customId), mediaTreeCustomUrl); Assert.AreEqual(string.Format("/Rebel/TestPackage/{0}", contentControllerName), contentTreeDefaultUrl); Assert.AreEqual(string.Format("/Rebel/TestPackage/{0}", mediaTreeControllerName), mediaTreeDefaultUrl); Assert.AreEqual(string.Format("/Rebel/TestPackage/{0}/{1}/{2}", contentControllerName, action, customId), contentTreeCustomUrl); Assert.AreEqual(string.Format("/Rebel/TestPackage/{0}/{1}/{2}", mediaTreeControllerName, action, customId), mediaTreeCustomUrl); }
public void BackOfficeRouting_Ensure_Plugin_Tree_Url_Structures() { //Arrange var context = new FakeHttpContextFactory("~/empty", new RouteData()); var contentTree = new Stubs.Trees.ContentTreeController(new FakeBackOfficeRequestContext()); var contentControllerName = UmbracoController.GetControllerName(contentTree.GetType()); var contentControllerId = UmbracoController.GetControllerId<TreeAttribute>(contentTree.GetType()); var mediaTree = new Stubs.Trees.MediaTreeController(new FakeBackOfficeRequestContext()); var mediaTreeControllerName = UmbracoController.GetControllerName(mediaTree.GetType()); var mediaTreeControllerId = UmbracoController.GetControllerId<TreeAttribute>(mediaTree.GetType()); const string action = "Index"; var defaultId = HiveId.Empty; const int customId = 123; const string area = "TestPackage"; //Act //ensure the area is passed in because we're matchin a URL in an area, otherwise it will not work var contentTreeDefaultUrl = UrlHelper.GenerateUrl(null, action, contentControllerName, new RouteValueDictionary(new { area, id = defaultId, treeId = contentControllerId.ToString("N") }), RouteTable.Routes, context.RequestContext, true); var mediaTreeDefaultUrl = UrlHelper.GenerateUrl(null, action, mediaTreeControllerName, new RouteValueDictionary(new { area, id = defaultId, treeId = mediaTreeControllerId.ToString("N") }), RouteTable.Routes, context.RequestContext, true); var contentTreeCustomUrl = UrlHelper.GenerateUrl(null, action, contentControllerName, new RouteValueDictionary(new { area, id = customId, treeId = contentControllerId.ToString("N") }), RouteTable.Routes, context.RequestContext, true); var mediaTreeCustomUrl = UrlHelper.GenerateUrl(null, action, mediaTreeControllerName, new RouteValueDictionary(new { area, id = customId, treeId = mediaTreeControllerId.ToString("N") }), RouteTable.Routes, context.RequestContext, true); //Assert //Assert.AreEqual(string.Format("/Umbraco/TestPackage/Trees/{0}/{1}", contentControllerId.ToString("N"), contentControllerName), contentTreeDefaultUrl); //Assert.AreEqual(string.Format("/Umbraco/TestPackage/Trees/{0}/{1}", mediaTreeControllerId.ToString("N"), mediaTreeControllerName), mediaTreeDefaultUrl); //Assert.AreEqual(string.Format("/Umbraco/TestPackage/Trees/{0}/{1}/{2}/{3}", contentControllerId.ToString("N"), contentControllerName, action, customId), contentTreeCustomUrl); //Assert.AreEqual(string.Format("/Umbraco/TestPackage/Trees/{0}/{1}/{2}/{3}", mediaTreeControllerId.ToString("N"), mediaTreeControllerName, action, customId), mediaTreeCustomUrl); Assert.AreEqual(string.Format("/Umbraco/TestPackage/{0}", contentControllerName), contentTreeDefaultUrl); Assert.AreEqual(string.Format("/Umbraco/TestPackage/{0}", mediaTreeControllerName), mediaTreeDefaultUrl); Assert.AreEqual(string.Format("/Umbraco/TestPackage/{0}/{1}/{2}", contentControllerName, action, customId), contentTreeCustomUrl); Assert.AreEqual(string.Format("/Umbraco/TestPackage/{0}/{1}/{2}", mediaTreeControllerName, action, customId), mediaTreeCustomUrl); }