Esempio n. 1
0
        public void GetEntryFromRequest_WithIdInRouteDataMatchingEntryInRepository_ReturnsEntry()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/archive/123.aspx");
            var routeData = new RouteData();

            routeData.Values.Add("id", "123");
            var subtextContext = new Mock <ISubtextContext>();

            subtextContext.SetupRequestContext(httpContext, routeData, new Blog {
                Id = 123
            })
            .Setup(c => c.Repository.GetEntry(123, true, true)).Returns(new Entry(PostType.BlogPost)
            {
                Id = 123, Title = "Testing 123"
            });

            //act
            Entry entry = Cacher.GetEntryFromRequest(true, subtextContext.Object);

            //assert
            Assert.AreEqual(123, entry.Id);
            Assert.AreEqual("Testing 123", entry.Title);
        }
Esempio n. 2
0
        public void GetEntryFromRequest_WithSlugInRouteDataMatchingEntryInRepository_ReturnsEntry()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/archive/the-slug.aspx");
            var routeData = new RouteData();

            routeData.Values.Add("slug", "the-slug");
            var subtextContext = new Mock <ISubtextContext>();

            subtextContext.SetupRequestContext(httpContext, routeData)
            .SetupBlog(new Blog {
                Id = 1, TimeZoneId = TimeZonesTest.PacificTimeZoneId                      /* pacific */
            })
            .Setup(c => c.Repository.GetEntry("the-slug", true, true)).Returns(new Entry(PostType.BlogPost)
            {
                Id = 123, EntryName = "the-slug", Title = "Testing 123"
            });

            //act
            Entry entry = Cacher.GetEntryFromRequest(true, subtextContext.Object);

            //assert
            Assert.AreEqual(123, entry.Id);
            Assert.AreEqual("Testing 123", entry.Title);
            Assert.AreEqual("the-slug", entry.EntryName);
        }
        public void RequestWithoutSubfolder_ForAshxFileInDirectory_GetsHandlerInPhysicalDirectory()
        {
            //arrange
            string virtualPath = string.Empty;
            var routeData = new RouteData
                                {
                                    Route = new DirectoryRoute("admin", new Mock<IDependencyResolver>().Object)
                                };
            ;
            routeData.Values.Add("pathinfo", "foo.ashx");
            var pageBuilder = new Mock<ISubtextPageBuilder>();
            var httpHandler = new Mock<IHttpHandler>();
            pageBuilder.Setup(b => b.CreateInstanceFromVirtualPath(It.IsAny<string>(), It.IsAny<Type>())).Returns(
                httpHandler.Object).Callback<string, Type>((vpath, type) => virtualPath = vpath);
            IRouteHandler routeHandler = new DirectoryRouteHandler(pageBuilder.Object, new Mock<IDependencyResolver>().Object);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/admin/foo.ashx");
            var requestContext = new RequestContext(httpContext.Object, routeData);

            //act
            IHttpHandler handler = routeHandler.GetHttpHandler(requestContext);

            //assert
            Assert.AreEqual("~/aspx/admin/foo.ashx", virtualPath);
        }
Esempio n. 4
0
        public void RequestWithoutSubfolder_ForDirectoryWithoutFileAndWithouEndingSlash_AppendsDefaultFileToVirtualPath()
        {
            //arrange
            string virtualPath = string.Empty;
            var    routeData   = new RouteData
            {
                Route = new DirectoryRoute("admin", new Mock <IServiceLocator>().Object)
            };

            ;
            routeData.Values.Add("pathinfo", "posts");
            var pageBuilder = new Mock <ISubtextPageBuilder>();
            var httpHandler = new Mock <IHttpHandler>();

            pageBuilder.Setup(b => b.CreateInstanceFromVirtualPath(It.IsAny <string>(), It.IsAny <Type>())).Returns(
                httpHandler.Object).Callback <string, Type>((vpath, type) => virtualPath = vpath);
            IRouteHandler routeHandler = new DirectoryRouteHandler(pageBuilder.Object, new Mock <IServiceLocator>().Object);
            var           httpContext  = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/admin/posts");
            var requestContext = new RequestContext(httpContext.Object, routeData);

            //act
            routeHandler.GetHttpHandler(requestContext);

            //assert
            Assert.AreEqual("~/aspx/admin/posts/Default.aspx", virtualPath);
        }
        public static StringWriter FakeSubtextContextRequest(this Mock <ISubtextContext> subtextContextMock, Blog blog,
                                                             string virtualPath, string applicationPath,
                                                             string subfolder)
        {
            var          httpContext = new Mock <HttpContextBase>();
            StringWriter writer      = httpContext.FakeRequest(virtualPath, subfolder);

            httpContext.SetupApplicationPath(applicationPath);
            httpContext.Stub(h => h.Response.ContentType);
            var hashTable = new Hashtable();

            httpContext.Setup(c => c.Items).Returns(hashTable);
            var urlHelper = new Mock <UrlHelper>();

            var routeData = new RouteData();

            routeData.Values.Add("subfolder", subfolder);

            subtextContextMock.Setup(c => c.HttpContext).Returns(httpContext.Object);

            subtextContextMock.SetupBlog(blog)
            .SetupUrlHelper(urlHelper)
            .SetupRequestContext(httpContext, routeData);

            return(writer);
        }
