public void SharesParentNamespaceUrlSpace()
        {
            var controller = typeof(DefaultController.DefaultController1Controller);

            routes.Clear();
            routes.MapCodeRoutes(controller, new CodeRoutingSettings {
                IgnoredControllers = { typeof(DefaultController.DefaultController3.DefaultController3Controller) }
            });

            var httpContextMock = new Mock <HttpContextBase>();

            httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/DefaultController2");

            var routeData = routes.GetRouteData(httpContextMock.Object);

            Assert.AreEqual("DefaultController2", routeData.GetRequiredString("controller"));
            Assert.AreEqual(controller.Namespace, ((string[])routeData.DataTokens["Namespaces"])[0]);

            httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/DefaultController2/Foo");

            routeData = routes.GetRouteData(httpContextMock.Object);

            Assert.AreEqual("DefaultController2", routeData.GetRequiredString("controller"));
            Assert.AreEqual(typeof(DefaultController.DefaultController2.DefaultController2Controller).Namespace, ((string[])routeData.DataTokens["Namespaces"])[0]);
        }
Ejemplo n.º 2
0
        public void BindCustomName()
        {
            var controller = typeof(CustomName.BindCustomNameController);

            routes.Clear();
            routes.MapCodeRoutes(controller);

            var httpContextMock = new Mock <HttpContextBase>();

            httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/Foo/hello");

            var httpResponseMock = new Mock <HttpResponseBase>();

            httpContextMock.Setup(c => c.Response).Returns(httpResponseMock.Object);

            var routeData = routes.GetRouteData(httpContextMock.Object);

            var controllerInstance = (ControllerBase)Activator.CreateInstance(controller);

            controllerInstance.ValidateRequest = false;

            var requestContext    = new RequestContext(httpContextMock.Object, routeData);
            var controllerContext = new ControllerContext(requestContext, controllerInstance);

            controllerInstance.ValueProvider = new ValueProviderCollection(new IValueProvider[] { new RouteDataValueProvider(controllerContext) });

            ((IController)controllerInstance).Execute(requestContext);

            httpResponseMock.Verify(c => c.Write(It.Is <string>(s => s == "hello")), Times.AtLeastOnce());
        }
Ejemplo n.º 3
0
        public void UseCustomName()
        {
            var controller = typeof(FromRouteAttr.CustomNameController);

            routes.Clear();
            routes.MapCodeRoutes(controller);

            Assert.IsNotNull(routes.At(0).Url.Contains("{b}"));
        }
Ejemplo n.º 4
0
        public void EmptyUnlessUsingVerbAttributeIn()
        {
            var controller = typeof(ActionName.ActionName4Controller);

            routes.Clear();
            routes.MapCodeRoutes(typeof(ActionName.ActionName4Controller), new CodeRoutingSettings {
                RootOnly = true
            });

            Assert.IsNotNull(Url.HttpRouteUrl(null, controller));
            Assert.IsNotNull(Url.HttpRouteUrl(null, controller, new { action = "Foo" }));
        }
Ejemplo n.º 5
0
        public void GroupOverloadsWithSameCustomRoute()
        {
            // #744
            // Create only one route for multiple actions with equal custom routes

            var controller = typeof(CustomRoute.CustomRoute1Controller);

            routes.Clear();
            routes.MapCodeRoutes(controller, new CodeRoutingSettings {
                RootOnly = true
            });

            Assert.AreEqual(1, routes.Count);
        }
