Пример #1
0
        public void RuntimeState_Install(RuntimeLevel level)
        {
            InstallAreaRoutes routes = GetInstallAreaRoutes(level);
            var endpoints            = new TestRouteBuilder();

            routes.CreateRoutes(endpoints);

            Assert.AreEqual(2, endpoints.DataSources.Count);
            EndpointDataSource route = endpoints.DataSources.First();

            Assert.AreEqual(2, route.Endpoints.Count);

            var endpoint1 = (RouteEndpoint)route.Endpoints[0];

            Assert.AreEqual($"install/api/{{action}}/{{id?}}", endpoint1.RoutePattern.RawText);
            Assert.AreEqual(Constants.Web.Mvc.InstallArea, endpoint1.RoutePattern.Defaults[AreaToken]);
            Assert.AreEqual("Index", endpoint1.RoutePattern.Defaults[ActionToken]);
            Assert.AreEqual(ControllerExtensions.GetControllerName <InstallApiController>(), endpoint1.RoutePattern.Defaults[ControllerToken]);
            Assert.AreEqual(endpoint1.RoutePattern.Defaults[AreaToken], typeof(InstallApiController).GetCustomAttribute <AreaAttribute>(false).RouteValue);

            var endpoint2 = (RouteEndpoint)route.Endpoints[1];

            Assert.AreEqual($"install/{{action}}/{{id?}}", endpoint2.RoutePattern.RawText);
            Assert.AreEqual(Constants.Web.Mvc.InstallArea, endpoint2.RoutePattern.Defaults[AreaToken]);
            Assert.AreEqual("Index", endpoint2.RoutePattern.Defaults[ActionToken]);
            Assert.AreEqual(ControllerExtensions.GetControllerName <InstallController>(), endpoint2.RoutePattern.Defaults[ControllerToken]);
            Assert.AreEqual(endpoint2.RoutePattern.Defaults[AreaToken], typeof(InstallController).GetCustomAttribute <AreaAttribute>(false).RouteValue);

            EndpointDataSource fallbackRoute = endpoints.DataSources.Last();

            Assert.AreEqual(1, fallbackRoute.Endpoints.Count);

            Assert.AreEqual("Fallback {*path:nonfile}", fallbackRoute.Endpoints[0].ToString());
        }
Пример #2
0
        public void RuntimeState_All_Routes(RuntimeLevel level)
        {
            PreviewRoutes routes    = GetRoutes(level);
            var           endpoints = new TestRouteBuilder();

            routes.CreateRoutes(endpoints);

            Assert.AreEqual(2, endpoints.DataSources.Count);
            EndpointDataSource route = endpoints.DataSources.First();

            Assert.AreEqual(2, route.Endpoints.Count);

            var endpoint0 = (RouteEndpoint)route.Endpoints[0];

            Assert.AreEqual($"{routes.GetPreviewHubRoute()}/negotiate", endpoint0.RoutePattern.RawText);
            var endpoint1 = (RouteEndpoint)route.Endpoints[1];

            Assert.AreEqual($"{routes.GetPreviewHubRoute()}", endpoint1.RoutePattern.RawText);

            var endpoint3             = (RouteEndpoint)endpoints.DataSources.Last().Endpoints[0];
            var previewControllerName = ControllerExtensions.GetControllerName <PreviewController>();

            Assert.AreEqual($"umbraco/{previewControllerName.ToLowerInvariant()}/{{action}}/{{id?}}", endpoint3.RoutePattern.RawText);
            Assert.AreEqual(Constants.Web.Mvc.BackOfficeArea, endpoint3.RoutePattern.Defaults["area"]);
            Assert.AreEqual("Index", endpoint3.RoutePattern.Defaults[ActionToken]);
            Assert.AreEqual(previewControllerName, endpoint3.RoutePattern.Defaults[ControllerToken]);
            Assert.AreEqual(endpoint3.RoutePattern.Defaults["area"], typeof(PreviewController).GetCustomAttribute <AreaAttribute>(false).RouteValue);
        }