Esempio n. 6
0
        public void RequestWithoutSubfolder_ForAshxFileInDirectory_GetsHandlerInPhysicalDirectory()
        {
            //arrange
            string virtualPath = string.Empty;
            var    routeData   = new RouteData
            {
                Route = new DirectoryRoute("admin", new Mock <IServiceLocator>().Object)
            };

            ;
            routeData.Values.Add("pathinfo", "foo.ashx");
            var pageBuilder = new Mock <ISubtextPageBuilder>();
            var httpHandler = new Mock <IHttpHandler>();

            pageBuilder.Setup(b => b.CreateInstanceFromVirtualPath(It.IsAny <string>(), It.IsAny <Type>())).Returns(
                httpHandler.Object).Callback <string, Type>((vpath, type) => virtualPath = vpath);
            IRouteHandler routeHandler = new DirectoryRouteHandler(pageBuilder.Object, new Mock <IServiceLocator>().Object);
            var           httpContext  = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/admin/foo.ashx");
            var requestContext = new RequestContext(httpContext.Object, routeData);

            //act
            IHttpHandler handler = routeHandler.GetHttpHandler(requestContext);

            //assert
            Assert.AreEqual("~/aspx/admin/foo.ashx", virtualPath);
        }
Esempio n. 7
0
        public void GetRouteDataWithAnyRequest_ReturnsNull()
        {
            //arrange
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/", string.Empty /* subfolder */, "~/");
            var route = new ImageRoute("{*anything}");

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object);

            //assert
            Assert.IsNull(routeData);
        }
        public void InitializeControls_WithLocalRequestAndReferrerInQueryString_LoadsMoreResultsControl()
        {
            // arrange
            var page    = new SubtextMasterPage();
            var context = new Mock <ISubtextContext>();

            page.SubtextContext = context.Object;
            context.Setup(c => c.Blog).Returns(new Blog {
                Id = 123
            });
            context.Setup(c => c.HttpContext.Request.UrlReferrer).Returns((Uri)null);
            context.Setup(c => c.HttpContext.Request.IsLocal).Returns(true);
            context.Setup(c => c.HttpContext.Request.Url).Returns(new Uri("http://example.com/"));
            var queryString = new NameValueCollection {
                { "referrer", "http://bing.com/?q=test" }
            };

            context.Setup(c => c.HttpContext.Request.QueryString).Returns(queryString);

            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/archive/the-slug.aspx");

            var routeData = new RouteData();

            routeData.Values.Add("slug", "the-slug");

            context.SetupRequestContext(httpContext, routeData)
            .SetupBlog(new Blog {
                Id = 1, TimeZoneId = TimeZonesTest.PacificTimeZoneId                       /* pacific */
            })
            .Setup(c => c.Repository.GetEntry("the-slug", true, true)).Returns(new Entry(PostType.BlogPost)
            {
                Id = 123, EntryName = "the-slug", Title = "Testing 123"
            });

            page.SetControls(new[] { "Test" });
            var loader = new Mock <ISkinControlLoader>();

            loader.Setup(l => l.LoadControl("MoreResults")).Returns(new UserControl());
            var searchEngine = new Mock <ISearchEngineService>();

            searchEngine.Setup(s => s.Search(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>())).Returns(new[] { new SearchEngineResult() });
            page.SearchEngineService = searchEngine.Object;

            // act
            page.InitializeControls(loader.Object);

            // assert
            loader.Verify(l => l.LoadControl("Test"));
        }
        public void GetRouteDataWithAnyRequest_ReturnsNull()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/", string.Empty /* subfolder */, "~/");
            var route = new ImageRoute("{*anything}");

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object);

            //assert
            Assert.IsNull(routeData);
        }
        public void GetRouteDataWithRequestWithSubfolder_WhenAggregationEnabledAndBlogDoesNotHaveSubfolder_DoesNotMatch()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/foo", string.Empty /* subfolder */, "~/");
            var route = new RootRoute(true, new Mock <IServiceLocator>().Object);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object);

            //assert
            Assert.IsNull(routeData);
        }