Ejemplo n.º 6
0
        void Run(Type controller, BinderPrecedence.BinderPrecedence expected, ParameterBinder globalBinder = null)
        {
            var settings = new CodeRoutingSettings();

            if (globalBinder != null)
            {
                settings.ParameterBinders.Add(globalBinder);
            }

            routes.Clear();
            routes.MapCodeRoutes(controller, settings);

            var httpContextMock = new Mock <HttpContextBase>();

            httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/index/foo");

            var httpResponseMock = new Mock <HttpResponseBase>();

            httpContextMock.Setup(c => c.Response).Returns(httpResponseMock.Object);

            var routeData = routes.GetRouteData(httpContextMock.Object);

            var controllerInstance = (Controller)Activator.CreateInstance(controller);

            controllerInstance.ValidateRequest = false;

            var requestContext    = new RequestContext(httpContextMock.Object, routeData);
            var controllerContext = new ControllerContext(requestContext, controllerInstance);

            controllerInstance.ValueProvider = new ValueProviderCollection(new IValueProvider[] { new RouteDataValueProvider(controllerContext) });

            ((IController)controllerInstance).Execute(requestContext);

            httpResponseMock.Verify(c => c.Write(It.Is <string>(s => s == expected.ToString())), Times.AtLeastOnce());
        }
        public void SupportsCatchAllParameter()
        {
            var controller = typeof(CatchAll.CatchAllParameter1Controller);

            routes.Clear();
            routes.MapCodeRoutes(controller, new CodeRoutingSettings {
                RootOnly = true
            });

            var httpContextMock = new Mock <HttpContextBase>();

            httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/Foo/1/2/3");

            Assert.IsNotNull(routes.GetRouteData(httpContextMock.Object));
            Assert.IsNotNull(Url.Action("Foo", controller, new { a = "1/2/3" }));
        }
Ejemplo n.º 8
0
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapCodeRoutes(
            rootController: typeof(Controllers.HomeController),
            settings: new CodeRoutingSettings { UseImplicitIdToken = true }
        );
        }
Ejemplo n.º 9
0
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.MapCodeRoutes(
            rootController: typeof(Controllers.HomeController)
             );

             routes.MapCodeRoutes(
            baseRoute: "Account",
            rootController: typeof(MvcAccount.AccountController),
            settings: new CodeRoutingSettings {
               EnableEmbeddedViews = true,
               Configuration = new MvcAccount.AccountConfiguration {
                  AccountRepositoryResolver = () => new Models.TestAccountRepository(),
                  PasswordServiceResolver = () => new MvcAccount.ClearTextPasswordService()
               }
            }
             );
        }
Ejemplo n.º 10
0
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            CodeRoutingSettings.Defaults.RouteFormatter = args =>
                                                          Regex.Replace(args.OriginalSegment, @"([a-z])([A-Z])", "$1-$2").ToLowerInvariant();

            routes.MapCodeRoutes(typeof(Controllers.HomeController));
        }
Ejemplo n.º 11
0
      public static void RegisterRoutes(RouteCollection routes) {

         routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

         CodeRoutingSettings.Defaults.RouteFormatter = args =>
            Regex.Replace(args.OriginalSegment, @"([a-z])([A-Z])", "$1-$2").ToLowerInvariant();

         routes.MapCodeRoutes(typeof(Controllers.HomeController));
      }
        public void OnlyMatchesExistingActions()
        {
            var controller = typeof(ActionConstraint.ActionConstraint1Controller);

            routes.Clear();
            routes.MapCodeRoutes(controller, new CodeRoutingSettings {
                RootOnly = true
            });

            var httpContextMock = new Mock <HttpContextBase>();

            foreach (var item in new[] { "Foo", "Bar" })
            {
                httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/" + item);

                Assert.IsNotNull(routes.GetRouteData(httpContextMock.Object));
                Assert.AreEqual("/" + item, Url.Action(item, controller));
            }

            httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/a");

            Assert.IsNotNull(routes.GetRouteData(httpContextMock.Object));
            Assert.AreEqual("/a", Url.Action("Custom", controller));

            foreach (var item in new[] { "Custom2", "Custom3" })
            {
                httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/b/" + item);

                Assert.IsNotNull(routes.GetRouteData(httpContextMock.Object));
                Assert.AreEqual("/b/" + item, Url.Action(item, controller));
            }

            httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/b/XYZ");

            Assert.IsNull(routes.GetRouteData(httpContextMock.Object));
            Assert.IsNull(Url.Action("XYZ", controller));

            httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/Bar2");

            Assert.IsNull(routes.GetRouteData(httpContextMock.Object));
            Assert.IsNull(Url.Action("Bar2", controller));
        }
        public void CreateRoutesForCallableActionMethodsOnly()
        {
            var controller = typeof(ControllerReflection.ControllerReflection1Controller);

            routes.Clear();
            routes.MapCodeRoutes(controller, new CodeRoutingSettings {
                RootOnly = true
            });

            Assert.AreEqual(0, routes.Count);
        }