Пример #3
0
        public void RuntimeState_No_Routes(RuntimeLevel level)
        {
            InstallAreaRoutes routes = GetInstallAreaRoutes(level);
            var endpoints            = new TestRouteBuilder();

            routes.CreateRoutes(endpoints);

            Assert.AreEqual(0, endpoints.DataSources.Count);
        }
Пример #4
0
        public void RuntimeState_Run()
        {
            InstallAreaRoutes routes = GetInstallAreaRoutes(RuntimeLevel.Run);
            var endpoints            = new TestRouteBuilder();

            routes.CreateRoutes(endpoints);

            Assert.AreEqual(1, endpoints.DataSources.Count);
            EndpointDataSource route = endpoints.DataSources.First();

            Assert.AreEqual(1, route.Endpoints.Count);

            Assert.AreEqual("install/{controller?}/{action?} HTTP: GET", route.Endpoints[0].ToString());
        }
        public void MapUmbracoApiRoute(string umbracoPath, string area, bool isBackOffice, string defaultAction)
        {
            var endpoints = new TestRouteBuilder();

            endpoints.MapUmbracoApiRoute <Testing1Controller>(umbracoPath, area, isBackOffice, defaultAction);

            EndpointDataSource route = endpoints.DataSources.First();
            var endpoint             = (RouteEndpoint)route.Endpoints[0];

            string controllerName        = ControllerExtensions.GetControllerName <Testing1Controller>();
            string controllerNamePattern = controllerName.ToLowerInvariant();
            string areaPattern           = area?.ToLowerInvariant();

            if (isBackOffice)
            {
                if (area.IsNullOrWhiteSpace())
                {
                    Assert.AreEqual($"{umbracoPath}/backoffice/api/{controllerNamePattern}/{{action}}/{{id?}}", endpoint.RoutePattern.RawText);
                }
                else
                {
                    Assert.AreEqual($"{umbracoPath}/backoffice/{areaPattern}/{controllerNamePattern}/{{action}}/{{id?}}", endpoint.RoutePattern.RawText);
                }
            }
            else
            {
                if (area.IsNullOrWhiteSpace())
                {
                    Assert.AreEqual($"{umbracoPath}/api/{controllerNamePattern}/{{action}}/{{id?}}", endpoint.RoutePattern.RawText);
                }
                else
                {
                    Assert.AreEqual($"{umbracoPath}/{areaPattern}/{controllerNamePattern}/{{action}}/{{id?}}", endpoint.RoutePattern.RawText);
                }
            }

            if (!area.IsNullOrWhiteSpace())
            {
                Assert.AreEqual(area, endpoint.RoutePattern.Defaults[AreaToken]);
            }

            if (!defaultAction.IsNullOrWhiteSpace())
            {
                Assert.AreEqual(defaultAction, endpoint.RoutePattern.Defaults["action"]);
            }

            Assert.AreEqual(controllerName, endpoint.RoutePattern.Defaults[ControllerToken]);
        }
        public void RuntimeState_All_Routes(RuntimeLevel level)
        {
            BackOfficeAreaRoutes routes = GetBackOfficeAreaRoutes(level);
            var endpoints = new TestRouteBuilder();

            routes.CreateRoutes(endpoints);

            Assert.AreEqual(1, endpoints.DataSources.Count);
            EndpointDataSource route = endpoints.DataSources.First();

            Assert.AreEqual(3, route.Endpoints.Count);

            AssertMinimalBackOfficeRoutes(route);

            var    endpoint4         = (RouteEndpoint)route.Endpoints[2];
            string apiControllerName = ControllerExtensions.GetControllerName <Testing1Controller>();

            Assert.AreEqual($"umbraco/backoffice/api/{apiControllerName.ToLowerInvariant()}/{{action}}/{{id?}}", endpoint4.RoutePattern.RawText);
            Assert.IsFalse(endpoint4.RoutePattern.Defaults.ContainsKey(AreaToken));
            Assert.IsFalse(endpoint4.RoutePattern.Defaults.ContainsKey(ActionToken));
            Assert.AreEqual(apiControllerName, endpoint4.RoutePattern.Defaults[ControllerToken]);
        }