Esempio n. 11
0
        public void GetEntryFromRequest_WithEntryHavingEntryNameButIdInRouteDataMatchingEntryInRepository_RedirectsToUrlWithSlug()
        {
            //arrange
            var repository = new Mock <ObjectProvider>();

            var entry = new Entry(PostType.BlogPost)
            {
                Id = 123, EntryName = "testing-slug", Title = "Testing 123"
            };

            repository.Setup(r => r.GetEntry(123, true, true)).Returns(entry);
            var urlHelper = new Mock <UrlHelper>();

            urlHelper.Setup(u => u.EntryUrl(It.IsAny <Entry>())).Returns("/archive/testing-slug.aspx");
            UnitTestHelper.SetupBlog();
            var response = new Mock <HttpResponseBase>();

            response.Setup(r => r.End());
            response.SetupSet(r => r.StatusCode, 301);
            response.SetupSet(r => r.StatusDescription, "301 Moved Permanently");
            response.SetupSet(r => r.RedirectLocation, "http://localhost/archive/testing-slug.aspx");
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/archive/testing-slug.aspx");
            httpContext.Setup(c => c.Response).Returns(response.Object);

            var routeData = new RouteData();

            routeData.Values.Add("id", "123");
            var subtextContext = new Mock <ISubtextContext>();

            subtextContext.SetupRequestContext(httpContext, routeData)
            .SetupUrlHelper(urlHelper)
            .SetupRepository(repository.Object)
            .SetupBlog(new Blog {
                Host = "localhost"
            });
            subtextContext.Setup(c => c.HttpContext).Returns(httpContext.Object);

            //act
            Entry cachedEntry = Cacher.GetEntryFromRequest(true /* allowRedirect */, subtextContext.Object);

            //assert
            response.VerifySet(r => r.StatusCode, 301);
            response.VerifySet(r => r.StatusDescription, "301 Moved Permanently");
            response.VerifySet(r => r.RedirectLocation, "http://localhost/archive/testing-slug.aspx");
            Assert.AreEqual(123, cachedEntry.Id);
            Assert.AreEqual("Testing 123", cachedEntry.Title);
        }
Esempio n. 12
0
        public void GetRouteDataWithRequestWithSubfolder_WhenAggregationDisabledAndBlogDoesNotHaveSubfolder_DoesNotMatch
            ()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/foo", string.Empty /* subfolder */, "~/");
            var route = new STRouting.RootRoute(false, new Mock <IDependencyResolver>().Object);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object);

            //assert
            Assert.IsNull(routeData);
        }
Esempio n. 13
0
        public void RequestUrlWithSingleDigitMonth_ForBlogPost_DoesNotMatchPageRoute()
        {
            //arrange
            var routes = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock<IServiceLocator>().Object);
            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/archive/2008/1/10/blog-post.aspx");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);

            //assert.
            Assert.IsNull(routeData);
        }
Esempio n. 14
0
        public void RequestWithoutSubfolderForInstallDirectory_Matches()
        {
            //arrange
            var routes = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock<IServiceLocator>().Object);
            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/install/default.aspx", "");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);

            //assert.
            Assert.IsNotNull(routeData);
        }
Esempio n. 15
0
        public void GetRouteData_MatchingTheImplicitSubfolderRoute_ReturnsParentDirectoryRoute()
        {
            //arrange
            var route = new DirectoryRoute("dir", new Mock<IServiceLocator>().Object);
            ;
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/subfolder/dir/foo.aspx");
            var blogRequest = new BlogRequest("localhost", "subfolder", new Uri("http://localhost"), false);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object, blogRequest);

            //assert
            Assert.AreEqual(route, routeData.Route);
        }
        GetRouteDataWithRequestWithSubfolder_WhenAggregationDisabledAndSubfolderDoesNotMatchBlogSubfolder_DoesNotMatch
            ()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/foo", "bar" /* subfolder */, "~/");
            var route = new RootRoute(false, new Mock <IServiceLocator>().Object);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object);

            //assert
            Assert.IsNull(routeData);
        }
Esempio n. 17
0
        public void GetRouteData_MatchingTheImplicitSubfolderRoute_ReturnsParentDirectoryRoute()
        {
            //arrange
            var route = new PageRoute("url", "~/aspx/Dtp.aspx", new[] { "foo" }, new Mock<ISubtextPageBuilder>().Object,
                                      new Mock<IDependencyResolver>().Object);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/subfolder/url");
            var blogRequest = new BlogRequest("localhost", "subfolder", new Uri("http://localhost"), false);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object, blogRequest);

            //assert
            Assert.AreEqual(route, routeData.Route);
        }
Esempio n. 18
0
        GetRouteDataWithRequestWithSubfolder_WhenAggregationEnabledAndSubfolderDoesNotMatchBlogSubfolder_DoesNotMatch
            ()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/foo", "bar" /* subfolder */, "~/");
            var route = new STRouting.RootRoute(true, new Mock <IDependencyResolver>().Object);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object);

            //assert
            Assert.IsNull(routeData);
        }
Esempio n. 19
0
        public void GetRouteDataWithRequestForDefaultInSubfolder_WhenAggregationEnabled_MatchesRequestAndReturnsDtp()
        {
            //arrange
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/subfolder/default.aspx", "subfolder" /* subfolder */, "~/");
            var route = new STRouting.RootRoute(true, new Mock<IDependencyResolver>().Object);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object);

            //assert
            var routeHandler = routeData.RouteHandler as STRouting.PageRouteHandler;
            Assert.AreEqual("~/aspx/Dtp.aspx", routeHandler.VirtualPath);
            Assert.AreSame(route, routeData.Route);
        }
Esempio n. 20
0
        public void GetRouteDataWithRequestForAppRoot_WhenAggregationDisabled_MatchesAndReturnsDtp()
        {
            //arrange
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/", string.Empty /* subfolder */, "~/");
            var route = new STRouting.RootRoute(false, new Mock<IServiceLocator>().Object);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object);

            //assert
            var routeHandler = routeData.RouteHandler as STRouting.PageRouteHandler;
            Assert.AreEqual("~/aspx/Dtp.aspx", routeHandler.VirtualPath);
            Assert.AreSame(route, routeData.Route);
            Assert.IsTrue(routeData.DataTokens.ContainsKey(STRouting.PageRoute.ControlNamesKey));
        }
