Beispiel #1
0
        public void Umbraco_Route_User_Defined_Controller_Action(string templateName)
        {
            // NOTE - here we create templates with crazy aliases... assuming that these
            // could exist in the database... yet creating templates should sanitize
            // aliases one way or another...

            var template  = CreateTemplate(templateName);
            var route     = RouteTable.Routes["Umbraco_default"];
            var routeData = new RouteData()
            {
                Route = route
            };
            var routingContext = GetRoutingContext("~/dummy-page", template.Id, routeData, true);
            var docRequest     = new PublishedContentRequest(routingContext.UmbracoContext.CleanedUmbracoUrl, routingContext)
            {
                PublishedContent = routingContext.UmbracoContext.ContentCache.GetById(1172),
                TemplateModel    = template
            };

            var handler = new RenderRouteHandler(new TestControllerFactory(), routingContext.UmbracoContext);

            handler.GetHandlerForRoute(routingContext.UmbracoContext.HttpContext.Request.RequestContext, docRequest);
            Assert.AreEqual("CustomDocument", routeData.Values["controller"].ToString());
            Assert.AreEqual(
                //global::umbraco.cms.helpers.Casing.SafeAlias(template.Alias),
                template.Alias.ToSafeAlias(),
                routeData.Values["action"].ToString());
        }