Ejemplo n.º 14
0
        public void UseActionAlias()
        {
            var controller = typeof(ActionName.ActionName1Controller);

            routes.Clear();
            routes.MapCodeRoutes(controller, new CodeRoutingSettings {
                RootOnly = true
            });

            Assert.IsNotNull(Url.Action("Bar", controller));

            controller = typeof(ActionName.ActionName3Controller);

            routes.Clear();
            routes.MapCodeRoutes(controller, new CodeRoutingSettings {
                RootOnly = true
            });

            Assert.IsNotNull(Url.Action("Bar", controller));
        }
        public void IncomingRequestAction()
        {
            var controller = typeof(RouteFormatting.RouteFormatting1Controller);

            routes.Clear();
            routes.MapCodeRoutes(controller, new CodeRoutingSettings {
                RouteFormatter = args => {
                    if (args.SegmentType == RouteSegmentType.Action)
                    {
                        return("_" + args.OriginalSegment);
                    }
                    return(args.OriginalSegment);
                }
            });

            var httpContextMock = new Mock <HttpContextBase>();

            httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/_AbcDfg");

            RouteData routeData = routes.GetRouteData(httpContextMock.Object);

            Assert.IsNotNull(routeData);
            Assert.AreEqual("AbcDfg", routeData.GetRequiredString("action"));

            httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/_Index");

            routeData = routes.GetRouteData(httpContextMock.Object);

            Assert.IsNotNull(routeData);
            Assert.AreEqual("Index", routeData.GetRequiredString("action"));
        }
Ejemplo n.º 16
0
      public static void RegisterRoutes(RouteCollection routes) {
         
         routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

         //routes.MapRoute(
         //    name: "Default",
         //    url: "{controller}/{action}/{id}",
         //    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
         //);

         routes.MapCodeRoutes(typeof(Controllers.HomeController));

         ContactConfiguration.Defaults.From = "*****@*****.**";

         routes.MapCodeRoutes(
            baseRoute: "Contact",
            rootController: typeof(ContactController),
            settings: new CodeRoutingSettings {
               EnableEmbeddedViews = true,
               Configuration = new ContactConfiguration {
                  To = "*****@*****.**"
               }
            }
         );

         routes.MapCodeRoutes(
            baseRoute: "CustomContact",
            rootController: typeof(ContactController),
            settings: new CodeRoutingSettings {
               EnableEmbeddedViews = true,
               Configuration = new ContactConfiguration {
                  To = "*****@*****.**",
                  ContactSenderResolver = () => new Models.CustomContactSender()
               }
            }
         );
      }
Ejemplo n.º 17
0
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            //routes.MapRoute(
            //    name: "Default",
            //    url: "{controller}/{action}/{id}",
            //    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            //);
            routes.MapCodeRoutes(
                typeof(HomeController),
                new CodeRoutingSettings
            {
                UseImplicitIdToken = true
            }
                );
        }
Ejemplo n.º 18
0
        public void DontIncludeControllerToken()
        {
            var controller = typeof(RootController.RootController1Controller);

            routes.Clear();
            routes.MapCodeRoutes(controller, new CodeRoutingSettings {
                RootOnly = true
            });

            Assert.AreEqual("/Foo", Url.Action("Foo", controller));

            var httpContextMock = new Mock <HttpContextBase>();

            httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/Foo");

            Assert.IsNotNull(routes.GetRouteData(httpContextMock.Object));
        }
Ejemplo n.º 19
0
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            // remove classic ASP.NET MVC route configuration

            //routes.MapRoute(
            //	name: "Default",
            //	url: "{controller}/{action}/{id}",
            //	defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            //);

            // setup MvcCodeRouting routes

            routes.MapCodeRoutes(
                typeof(DemoApp.Controllers.HomeController),
                new CodeRoutingSettings
            {
                UseImplicitIdToken = true
            }
                );
        }