Esempio n. 21
0
        public void GetRouteDataWithRequestForAppRoot_WhenAggregationEnabled_MatchesAndReturnsAggDefault()
        {
            //arrange
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/", string.Empty /* subfolder */, "~/");
            var route = new STRouting.RootRoute(true, new Mock<IDependencyResolver>().Object);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object);

            //assert
            var routeHandler = routeData.RouteHandler as STRouting.PageRouteHandler;
            Assert.AreEqual("~/aspx/AggDefault.aspx", routeHandler.VirtualPath);
            Assert.AreSame(route, routeData.Route);
            Assert.IsFalse(routeData.DataTokens.ContainsKey(STRouting.PageRoute.ControlNamesKey));
        }
Esempio n. 22
0
        public void GetRouteData_MatchingTheImplicitSubfolderRoute_ReturnsParentDirectoryRoute()
        {
            //arrange
            var route = new PageRoute("url", "~/aspx/Dtp.aspx", new[] { "foo" }, new Mock <ISubtextPageBuilder>().Object,
                                      new Mock <IDependencyResolver>().Object);
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/subfolder/url");
            var blogRequest = new BlogRequest("localhost", "subfolder", new Uri("http://localhost"), false);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object, blogRequest);

            //assert
            Assert.AreEqual(route, routeData.Route);
        }
Esempio n. 23
0
        public void RequestUrlWithSingleDigitMonth_ForBlogPost_DoesNotMatchPageRoute()
        {
            //arrange
            var routes        = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock <IDependencyResolver>().Object);

            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/archive/2008/1/10/blog-post.aspx");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);

            //assert.
            Assert.IsNull(routeData);
        }
Esempio n. 24
0
        public void RequestWithSubfolderForInstallDirectory_DoesNotMatch()
        {
            //arrange
            var routes        = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock <IServiceLocator>().Object);

            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/subfolder/install/default.aspx", "subfolder");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);

            //assert.
            Assert.IsNull(routeData);
        }
Esempio n. 25
0
        public void GetVirtualPath_WhenAggregationEnabledAndNoSubfolderInRouteData_ReturnsRoot()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/default.aspx", string.Empty /* subfolder */, "~/");
            var routeData      = new RouteData();
            var requestContext = new RequestContext(httpContext.Object, routeData);
            var route          = new STRouting.RootRoute(true, new Mock <IDependencyResolver>().Object);
            var routeValues    = new RouteValueDictionary();

            //act
            VirtualPathData virtualPathInfo = route.GetVirtualPath(requestContext, routeValues);

            //assert
            Assert.AreEqual(string.Empty, virtualPathInfo.VirtualPath);
        }
        public void GetRouteDataWithRequestForDefault_WhenAggregationEnabled_MatchesAndReturnsAggDefault()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/Default.aspx", string.Empty /* subfolder */, "~/");
            var route = new RootRoute(true, new Mock <IServiceLocator>().Object);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object);

            //assert
            var routeHandler = routeData.RouteHandler as PageRouteHandler;

            Assert.AreEqual("~/aspx/AggDefault.aspx", routeHandler.VirtualPath);
            Assert.AreSame(route, routeData.Route);
        }
        public void GetVirtualPath_WhenSupplyingRouteValues_ReturnsNull()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/subfolder/default.aspx", string.Empty /* subfolder */, "~/");
            var routeData      = new RouteData();
            var requestContext = new RequestContext(httpContext.Object, routeData);
            var route          = new RootRoute(true, new Mock <IServiceLocator>().Object);
            var routeValues    = new RouteValueDictionary(new { foo = "bar" });

            //act
            VirtualPathData virtualPathInfo = route.GetVirtualPath(requestContext, routeValues);

            //assert
            Assert.IsNull(virtualPathInfo);
        }
        public void GetVirtualPath_WhenAggregationEnabledWithSubfolderInRouteValues_ReturnsSubfolder()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/subfolder/default.aspx", "subfolder" /* subfolder */, "~/");
            var routeData      = new RouteData();
            var requestContext = new RequestContext(httpContext.Object, routeData);
            var route          = new RootRoute(true, new Mock <IServiceLocator>().Object);
            var routeValues    = new RouteValueDictionary(new { subfolder = "subfolder" });

            //act
            VirtualPathData virtualPathInfo = route.GetVirtualPath(requestContext, routeValues);

            //assert
            Assert.AreEqual("subfolder", virtualPathInfo.VirtualPath);
        }
Esempio n. 29
0
        public void RequestWithSubfolderForBlogRoot_WithBlogHavingDifferentSubfolder_DoesNotMatch()
        {
            //arrange
            var routes        = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock <IDependencyResolver>().Object);

            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/subfolder/admin/foo.aspx", "not-subfolder");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);

            //assert.
            Assert.IsNull(routeData);
        }