Beispiel #2
0
        public void Umbraco_Route_User_Defined_Controller_Action(string templateName)
        {
            // NOTE - here we create templates with crazy aliases... assuming that these
            // could exist in the database... yet creating templates should sanitize
            // aliases one way or another...

            var template  = CreateTemplate(templateName);
            var route     = RouteTable.Routes["Umbraco_default"];
            var routeData = new RouteData()
            {
                Route = route
            };
            var umbracoContext  = GetUmbracoContext("~/dummy-page", template.Id, routeData, true);
            var publishedRouter = CreatePublishedRouter();
            var frequest        = publishedRouter.CreateRequest(umbracoContext);

            frequest.PublishedContent = umbracoContext.ContentCache.GetById(1172);
            frequest.TemplateModel    = template;

            var type = new AutoPublishedContentType(22, "CustomDocument", new PublishedPropertyType[] { });

            ContentTypesCache.GetPublishedContentTypeByAlias = alias => type;

            var handler = new RenderRouteHandler(umbracoContext, new TestControllerFactory(umbracoContext, Mock.Of <ILogger>()));

            handler.GetHandlerForRoute(umbracoContext.HttpContext.Request.RequestContext, frequest);
            Assert.AreEqual("CustomDocument", routeData.Values["controller"].ToString());
            Assert.AreEqual(
                //global::umbraco.cms.helpers.Casing.SafeAlias(template.Alias),
                template.Alias.ToSafeAlias(),
                routeData.Values["action"].ToString());
        }
        public void Umbraco_Route_Umbraco_Defined_Controller_Action()
        {
            var template  = CreateTemplate("homePage");
            var route     = RouteTable.Routes["Umbraco_default"];
            var routeData = new RouteData()
            {
                Route = route
            };
            var routingContext = GetRoutingContext("~/dummy-page", template.Id, routeData);
            var docRequest     = new PublishedContentRequest(routingContext.UmbracoContext.CleanedUmbracoUrl, routingContext)
            {
                PublishedContent = routingContext.UmbracoContext.ContentCache.GetById(1174),
                TemplateModel    = template,
                RenderingEngine  = RenderingEngine.Mvc
            };

            var handler = new RenderRouteHandler(
                new TestControllerFactory(routingContext.UmbracoContext, Mock.Of <ILogger>()),
                routingContext.UmbracoContext);

            handler.GetHandlerForRoute(routingContext.UmbracoContext.HttpContext.Request.RequestContext, docRequest);
            Assert.AreEqual("RenderMvc", routeData.Values["controller"].ToString());
            //the route action will still be the one we've asked for because our RenderActionInvoker is the thing that decides
            // if the action matches.
            Assert.AreEqual("homePage", routeData.Values["action"].ToString());
        }
        public void Umbraco_Route_User_Defined_Controller_Action(string templateName)
        {
            // NOTE - here we create templates with crazy aliases... assuming that these
            // could exist in the database... yet creating templates should sanitize
            // aliases one way or another...

            var template  = CreateTemplate(templateName);
            var route     = RouteTable.Routes["Umbraco_default"];
            var routeData = new RouteData()
            {
                Route = route
            };
            var umbracoContext  = GetUmbracoContext("~/dummy-page", template.Id, routeData, true);
            var publishedRouter = CreatePublishedRouter();
            var frequest        = publishedRouter.CreateRequest(umbracoContext);

            frequest.PublishedContent = umbracoContext.ContentCache.GetById(1172);
            frequest.TemplateModel    = template;

            var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
            var type = new AutoPublishedContentType(22, "CustomDocument", new PublishedPropertyType[] { });

            ContentTypesCache.GetPublishedContentTypeByAlias = alias => type;

            var handler = new RenderRouteHandler(umbracoContext, new TestControllerFactory(umbracoContextAccessor, Mock.Of <ILogger>(), context =>
            {
                var membershipHelper = new MembershipHelper(
                    umbracoContext.HttpContext, Mock.Of <IPublishedMemberCache>(), Mock.Of <MembershipProvider>(), Mock.Of <RoleProvider>(), Mock.Of <IMemberService>(), Mock.Of <IMemberTypeService>(), Mock.Of <IUserService>(), Mock.Of <IPublicAccessService>(), Mock.Of <AppCaches>(), Mock.Of <ILogger>());
                return(new CustomDocumentController(Factory.GetInstance <IGlobalSettings>(),
                                                    umbracoContextAccessor,
                                                    Factory.GetInstance <ServiceContext>(),
                                                    Factory.GetInstance <AppCaches>(),
                                                    Factory.GetInstance <IProfilingLogger>(),
                                                    new UmbracoHelper(Mock.Of <IPublishedContent>(), Mock.Of <ITagQuery>(), Mock.Of <ICultureDictionaryFactory>(), Mock.Of <IUmbracoComponentRenderer>(), Mock.Of <IPublishedContentQuery>(), membershipHelper)));
            }));

            handler.GetHandlerForRoute(umbracoContext.HttpContext.Request.RequestContext, frequest);
            Assert.AreEqual("CustomDocument", routeData.Values["controller"].ToString());
            Assert.AreEqual(
                //global::umbraco.cms.helpers.Casing.SafeAlias(template.Alias),
                template.Alias.ToSafeAlias(),
                routeData.Values["action"].ToString());
        }
        public void Umbraco_Route_Umbraco_Defined_Controller_Action()
        {
            var template  = Template.MakeNew("homePage", new User(0));
            var route     = RouteTable.Routes["Umbraco_default"];
            var routeData = new RouteData()
            {
                Route = route
            };
            var routingContext = GetRoutingContext("~/dummy-page", template, routeData);
            var docRequest     = new PublishedContentRequest(routingContext.UmbracoContext.CleanedUmbracoUrl, routingContext)
            {
                PublishedContent = routingContext.PublishedContentStore.GetDocumentById(routingContext.UmbracoContext, 1174),
                Template         = template
            };

            var handler = new RenderRouteHandler(new TestControllerFactory(), routingContext.UmbracoContext);

            handler.GetHandlerForRoute(routingContext.UmbracoContext.HttpContext.Request.RequestContext, docRequest);
            Assert.AreEqual("RenderMvc", routeData.Values["controller"].ToString());
            Assert.AreEqual("Index", routeData.Values["action"].ToString());
        }
        public void Umbraco_Route_Umbraco_Defined_Controller_Action()
        {
            var template  = CreateTemplate("homePage");
            var route     = RouteTable.Routes["Umbraco_default"];
            var routeData = new RouteData {
                Route = route
            };
            var umbracoContext  = GetUmbracoContext("~/dummy-page", template.Id, routeData);
            var publishedRouter = CreatePublishedRouter();
            var frequest        = publishedRouter.CreateRequest(umbracoContext);

            frequest.PublishedContent = umbracoContext.ContentCache.GetById(1174);
            frequest.TemplateModel    = template;

            var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
            var handler = new RenderRouteHandler(umbracoContext, new TestControllerFactory(umbracoContextAccessor, Mock.Of <ILogger>()));

            handler.GetHandlerForRoute(umbracoContext.HttpContext.Request.RequestContext, frequest);
            Assert.AreEqual("RenderMvc", routeData.Values["controller"].ToString());
            //the route action will still be the one we've asked for because our RenderActionInvoker is the thing that decides
            // if the action matches.
            Assert.AreEqual("homePage", routeData.Values["action"].ToString());
        }
        public void Umbraco_Route_User_Defined_Controller_Action(string templateName)
        {
            var template  = Template.MakeNew(templateName, new User(0));
            var route     = RouteTable.Routes["Umbraco_default"];
            var routeData = new RouteData()
            {
                Route = route
            };
            var routingContext = GetRoutingContext("~/dummy-page", template, routeData);
            var docRequest     = new PublishedContentRequest(routingContext.UmbracoContext.CleanedUmbracoUrl, routingContext)
            {
                PublishedContent = routingContext.PublishedContentStore.GetDocumentById(routingContext.UmbracoContext, 1172),
                Template         = template
            };

            var handler = new RenderRouteHandler(new TestControllerFactory(), routingContext.UmbracoContext);

            handler.GetHandlerForRoute(routingContext.UmbracoContext.HttpContext.Request.RequestContext, docRequest);
            Assert.AreEqual("CustomDocument", routeData.Values["controller"].ToString());
            Assert.AreEqual(
                global::umbraco.cms.helpers.Casing.SafeAlias(templateName),
                routeData.Values["action"].ToString());
        }