Ejemplo n.º 20
0
        void Run(Type controller, CodeRoutingSettings settings = null, bool useBinder = false)
        {
            if (settings == null)
            {
                settings = new CodeRoutingSettings();
            }

            var routes = new RouteCollection();

            routes.MapCodeRoutes(controller, settings);

            var httpContextMock = new Mock <HttpContextBase>();

            httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/Archive/02");

            var httpResponseMock = new Mock <HttpResponseBase>();

            httpContextMock.Setup(c => c.Response).Returns(httpResponseMock.Object);

            var routeData = routes.GetRouteData(httpContextMock.Object);

            var controllerInstance = (Controller)Activator.CreateInstance(controller);

            controllerInstance.ValidateRequest = false;

            var requestContext    = new RequestContext(httpContextMock.Object, routeData);
            var controllerContext = new ControllerContext(requestContext, controllerInstance);

            controllerInstance.ValueProvider = new ValueProviderCollection(new IValueProvider[] { new RouteDataValueProvider(controllerContext) });

            ((IController)controllerInstance).Execute(requestContext);

            string expected = (useBinder) ? "02" : "00";

            httpResponseMock.Verify(c => c.Write(It.Is <string>(s => s == expected)), Times.AtLeastOnce());
        }
        void Run(Type controller, CodeRoutingSettings settings = null, bool useBinder = false)
        {
            if (settings == null) {
            settings = new CodeRoutingSettings();
             }

             var routes = new RouteCollection();
             routes.MapCodeRoutes(controller, settings);

             var httpContextMock = new Mock<HttpContextBase>();
             httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/Archive/02");

             var httpResponseMock = new Mock<HttpResponseBase>();
             httpContextMock.Setup(c => c.Response).Returns(httpResponseMock.Object);

             var routeData = routes.GetRouteData(httpContextMock.Object);

             var controllerInstance = (Controller)Activator.CreateInstance(controller);
             controllerInstance.ValidateRequest = false;

             var requestContext = new RequestContext(httpContextMock.Object, routeData);
             var controllerContext = new ControllerContext(requestContext, controllerInstance);

             controllerInstance.ValueProvider = new ValueProviderCollection(new IValueProvider[] { new RouteDataValueProvider(controllerContext) });

             ((IController)controllerInstance).Execute(requestContext);

             string expected = (useBinder) ? "02" : "00";

             httpResponseMock.Verify(c => c.Write(It.Is<string>(s => s == expected)), Times.AtLeastOnce());
        }
        public void Self()
        {
            var controller = typeof(ControllerReference.Self.AController);

            routes.Clear();
            routes.MapCodeRoutes(controller);

            var Url = TestUtil.CreateUrlHelper(routes, "~/Foo");

            Assert.AreEqual("/Bar", Url.Action("Bar", controller));
        }
Ejemplo n.º 23
0
 public void MustHaveRouteParametersThatAreEqualInNameAndPosition()
 {
     routes.MapCodeRoutes(typeof(OverloadedAction.OverloadedAction1Controller), new CodeRoutingSettings {
         RootOnly = true
     });
 }
Ejemplo n.º 24
0
        public void IsNamedIndex()
        {
            var controller = typeof(DefaultAction.DefaultAction2Controller);

            routes.Clear();
            routes.MapCodeRoutes(controller, new CodeRoutingSettings {
                RootOnly = true
            });

            var httpContextMock = new Mock <HttpContextBase>();

            httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/");

            Assert.AreEqual("Index", routes.GetRouteData(httpContextMock.Object).GetRequiredString("action"));
            Assert.AreEqual("/", Url.Action("Index", controller));

            controller = typeof(DefaultAction.DefaultAction5Controller);

            routes.Clear();
            routes.MapCodeRoutes(controller, new CodeRoutingSettings {
                RootOnly = true
            });

            httpContextMock.Setup(c => c.Request.AppRelativeCurrentExecutionFilePath).Returns("~/");

            Assert.IsNull(routes.GetRouteData(httpContextMock.Object));
            Assert.IsNull(Url.Action("", controller));
        }