Esempio n. 30
0
        public void RequestWithoutSubfolderForInstallDirectory_Matches()
        {
            //arrange
            var routes        = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock <IDependencyResolver>().Object);

            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/install/default.aspx", "");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);

            //assert.
            Assert.IsNotNull(routeData);
        }
Esempio n. 31
0
        public void Request_ForDirectHttpHandlers_Matches(string url, string subfolder)
        {
            //arrange
            var routes        = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock <IDependencyResolver>().Object);

            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest(url, subfolder);

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);

            //assert
            Assert.IsNotNull(routeData);
        }
        public void GetRouteDataWithRequestForSubfolder_WhenAggregationDisabled_MatchesRequestAndReturnsDtp()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/subfolder", "subfolder" /* subfolder */, "~/");
            var route = new RootRoute(false, new Mock <IServiceLocator>().Object);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object);

            //assert
            var routeHandler = routeData.RouteHandler as PageRouteHandler;

            Assert.AreEqual("~/aspx/Dtp.aspx", routeHandler.VirtualPath);
            Assert.AreSame(route, routeData.Route);
        }
Esempio n. 33
0
        public void GetVirtualPath_WhenSupplyingRouteValues_AppendsValuesToQueryString()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/subfolder/default.aspx", string.Empty /* subfolder */, "~/");
            var routeData      = new RouteData();
            var requestContext = new RequestContext(httpContext.Object, routeData);
            var route          = new STRouting.RootRoute(true, new Mock <IDependencyResolver>().Object);
            var routeValues    = new RouteValueDictionary(new { foo = "bar" });

            //act
            VirtualPathData virtualPathInfo = route.GetVirtualPath(requestContext, routeValues);

            //assert
            Assert.AreEqual(virtualPathInfo.VirtualPath, "?foo=bar");
        }
Esempio n. 34
0
        public void GetRouteDataWithRequestForSubfolder_WhenAggregationEnabled_MatchesRequestAndReturnsDtp()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/subfolder", "subfolder" /* subfolder */, "~/");
            var route = new STRouting.RootRoute(true, new Mock <IDependencyResolver>().Object);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object);

            //assert
            var routeHandler = routeData.RouteHandler as STRouting.PageRouteHandler;

            Assert.AreEqual("~/aspx/Dtp.aspx", routeHandler.VirtualPath);
            Assert.AreSame(route, routeData.Route);
        }
Esempio n. 35
0
        public void GetRouteData_ForRequestForExportController_Matches()
        {
            //arrange
            var routes = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock<IServiceLocator>().Object);
            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/admin/export.ashx", "");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);

            //assert.
            Assert.IsNotNull(routeData);
            Assert.AreEqual("export", routeData.Values["controller"]);
            Assert.AreEqual("blogml", routeData.Values["action"]);
        }
Esempio n. 36
0
        public void GetRouteData_ForRequestForEntryAdminController_Matches()
        {
            //arrange
            var routes = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock<IDependencyResolver>().Object);
            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/admin/comments/destroy.ashx", "");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);

            //assert.
            Assert.IsNotNull(routeData);
            Assert.AreEqual("comment", routeData.Values["controller"]);
            Assert.AreEqual("destroy", routeData.Values["action"]);
        }
        public void GetRouteData_MatchingTheImplicitSubfolderRoute_ReturnsParentDirectoryRoute()
        {
            //arrange
            var route = new DirectoryRoute("dir", new Mock <IServiceLocator>().Object);

            ;
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/subfolder/dir/foo.aspx");
            var blogRequest = new BlogRequest("localhost", "subfolder", new Uri("http://localhost"), false);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object, blogRequest);

            //assert
            Assert.AreEqual(route, routeData.Route);
        }
Esempio n. 38
0
        public void GetRouteDataWithRequestForAppRoot_WhenAggregationEnabled_MatchesAndReturnsAggDefault()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/", string.Empty /* subfolder */, "~/");
            var route = new STRouting.RootRoute(true, new Mock <IDependencyResolver>().Object);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object);

            //assert
            var routeHandler = routeData.RouteHandler as STRouting.PageRouteHandler;

            Assert.AreEqual("~/aspx/AggDefault.aspx", routeHandler.VirtualPath);
            Assert.AreSame(route, routeData.Route);
            Assert.IsFalse(routeData.DataTokens.ContainsKey(STRouting.PageRoute.ControlNamesKey));
        }
Esempio n. 39
0
        public void GetVirtualPath_WithoutSubolder_ReturnsUrlWithoutSubfolder()
        {
            //arrange
            var route = new PageRoute("archive/{slug}.aspx", "~/aspx/Dtp.aspx", null,
                                      new Mock<ISubtextPageBuilder>().Object, new Mock<IDependencyResolver>().Object);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/archive/slug.aspx");
            var routeData = new RouteData();
            var requestContext = new RequestContext(httpContext.Object, routeData);

            //act
            VirtualPathData virtualPath = route.GetVirtualPath(requestContext,
                                                               new RouteValueDictionary(new { slug = "test-slug" }));

            //assert
            Assert.IsNotNull(virtualPath);
            Assert.AreEqual("archive/test-slug.aspx", virtualPath.VirtualPath);
        }
        public void GetRouteDataWithRequestForAppRoot_WhenAggregationDisabled_MatchesAndReturnsDtp()
        {
            //arrange
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/", string.Empty /* subfolder */, "~/");
            var route = new RootRoute(false, new Mock <IServiceLocator>().Object);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object);

            //assert
            var routeHandler = routeData.RouteHandler as PageRouteHandler;

            Assert.AreEqual("~/aspx/Dtp.aspx", routeHandler.VirtualPath);
            Assert.AreSame(route, routeData.Route);
            Assert.IsTrue(routeData.DataTokens.ContainsKey(PageRoute.ControlNamesKey));
        }
Esempio n. 41
0
        public void RequestWithSubfolder_ForBlogPostWithoutSubfolder_DoesNotMatch()
        {
            //arrange
            var subtextRoute = new PageRoute("archive/{slug}", "~/aspx/Dtp.aspx", null,
                                             new Mock <ISubtextPageBuilder>().Object, new Mock <IDependencyResolver>().Object);
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/subfolder/archive/blog-post");
            //This info is provided by the BlogRequestModule.
            var blogRequest = new BlogRequest("localhost", string.Empty,
                                              new Uri("http://localhost/subfolder/archive/blog-post"), true);

            //act
            RouteData routeData = subtextRoute.GetRouteData(httpContext.Object, blogRequest);

            //assert.
            Assert.IsNull(routeData);
        }
Esempio n. 42
0
        public void RequestWithoutSubfolder_ForBlogPostWithoutSubfolder_Matches()
        {
            //arrange
            var subtextRoute = new PageRoute("archive/{slug}", "~/aspx/Dtp.aspx", null,
                                             new Mock<ISubtextPageBuilder>().Object, new Mock<IDependencyResolver>().Object);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/archive/blog-post");
            //This info is provided by the BlogRequestModule.
            var blogRequest = new BlogRequest("localhost", string.Empty, new Uri("http://localhost/archive/blog-post"),
                                              true);

            //act
            RouteData routeData = subtextRoute.GetRouteData(httpContext.Object, blogRequest);

            //assert.
            Assert.IsNotNull(routeData);
            Assert.AreEqual("blog-post", routeData.Values["slug"]);
            Assert.AreEqual(string.Empty, routeData.Values["subfolder"]);
        }
Esempio n. 43
0
        public void Request_ForPageRouteWithConstraints_MatchesWhenConstraintsAreSatisfied()
        {
            //arrange
            var route = new PageRoute("archive/{year}/{month}/{day}/{slug}.aspx", "~/aspx/Dtp.aspx", null,
                                      new Mock <ISubtextPageBuilder>().Object, new Mock <IDependencyResolver>().Object)
            {
                Constraints = new RouteValueDictionary(new { year = @"\d{4}" })
            };
            var httpContext = new Mock <HttpContextBase>();

            httpContext.FakeRequest("~/archive/2008/01/23/slug.aspx");
            var blogRequest = new BlogRequest("localhost", null, new Uri("http://localhost"), false);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object, blogRequest);

            //assert
            Assert.IsNotNull(routeData);
        }
Esempio n. 44
0
        public void GetVirtualPath_WithoutSubolder_ReturnsUrlWithoutSubfolder()
        {
            //arrange
            var route = new DirectoryRoute("admin", new Mock<IServiceLocator>().Object);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/admin/posts/foo.aspx");
            var blogRequest = new BlogRequest("localhost", null, new Uri("http://localhost"), true);
            var routeData = new RouteData();
            var requestContext = new RequestContext(httpContext.Object, routeData);

            //act
            VirtualPathData virtualPath = route.GetVirtualPath(requestContext
                                                               ,
                                                               new RouteValueDictionary(
                                                                   new {pathInfo = "posts/foo.aspx"}));

            //assert
            Assert.IsNotNull(virtualPath);
            Assert.AreEqual("admin/posts/foo.aspx", virtualPath.VirtualPath);
        }
Esempio n. 45
0
        public static StringWriter FakeSubtextContextRequest(this Mock<ISubtextContext> subtextContextMock, Blog blog,
            string virtualPath, string applicationPath,
            string subfolder)
        {
            var httpContext = new Mock<HttpContextBase>();
            StringWriter writer = httpContext.FakeRequest(virtualPath, subfolder);
            httpContext.SetupApplicationPath(applicationPath);
            httpContext.Stub(h => h.Response.ContentType);
            var hashTable = new Hashtable();
            httpContext.Setup(c => c.Items).Returns(hashTable);
            var urlHelper = new Mock<BlogUrlHelper>();

            var routeData = new RouteData();
            routeData.Values.Add("subfolder", subfolder);

            subtextContextMock.Setup(c => c.HttpContext).Returns(httpContext.Object);

            subtextContextMock.SetupBlog(blog)
                .SetupUrlHelper(urlHelper)
                .SetupRequestContext(httpContext, routeData);

            return writer;
        }
Esempio n. 46
0
        public void RequestWithSubfolderForBlogRoot_WithBlogHavingDifferentSubfolder_DoesNotMatch()
        {
            //arrange
            var routes = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock<IServiceLocator>().Object);
            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/subfolder/admin/foo.aspx", "not-subfolder");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);

            //assert.
            Assert.IsNull(routeData);
        }
Esempio n. 47
0
        public void RequestWithoutSubfolder_ForProvidersDirectory_UsesDirectoryRouteHandler()
        {
            //arrange
            var routes = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock<IServiceLocator>().Object);
            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/providers/foo.aspx");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);
            var routeHandler = routeData.RouteHandler as DirectoryRouteHandler;

            //assert.
            Assert.IsNotNull(routeHandler);
            Assert.AreEqual("foo.aspx", routeData.Values["pathInfo"]);
        }
Esempio n. 48
0
        public void GetEntryFromRequest_WithSlugInRouteDataMatchingEntryInRepository_ReturnsEntry()
        {
            //arrange
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/archive/the-slug.aspx");
            var routeData = new RouteData();
            routeData.Values.Add("slug", "the-slug");
            var subtextContext = new Mock<ISubtextContext>();
            subtextContext.SetupRequestContext(httpContext, routeData)
                .SetupBlog(new Blog { Id = 1, TimeZoneId = TimeZonesTest.PacificTimeZoneId /* pacific */})
                .Setup(c => c.Repository.GetEntry("the-slug", true, true)).Returns(new Entry(PostType.BlogPost) { Id = 123, EntryName = "the-slug", Title = "Testing 123" });

            //act
            Entry entry = Cacher.GetEntryFromRequest(true, subtextContext.Object);

            //assert
            Assert.AreEqual(123, entry.Id);
            Assert.AreEqual("Testing 123", entry.Title);
            Assert.AreEqual("the-slug", entry.EntryName);
        }
Esempio n. 49
0
        public void RequestWithSubfolderForInstallDirectory_DoesNotMatch()
        {
            //arrange
            var routes = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock<IDependencyResolver>().Object);
            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/subfolder/install/default.aspx", "subfolder");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);

            //assert.
            Assert.IsNull(routeData);
        }
Esempio n. 50
0
        public void Request_ForDirectHttpHandlers_Matches(string url, string subfolder)
        {
            //arrange
            var routes = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock<IServiceLocator>().Object);
            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest(url, subfolder);

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);

            //assert
            Assert.IsNotNull(routeData);
        }
Esempio n. 51
0
        public void GetRouteDataWithRequestWithSubfolder_WhenAggregationEnabledAndSubfolderDoesNotMatchBlogSubfolder_DoesNotMatch()
        {
            //arrange
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/foo", "bar" /* subfolder */, "~/");
            var route = new STRouting.RootRoute(true, new Mock<IDependencyResolver>().Object);

            //act
            RouteData routeData = route.GetRouteData(httpContext.Object);

            //assert
            Assert.IsNull(routeData);
        }
        public void RequestWithoutSubfolder_ForDirectoryWithoutFile_AppendsDefaultFileToVirtualPath()
        {
            //arrange
            string virtualPath = string.Empty;
            var routeData = new RouteData();
            routeData.Route = new DirectoryRoute("admin", new Mock<IDependencyResolver>().Object);
            routeData.Values.Add("pathinfo", "posts");
            var pageBuilder = new Mock<ISubtextPageBuilder>();
            var httpHandler = new Mock<IHttpHandler>();
            pageBuilder.Setup(b => b.CreateInstanceFromVirtualPath(It.IsAny<string>(), It.IsAny<Type>())).Returns(
                httpHandler.Object).Callback<string, Type>((vpath, type) => virtualPath = vpath);
            IRouteHandler routeHandler = new DirectoryRouteHandler(pageBuilder.Object, new Mock<IDependencyResolver>().Object);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/admin/posts/");
            var requestContext = new RequestContext(httpContext.Object, routeData);

            //act
            routeHandler.GetHttpHandler(requestContext);

            //assert
            Assert.AreEqual("~/aspx/admin/posts/Default.aspx", virtualPath);
        }
Esempio n. 53
0
        public void RequestWithSubfolderForBlogRoot_WithAggregateEnabled_Matches()
        {
            //arrange
            var routes = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock<IServiceLocator>().Object);
            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/subfolder/admin/foo.aspx", "subfolder");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);
            var routeHandler = routeData.RouteHandler as DirectoryRouteHandler;

            //assert.
            Assert.IsNotNull(routeHandler);
            Assert.AreEqual("foo.aspx", routeData.Values["pathInfo"]);
        }
Esempio n. 54
0
        public void RequestWithSubfolder_ForAdminDirectory_UsesDirectoryRouteHandler()
        {
            //arrange
            var routes = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock<IDependencyResolver>().Object);
            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/subfolder/admin/foo.aspx", "subfolder");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);
            var routeHandler = routeData.RouteHandler as DirectoryRouteHandler;

            //assert.
            Assert.IsNotNull(routeHandler);
            Assert.AreEqual("foo.aspx", routeData.Values["pathInfo"]);
        }
Esempio n. 55
0
        public void RequestWithSubfolderForCommentApiController_WithBlogHavingSubfolder_Matches()
        {
            //arrange
            var routes = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock<IServiceLocator>().Object);
            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/subfolder/comments/123.aspx", "subfolder");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);

            //assert.
            Assert.IsNotNull(routeData);
            Assert.AreEqual("CommentApi", routeData.Values["controller"]);
            Assert.AreEqual("Create", routeData.Values["action"]);
            Assert.AreEqual(routeData.RouteHandler.GetType(), typeof(MvcRouteHandler));
        }
Esempio n. 56
0
        public void Request_ForBlogPost_ContainsControlsForBlogPost()
        {
            //arrange
            var routes = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock<IServiceLocator>().Object);
            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/archive/2008/12/10/blog-post.aspx");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);
            var controls = routeData.DataTokens["controls"] as IEnumerable<string>;
            //assert.

            Assert.IsTrue(controls.Contains("viewpost"));
            Assert.IsTrue(controls.Contains("comments"));
            Assert.IsTrue(controls.Contains("postcomment"));
            Assert.AreEqual("blog-post", routeData.Values["slug"]);
        }
        public void InitializeControls_WithReferrer_LoadsMoreResultsControl()
        {
            // arrange
            var page = new SubtextMasterPage();
            var context = new Mock<ISubtextContext>();
            context.Setup(c => c.Blog).Returns(new Blog {Id = 123});
            context.Setup(c => c.HttpContext.Request.UrlReferrer).Returns(new Uri("http://bing.com/?q=test"));
            context.Setup(c => c.HttpContext.Request.IsLocal).Returns(false);
            context.Setup(c => c.HttpContext.Request.Url).Returns(new Uri("http://example.com/"));

            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/archive/the-slug.aspx");

            var routeData = new RouteData();
            routeData.Values.Add("slug", "the-slug");

            context.SetupRequestContext(httpContext, routeData)
                .SetupBlog(new Blog { Id = 1, TimeZoneId = TimeZonesTest.PacificTimeZoneId /* pacific */})
                .Setup(c => c.Repository.GetEntry("the-slug", true, true)).Returns(new Entry(PostType.BlogPost) { Id = 123, EntryName = "the-slug", Title = "Testing 123" });

            page.SubtextContext = context.Object;
            page.SetControls(new[] { "Test" });
            var searchEngine = new Mock<ISearchEngineService>();
            searchEngine.Setup(s => s.Search(It.IsAny<string>(), It.IsAny<int>(), It.IsAny<int>())).Returns(new[]{new SearchEngineResult()});
            page.SearchEngineService = searchEngine.Object;
            var loader = new Mock<ISkinControlLoader>();
            loader.Setup(l => l.LoadControl("MoreResults")).Returns(new UserControl());

            // act
            page.InitializeControls(loader.Object);

            // assert
            loader.Verify(l => l.LoadControl("Test"));
        }
Esempio n. 58
0
        public void GetVirtualPath_WhenAggregationEnabledWithSubfolderInRouteValues_ReturnsSubfolder()
        {
            //arrange
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/subfolder/default.aspx", "subfolder" /* subfolder */, "~/");
            var routeData = new RouteData();
            var requestContext = new RequestContext(httpContext.Object, routeData);
            var route = new STRouting.RootRoute(true, new Mock<IDependencyResolver>().Object);
            var routeValues = new RouteValueDictionary(new { subfolder = "subfolder" });

            //act
            VirtualPathData virtualPathInfo = route.GetVirtualPath(requestContext, routeValues);

            //assert
            Assert.AreEqual("subfolder", virtualPathInfo.VirtualPath);
        }
Esempio n. 59
0
        public void GetVirtualPath_WhenSupplyingRouteValues_AppendsValuesToQueryString()
        {
            //arrange
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/subfolder/default.aspx", string.Empty /* subfolder */, "~/");
            var routeData = new RouteData();
            var requestContext = new RequestContext(httpContext.Object, routeData);
            var route = new STRouting.RootRoute(true, new Mock<IDependencyResolver>().Object);
            var routeValues = new RouteValueDictionary(new { foo = "bar" });

            //act
            VirtualPathData virtualPathInfo = route.GetVirtualPath(requestContext, routeValues);

            //assert
            Assert.AreEqual(virtualPathInfo.VirtualPath, "?foo=bar");
        }
Esempio n. 60
0
        public void RequestWithSubfolderForAggregatorBug_WithBlogHavingSubfolder_Matches()
        {
            //arrange
            var routes = new RouteCollection();
            var subtextRoutes = new SubtextRouteMapper(routes, new Mock<IDependencyResolver>().Object);
            Routes.RegisterRoutes(subtextRoutes);
            var httpContext = new Mock<HttpContextBase>();
            httpContext.FakeRequest("~/subfolder/aggbug/123.aspx", "subfolder");

            //act
            RouteData routeData = routes.GetRouteData(httpContext.Object);

            //assert.
            Assert.IsNotNull(routeData);
            Assert.AreEqual("Statistics", routeData.Values["controller"]);
            Assert.AreEqual("RecordAggregatorView", routeData.Values["action"]);
            Assert.AreEqual(routeData.RouteHandler.GetType(), typeof(MvcRouteHandler));
        }