Ejemplo n.º 1
0
        public void MapPageRoute_String_String_String()
        {
            var c = new RouteCollection();

            c.MapPageRoute(null, "{foo}-{bar}", "~/some-url");
            var hc = new HttpContextStub2("~/some-url", String.Empty, String.Empty);

            hc.SetResponse(new HttpResponseStub(3));
            var rd = c.GetRouteData(hc);

            Assert.IsNotNull(rd, "#A1-1");
            Assert.IsNotNull(rd.RouteHandler, "#A1-2");
            Assert.AreEqual(typeof(PageRouteHandler), rd.RouteHandler.GetType(), "#A1-3");

            c = new RouteCollection();
            AssertExtensions.Throws <ArgumentNullException> (() => {
                c.MapPageRoute("RouteName", null, "~/some-url");
            }, "#A2");

            c = new RouteCollection();
            c.MapPageRoute("RouteName", String.Empty, "~/some-url");
            rd = c.GetRouteData(hc);

            Assert.IsNull(rd, "#A2");

            c = new RouteCollection();
            // thrown by PageRouteHandler's constructor
            AssertExtensions.Throws <ArgumentException> (() => {
                c.MapPageRoute("RouteName", "~/some-url", null);
            }, "#A3");
        }
Ejemplo n.º 2
0
        public void Ignore_String_Object()
        {
            var c = new RouteCollection();

            AssertExtensions.Throws <ArgumentNullException> (() => {
                c.Ignore(null, new { allaspx = @".*\.aspx(/.*)?" });
            }, "#A1");

            c.Ignore("{*allaspx}", new { allaspx = @".*\.aspx(/.*)?" });
            var hc = new HttpContextStub2("~/page.aspx", String.Empty, String.Empty);

            hc.SetResponse(new HttpResponseStub(3));
            var rd = c.GetRouteData(hc);

            Assert.IsNotNull(rd, "#A1-1");
            Assert.IsNotNull(rd.RouteHandler, "#A1-2");
            Assert.AreEqual(typeof(StopRoutingHandler), rd.RouteHandler.GetType(), "#A1-3");
            Assert.IsTrue(rd.Route is Route, "#A1-4");
            Assert.IsNotNull(((Route)rd.Route).Constraints, "#A1-5");
            Assert.AreEqual(1, ((Route)rd.Route).Constraints.Count, "#A1-6");
            Assert.AreEqual(@".*\.aspx(/.*)?", ((Route)rd.Route).Constraints ["allaspx"], "#A1-7");

            c = new RouteCollection();
            c.Ignore("{*allaspx}", "something invalid");

            AssertExtensions.Throws <InvalidOperationException> (() => {
                rd = c.GetRouteData(hc);
            }, "#A2");
        }
Ejemplo n.º 3
0
        public void Pipeline3()
        {
            var m = new UrlRoutingModule();

            RouteTable.Routes.Add(new MyRoute("{foo}/{bar}", new MyRouteHandler()));
#if NET_4_0
            var hc = new HttpContextStub5("~/x/y", String.Empty, "apppath");
#else
            var hc = new HttpContextStub2("~/x/y", String.Empty, "apppath");
#endif
            hc.SetResponse(new HttpResponseStub(2));
#if NET_4_0
            Assert.IsNull(m.RouteCollection.GetRouteData(hc), "#0");
#else
            Assert.IsNotNull(m.RouteCollection.GetRouteData(hc), "#0");
            m.PostResolveRequestCache(hc);
            try
            {
                m.PostMapRequestHandler(hc);
                Assert.Fail("#1");
            }
            catch (ApplicationException ex)
            {
                Assert.AreEqual("~/UrlRouting.axd", ex.Message, "#2");
            }
#endif
        }
Ejemplo n.º 4
0
        public void GetRouteDataNerdDinner2()
        {
            var c = new RouteCollection();

            c.Add("UpcomingDiners",
                  new MyRoute("Dinners/Page/{page}", new MyRouteHandler())
            {
                Defaults = new RouteValueDictionary(new { controller = "Dinners", action = "Index" })
            }
                  );

            c.Add("Default",
                  new MyRoute("{controller}/{action}/{id}", new MyRouteHandler())
            {
                Defaults = new RouteValueDictionary(new { controller = "Home", action = "Index", id = "" })
            }
                  );

            var hc = new HttpContextStub2("~/Home/Index", String.Empty, String.Empty);

            hc.SetResponse(new HttpResponseStub(3));
            var rd = c.GetRouteData(hc);

            Assert.IsNotNull(rd, "#A1");
        }
Ejemplo n.º 5
0
        public void GetVirtualPathNoApplyAppPathModifier()
        {
            var c = new RouteCollection();

            c.Add(new MyRoute("{foo}/{bar}", new MyRouteHandler()));
            var hc = new HttpContextStub2("~/x/y", String.Empty, "apppath");

            // it tries to call HttpContextBase.Response.ApplyAppPathModifier() and then causes NIE.
            hc.SetResponse(new HttpResponseStub());
            var rd  = c.GetRouteData(hc);
            var vpd = c.GetVirtualPath(new RequestContext(hc, rd), rd.Values);
        }
Ejemplo n.º 6
0
        public void GetVirtualPath6()
        {
            var c = new RouteCollection();

            c.Add(new MyRoute("reports/{year}/{month}/{day}", new MyRouteHandler())
            {
                Defaults = new RouteValueDictionary {
                    { "day", 1 }
                }
            }
                  );

            var hc = new HttpContextStub2("~/reports/2009/05", String.Empty, "/myapp");

            hc.SetResponse(new HttpResponseStub(3));
            var rd = c.GetRouteData(hc);

            Assert.IsNotNull(rd, "#1");

            var vp = c.GetVirtualPath(new RequestContext(hc, rd), new RouteValueDictionary {
                { "year", 2007 },
                { "month", 1 },
                { "day", 12 },
            }
                                      );

            Assert.IsNotNull(vp, "#2");
            Assert.AreEqual("/myapp/reports/2007/1/12", vp.VirtualPath, "#2-1");

            vp = c.GetVirtualPath(new RequestContext(hc, rd), new RouteValueDictionary {
                { "year", 2007 },
                { "month", 1 }
            }
                                  );
            Assert.IsNotNull(vp, "#3");
            Assert.AreEqual("/myapp/reports/2007/1", vp.VirtualPath, "#3-1");

            vp = c.GetVirtualPath(new RequestContext(hc, rd), new RouteValueDictionary {
                { "year", 2007 },
                { "month", 1 },
                { "day", 12 },
                { "category", 123 }
            }
                                  );
            Assert.IsNotNull(vp, "#4");
            Assert.AreEqual("/myapp/reports/2007/1/12?category=123", vp.VirtualPath, "#4-1");

            vp = c.GetVirtualPath(new RequestContext(hc, rd), new RouteValueDictionary {
                { "year", 2007 },
            }
                                  );
            Assert.IsNull(vp, "#5");
        }
Ejemplo n.º 7
0
        public void MapPageRoute_String_String_String_Bool_RVD_RVD_RVD()
        {
            var c           = new RouteCollection();
            var defaults    = new RouteValueDictionary();
            var constraints = new RouteValueDictionary();
            var dataTokens  = new RouteValueDictionary();

            c.MapPageRoute(null, "{foo}-{bar}", "~/some-url", true, defaults, constraints, dataTokens);
            var hc = new HttpContextStub2("~/some-url", String.Empty, String.Empty);

            hc.SetResponse(new HttpResponseStub(3));
            var rd = c.GetRouteData(hc);

            Assert.IsNotNull(rd, "#A1-1");
            Assert.IsNotNull(rd.RouteHandler, "#A1-2");
            Assert.AreEqual(typeof(PageRouteHandler), rd.RouteHandler.GetType(), "#A1-3");
            Assert.IsTrue(((PageRouteHandler)rd.RouteHandler).CheckPhysicalUrlAccess, "#A1-4");

            c = new RouteCollection();
            AssertExtensions.Throws <ArgumentNullException> (() => {
                c.MapPageRoute("RouteName", null, "~/some-url", true, defaults, constraints, dataTokens);
            }, "#A2");

            c = new RouteCollection();
            c.MapPageRoute("RouteName", String.Empty, "~/some-url", true, defaults, constraints, dataTokens);
            rd = c.GetRouteData(hc);

            Assert.IsNull(rd, "#A2");

            c = new RouteCollection();
            // thrown by PageRouteHandler's constructor
            AssertExtensions.Throws <ArgumentException> (() => {
                c.MapPageRoute("RouteName", "~/some-url", null, true, defaults, constraints, dataTokens);
            }, "#A3");

            c.MapPageRoute(null, "{foo}-{bar}", "~/some-url", false, defaults, constraints, dataTokens);
            rd = c.GetRouteData(hc);

            Assert.IsNotNull(rd, "#A4-1");
            Assert.IsNotNull(rd.RouteHandler, "#A4-2");
            Assert.AreEqual(typeof(PageRouteHandler), rd.RouteHandler.GetType(), "#A4-3");
            Assert.IsFalse(((PageRouteHandler)rd.RouteHandler).CheckPhysicalUrlAccess, "#A4-4");

            c.MapPageRoute(null, "{foo}-{bar}", "~/some-url", false, null, constraints, dataTokens);
            rd = c.GetRouteData(hc);

            Assert.IsNotNull(rd, "#A4-1");
            Assert.IsNotNull(rd.RouteHandler, "#A4-2");
            Assert.AreEqual(typeof(PageRouteHandler), rd.RouteHandler.GetType(), "#A4-3");
            Assert.IsFalse(((PageRouteHandler)rd.RouteHandler).CheckPhysicalUrlAccess, "#A4-4");
        }
Ejemplo n.º 8
0
        public void GetVirtualPathToExistingFile()
        {
            var c = new RouteCollection();

            c.Add(new MyRoute("{foo}/{bar}", new MyRouteHandler()));
            var hc = new HttpContextStub2("~/Test/test.html", String.Empty, ".");

            // it tries to get HttpContextBase.Response, so set it.
            hc.SetResponse(new HttpResponseStub(3));
            var rd  = c.GetRouteData(hc);
            var vpd = c.GetVirtualPath(new RequestContext(hc, rd), rd.Values);

            Assert.AreEqual("./Test/test.html", vpd.VirtualPath, "#1");
            Assert.AreEqual(0, vpd.DataTokens.Count, "#2");
        }
Ejemplo n.º 9
0
        public void PostResolveRequestCacheModifiedPath()
        {
            var m = new UrlRoutingModule();

            RouteTable.Routes.Add(new MyRoute("{foo}/{bar}", new MyRouteHandler()));
            var hc = new HttpContextStub2("~/x/y", "z", "apppath");

            hc.SetResponse(new HttpResponseStub(2));
            try {
                m.PostResolveRequestCache(hc);
                Assert.Fail("#1");
            } catch (ApplicationException ex) {
                Assert.AreEqual("~/UrlRouting.axd", ex.Message, "#2");
            }
        }
Ejemplo n.º 10
0
        public void PostResolveRequestCachePathToExistingFile()
        {
            var m = new UrlRoutingModule();

            RouteTable.Routes.Add(new MyRoute("~/{foo}/{bar}", new MyRouteHandler()));
            var hc = new HttpContextStub2("~/hoge/fuga", String.Empty, ".");

            // it tries to get HttpContextBase.Response, so set it.
            hc.SetResponse(new HttpResponseStub(3));
            try {
                m.PostResolveRequestCache(hc);
                Assert.Fail("#1");
            } catch (ApplicationException ex) {
                Assert.AreEqual("~/UrlRouting.axd", ex.Message, "#2");
            }
        }
Ejemplo n.º 11
0
        public void GetVirtualPath3()
        {
            var c = new RouteCollection();

            c.Add("todo-route",
                  new MyRoute("todo/{action}", new MyRouteHandler())
            {
                Defaults = new RouteValueDictionary(new { controller = "todo", action = "list", page = 0 })
            }
                  );

            c.Add("another-route",
                  new MyRoute("{controller}/{action}", new MyRouteHandler())
            {
                Defaults = new RouteValueDictionary(new { controller = "home", action = "list", page = 0 })
            }
                  );

            var hc = new HttpContextStub2("~/home/list", String.Empty, String.Empty);

            hc.SetResponse(new HttpResponseStub(3));
            var rd = c.GetRouteData(hc);

            Assert.IsNotNull(rd, "#1");
            Assert.AreEqual(3, rd.Values.Count, "#1-1");
            Assert.AreEqual("home", rd.Values["controller"], "#1-2");
            Assert.AreEqual("list", rd.Values["action"], "#1-3");
            Assert.AreEqual(0, rd.Values["page"], "#1-4");

            var vp = c.GetVirtualPath(new RequestContext(hc, rd), "todo-route", new RouteValueDictionary());

            Assert.IsNotNull(vp, "#2");
            Assert.AreEqual("/todo", vp.VirtualPath, "#2-1");

            vp = c.GetVirtualPath(new RequestContext(hc, rd), new RouteValueDictionary());
            Assert.IsNotNull(vp, "#3");
            Assert.AreEqual("/todo", vp.VirtualPath, "#3-1");

            vp = c.GetVirtualPath(new RequestContext(hc, rd), new RouteValueDictionary(new { controller = "home" }));
            Assert.IsNotNull(vp, "#4");
            Assert.AreEqual("/", vp.VirtualPath, "#4-1");

            vp = c.GetVirtualPath(new RequestContext(hc, rd), new RouteValueDictionary(new { controller = "home", extra = "stuff" }));
            Assert.IsNotNull(vp, "#5");
            Assert.AreEqual("/?extra=stuff", vp.VirtualPath, "#5-1");
        }
Ejemplo n.º 12
0
        public void GetVirtualPathCheckVirtualPathToModify()
        {
            var c = new RouteCollection();

            c.Add(new MyRoute("{foo}/{bar}", new MyRouteHandler()));
            var hc = new HttpContextStub2("~/x/y", String.Empty, "apppath");

            // it tries to get HttpContextBase.Response, so set it.
            hc.SetResponse(new HttpResponseStub(1));
            var rd = c.GetRouteData(hc);

            try {
                var vpd = c.GetVirtualPath(new RequestContext(hc, rd), rd.Values);
                Assert.Fail("#1");
            } catch (ApplicationException ex) {
                Assert.AreEqual("apppath/x/y", ex.Message, "#2");
            }
        }
Ejemplo n.º 13
0
        public void GetVirtualPath()
        {
            var c = new RouteCollection();

            c.Add(new MyRoute("{foo}/{bar}", new MyRouteHandler()));
            var hc = new HttpContextStub2("~/x/y", String.Empty, "apppath");

            // it tries to get HttpContextBase.Response, so set it.
            hc.SetResponse(new HttpResponseStub(2));
            var rd = c.GetRouteData(hc);

            Assert.IsNotNull(rd, "#1");

            var vpd = c.GetVirtualPath(new RequestContext(hc, rd), rd.Values);

            Assert.IsNotNull(vpd, "#2");
            Assert.AreEqual("apppath/x/y_modified", vpd.VirtualPath, "#3");
            Assert.AreEqual(0, vpd.DataTokens.Count, "#4");
        }
Ejemplo n.º 14
0
        public void Ignore_String()
        {
            var c = new RouteCollection();

            AssertExtensions.Throws <ArgumentNullException> (() => {
                c.Ignore(null);
            }, "#A1");

            c.Ignore("{resource}.axd/{*pathInfo}");
            var hc = new HttpContextStub2("~/something.axd/pathinfo", String.Empty, String.Empty);

            hc.SetResponse(new HttpResponseStub(3));
            var rd = c.GetRouteData(hc);

            Assert.IsNotNull(rd, "#A1-1");
            Assert.IsNotNull(rd.RouteHandler, "#A1-2");
            Assert.AreEqual(typeof(StopRoutingHandler), rd.RouteHandler.GetType(), "#A1-3");
            Assert.IsTrue(rd.Route is Route, "#A1-4");
            Assert.IsNotNull(((Route)rd.Route).Constraints, "#A1-5");
            Assert.AreEqual(0, ((Route)rd.Route).Constraints.Count, "#A1-6");
        }
Ejemplo n.º 15
0
        public void GetVirtualPath4()
        {
            var c = new RouteCollection();

            c.Add(new MyRoute("blog/{user}/{action}", new MyRouteHandler())
            {
                Defaults = new RouteValueDictionary {
                    { "controller", "blog" },
                    { "user", "admin" }
                }
            }
                  );

            c.Add(new MyRoute("forum/{user}/{action}", new MyRouteHandler())
            {
                Defaults = new RouteValueDictionary {
                    { "controller", "forum" },
                    { "user", "admin" }
                }
            }
                  );

            var hc = new HttpContextStub2("~/forum/admin/Index", String.Empty, String.Empty);

            hc.SetResponse(new HttpResponseStub(3));
            var rd = c.GetRouteData(hc);

            Assert.IsNotNull(rd, "#1");

            var vp = c.GetVirtualPath(new RequestContext(hc, rd), new RouteValueDictionary(new { action = "Index", controller = "forum" }));

            Assert.IsNotNull(vp, "#2");
            Assert.AreEqual("/forum/admin/Index", vp.VirtualPath, "#2-1");

            vp = c.GetVirtualPath(new RequestContext(hc, rd), new RouteValueDictionary(new { action = "Index", controller = "blah" }));
            Assert.IsNull(vp, "#3");
        }
Ejemplo n.º 16
0
		public void GetRouteDataNerdDinner2 ()
		{
			var c = new RouteCollection ();

			c.Add ("UpcomingDiners",
			       new MyRoute ("Dinners/Page/{page}", new MyRouteHandler ()) { Defaults = new RouteValueDictionary (new { controller = "Dinners", action = "Index" }) }
			);

			c.Add ("Default",
			       new MyRoute ("{controller}/{action}/{id}", new MyRouteHandler ()) { Defaults = new RouteValueDictionary (new { controller = "Home", action = "Index", id = "" })}
			);

			var hc = new HttpContextStub2 ("~/Home/Index", String.Empty, String.Empty);
			hc.SetResponse (new HttpResponseStub (3));
			var rd = c.GetRouteData (hc);
			
			Assert.IsNotNull (rd, "#A1");
		}
Ejemplo n.º 17
0
		public void GetVirtualPathToExistingFile ()
		{
			var c = new RouteCollection ();
			c.Add (new MyRoute ("{foo}/{bar}", new MyRouteHandler ()));
			var hc = new HttpContextStub2 ("~/Test/test.html", String.Empty, ".");
			// it tries to get HttpContextBase.Response, so set it.
			hc.SetResponse (new HttpResponseStub (3));
			var rd = c.GetRouteData (hc);
			var vpd = c.GetVirtualPath (new RequestContext (hc, rd), rd.Values);
			Assert.AreEqual ("./Test/test.html", vpd.VirtualPath, "#1");
			Assert.AreEqual (0, vpd.DataTokens.Count, "#2");
		}
Ejemplo n.º 18
0
		public void GetVirtualPath6 ()
		{
			var c = new RouteCollection ();

			c.Add (new MyRoute ("reports/{year}/{month}/{day}", new MyRouteHandler ()) {
					Defaults = new RouteValueDictionary {
							{ "day", 1 }
						}
				}
			);

			var hc = new HttpContextStub2 ("~/reports/2009/05", String.Empty, "/myapp");
			hc.SetResponse (new HttpResponseStub (3));
			var rd = c.GetRouteData (hc);
			Assert.IsNotNull (rd, "#1");

			var vp = c.GetVirtualPath (new RequestContext (hc, rd), new RouteValueDictionary {
					{ "year", 2007 },
					{ "month", 1 },
					{ "day", 12 },
				}
			);
			Assert.IsNotNull (vp, "#2");
			Assert.AreEqual ("/myapp/reports/2007/1/12", vp.VirtualPath, "#2-1");
			
			vp = c.GetVirtualPath (new RequestContext (hc, rd), new RouteValueDictionary {
					{ "year", 2007 },
					{ "month", 1 }
				}
			);
			Assert.IsNotNull (vp, "#3");
			Assert.AreEqual ("/myapp/reports/2007/1", vp.VirtualPath, "#3-1");

			vp = c.GetVirtualPath (new RequestContext (hc, rd), new RouteValueDictionary {
					{ "year", 2007 },
					{ "month", 1 },
					{ "day", 12 },
					{ "category", 123 }
				}
			);
			Assert.IsNotNull (vp, "#4");
			Assert.AreEqual ("/myapp/reports/2007/1/12?category=123", vp.VirtualPath, "#4-1");
			
			vp = c.GetVirtualPath (new RequestContext (hc, rd), new RouteValueDictionary {
					{ "year", 2007 },
				}
			);
			Assert.IsNull (vp, "#5");
		}
Ejemplo n.º 19
0
		public void GetVirtualPath4 ()
		{
			var c = new RouteCollection ();

			c.Add (new MyRoute ("blog/{user}/{action}", new MyRouteHandler ()) {
					Defaults = new RouteValueDictionary {
							{ "controller", "blog" },
							{ "user", "admin" }
						}
				}
			);

			c.Add (new MyRoute ("forum/{user}/{action}", new MyRouteHandler ()) {
					Defaults = new RouteValueDictionary {
							{ "controller", "forum" },
							{ "user", "admin" }
						}
				}
			);

			var hc = new HttpContextStub2 ("~/forum/admin/Index", String.Empty, String.Empty);
			hc.SetResponse (new HttpResponseStub (3));
			var rd = c.GetRouteData (hc);
			Assert.IsNotNull (rd, "#1");

			var vp = c.GetVirtualPath (new RequestContext (hc, rd), new RouteValueDictionary (new { action="Index", controller="forum"}));
			Assert.IsNotNull (vp, "#2");
			Assert.AreEqual ("/forum/admin/Index", vp.VirtualPath, "#2-1");
			
			vp = c.GetVirtualPath (new RequestContext (hc, rd), new RouteValueDictionary (new { action="Index", controller="blah"}));
			Assert.IsNull (vp, "#3");
		}
Ejemplo n.º 20
0
		public void GetVirtualPath3 ()
		{
			var c = new RouteCollection ();

			c.Add ("todo-route",
			       new MyRoute ("todo/{action}", new MyRouteHandler ()) { Defaults = new RouteValueDictionary (new {controller = "todo", action="list", page=0}) }
			);

			c.Add ("another-route",
			       new MyRoute ("{controller}/{action}", new MyRouteHandler ()) { Defaults = new RouteValueDictionary (new {controller = "home", action="list", page=0}) }
			);

			var hc = new HttpContextStub2 ("~/home/list", String.Empty, String.Empty);
			hc.SetResponse (new HttpResponseStub (3));
			var rd = c.GetRouteData (hc);
			Assert.IsNotNull (rd, "#1");
			Assert.AreEqual (3, rd.Values.Count, "#1-1");
			Assert.AreEqual ("home", rd.Values["controller"], "#1-2");
			Assert.AreEqual ("list", rd.Values["action"], "#1-3");
			Assert.AreEqual (0, rd.Values["page"], "#1-4");
			
			var vp = c.GetVirtualPath (new RequestContext (hc, rd), "todo-route", new RouteValueDictionary ());
			Assert.IsNotNull (vp, "#2");
			Assert.AreEqual ("/todo", vp.VirtualPath, "#2-1");

			vp = c.GetVirtualPath (new RequestContext (hc, rd), new RouteValueDictionary ());
			Assert.IsNotNull (vp, "#3");
			Assert.AreEqual ("/todo", vp.VirtualPath, "#3-1");

			vp = c.GetVirtualPath (new RequestContext (hc, rd), new RouteValueDictionary (new { controller = "home" }));
			Assert.IsNotNull (vp, "#4");
			Assert.AreEqual ("/", vp.VirtualPath, "#4-1");

			vp = c.GetVirtualPath (new RequestContext (hc, rd), new RouteValueDictionary (new { controller = "home", extra="stuff" }));
			Assert.IsNotNull (vp, "#5");
			Assert.AreEqual ("/?extra=stuff", vp.VirtualPath, "#5-1");
		}
Ejemplo n.º 21
0
		public void GetVirtualPath2 ()
		{
			var c = new RouteCollection ();
			
			c.Add ("Summary",
			       new MyRoute ("summary/{action}-{type}/{page}", new MyRouteHandler ()) { Defaults = new RouteValueDictionary (new { controller = "Summary", action = "Index", page = 1}) }
			);
			       
			c.Add ("Apis",
			       new MyRoute ("apis/{apiname}", new MyRouteHandler ()) { Defaults = new RouteValueDictionary (new { controller = "Apis", action = "Index" }) }
			);
							    
			c.Add ("Single Report",
			       new MyRoute ("report/{guid}", new MyRouteHandler ()) { Defaults = new RouteValueDictionary (new { controller = "Reports", action = "SingleReport" }) }
			);
			
			c.Add ("Reports",
			       new MyRoute ("reports/{page}", new MyRouteHandler ()) { Defaults = new RouteValueDictionary (new { controller = "Reports", action = "Index", page = 1 }) }
			);

			c.Add ("Default",
			       new MyRoute ("{controller}/{action}", new MyRouteHandler ()) { Defaults = new RouteValueDictionary (new { controller = "Home", action = "Index"}) }
			);

			var hc = new HttpContextStub2 ("~/Home/About", String.Empty, String.Empty);
			hc.SetResponse (new HttpResponseStub (2));
			var rd = c.GetRouteData (hc);
			var vpd = c.GetVirtualPath (new RequestContext (hc, rd), rd.Values);
			Assert.IsNotNull (vpd, "#A1");
			Assert.AreEqual ("/Home/About_modified", vpd.VirtualPath, "#A2");
			Assert.AreEqual (0, vpd.DataTokens.Count, "#A3");

			hc = new HttpContextStub2 ("~/Home/Index", String.Empty, String.Empty);
			hc.SetResponse (new HttpResponseStub (2));
			rd = c.GetRouteData (hc);
			vpd = c.GetVirtualPath (new RequestContext (hc, rd), rd.Values);
			Assert.IsNotNull (vpd, "#B1");
			Assert.AreEqual ("/_modified", vpd.VirtualPath, "#B2");
			Assert.AreEqual (0, vpd.DataTokens.Count, "#B3");

			hc = new HttpContextStub2 ("~/Account/LogOn", String.Empty, String.Empty);
			hc.SetResponse (new HttpResponseStub (2));
			rd = c.GetRouteData (hc);
			vpd = c.GetVirtualPath (new RequestContext (hc, rd), rd.Values);
			Assert.IsNotNull (vpd, "#C1");
			Assert.AreEqual ("/Account/LogOn_modified", vpd.VirtualPath, "#C2");
			Assert.AreEqual (0, vpd.DataTokens.Count, "#C3");

			hc = new HttpContextStub2 ("~/", String.Empty, String.Empty);
			hc.SetResponse (new HttpResponseStub (3));
			rd = c.GetRouteData (hc);
			vpd = c.GetVirtualPath (new RequestContext (hc, rd), new RouteValueDictionary (new { controller = "home" }) );
			Assert.IsNotNull (vpd, "#D1");
			Assert.AreEqual ("/", vpd.VirtualPath, "#D2");
			Assert.AreEqual (0, vpd.DataTokens.Count, "#D3");

			hc = new HttpContextStub2 ("~/", String.Empty, String.Empty);
			hc.SetResponse (new HttpResponseStub (3));
			rd = c.GetRouteData (hc);
			vpd = c.GetVirtualPath (new RequestContext (hc, rd), new RouteValueDictionary (new { controller = "Home" }) );
			Assert.IsNotNull (vpd, "#E1");
			Assert.AreEqual ("/", vpd.VirtualPath, "#E2");
			Assert.AreEqual (0, vpd.DataTokens.Count, "#E3");
		}
Ejemplo n.º 22
0
		public void GetVirtualPathNoApplyAppPathModifier ()
		{
			var c = new RouteCollection ();
			c.Add (new MyRoute ("{foo}/{bar}", new MyRouteHandler ()));
			var hc = new HttpContextStub2 ("~/x/y", String.Empty, "apppath");
			// it tries to call HttpContextBase.Response.ApplyAppPathModifier() and then causes NIE.
			hc.SetResponse (new HttpResponseStub ());
			var rd = c.GetRouteData (hc);
			var vpd = c.GetVirtualPath (new RequestContext (hc, rd), rd.Values);
		}
Ejemplo n.º 23
0
		public void GetVirtualPathCheckVirtualPathToModify ()
		{
			var c = new RouteCollection ();
			c.Add (new MyRoute ("{foo}/{bar}", new MyRouteHandler ()));
			var hc = new HttpContextStub2 ("~/x/y", String.Empty, "apppath");
			// it tries to get HttpContextBase.Response, so set it.
			hc.SetResponse (new HttpResponseStub (1));
			var rd = c.GetRouteData (hc);
			try {
				var vpd = c.GetVirtualPath (new RequestContext (hc, rd), rd.Values);
				Assert.Fail ("#1");
			} catch (ApplicationException ex) {
				Assert.AreEqual ("apppath/x/y", ex.Message, "#2");
			}
		}
Ejemplo n.º 24
0
		public void GetVirtualPath8 ()
		{
			var routes = new RouteCollection();

			routes.Add (new MyRoute ("login", new MyRouteHandler ()) {
				Defaults = new RouteValueDictionary (new { controller = "Home", action = "LogOn" })
			});

			routes.Add (new MyRoute ("{site}/{controller}/{action}", new MyRouteHandler ())	{
				Defaults = new RouteValueDictionary (new { site = "_", controller = "Home", action = "Index" }),
				Constraints = new RouteValueDictionary ( new { site = "_?[0-9A-Za-z-]*" })
			});

			routes.Add (new MyRoute ("{*path}", new MyRouteHandler ()) {
				Defaults = new RouteValueDictionary (new { controller = "Error", action = "NotFound" }),
			});

			var hc = new HttpContextStub2 ("~/login", String.Empty, String.Empty);
			hc.SetResponse (new HttpResponseStub (3));
			var rd = routes.GetRouteData (hc);
			var rvs = new RouteValueDictionary () {
				{ "controller", "Home" },
				{ "action" , "Index" }
			};
			var vpd = routes.GetVirtualPath (new RequestContext (hc, rd), rvs);
			Assert.IsNotNull (vpd, "#A1");
			Assert.AreEqual ("/", vpd.VirtualPath, "#A2");
			Assert.AreEqual (0, vpd.DataTokens.Count, "#A3");

			hc = new HttpContextStub2 ("~/login", String.Empty, String.Empty);
			hc.SetResponse (new HttpResponseStub (3));
			rd = routes.GetRouteData (hc);
			rvs = new RouteValueDictionary () {
				{ "controller", "Home" }
			};
			vpd = routes.GetVirtualPath (new RequestContext (hc, rd), rvs);
			Assert.IsNotNull (vpd, "#B1");
			Assert.AreEqual ("/login", vpd.VirtualPath, "#B2");
			Assert.AreEqual (0, vpd.DataTokens.Count, "#B3");

			hc = new HttpContextStub2 ("~/login", String.Empty, String.Empty);
			hc.SetResponse (new HttpResponseStub (3));
			rd = routes.GetRouteData (hc);
			rvs = new RouteValueDictionary () {
				{ "action" , "Index" }
			};
			vpd = routes.GetVirtualPath (new RequestContext (hc, rd), rvs);
			Assert.IsNotNull (vpd, "#C1");
			Assert.AreEqual ("/", vpd.VirtualPath, "#C2");
			Assert.AreEqual (0, vpd.DataTokens.Count, "#C3");

			hc = new HttpContextStub2 ("~/", String.Empty, String.Empty);
			rd = routes.GetRouteData (hc);
			Assert.IsNotNull (rd, "#D1");
		}
Ejemplo n.º 25
0
		public void Pipeline3 ()
		{
			var m = new UrlRoutingModule ();
			RouteTable.Routes.Add (new MyRoute ("{foo}/{bar}", new MyRouteHandler ()));
#if NET_4_0
			var hc = new HttpContextStub5 ("~/x/y", String.Empty, "apppath");
#else
			var hc = new HttpContextStub2 ("~/x/y", String.Empty, "apppath");
#endif
			hc.SetResponse (new HttpResponseStub (2));
#if NET_4_0
			Assert.IsNull (m.RouteCollection.GetRouteData (hc), "#0");
#else
			Assert.IsNotNull (m.RouteCollection.GetRouteData (hc), "#0");
			m.PostResolveRequestCache (hc);
			try {
				m.PostMapRequestHandler (hc);
				Assert.Fail ("#1");
			} catch (ApplicationException ex) {
				Assert.AreEqual ("~/UrlRouting.axd", ex.Message, "#2");
			}
#endif
		}
Ejemplo n.º 26
0
        public void GetVirtualPath2()
        {
            var c = new RouteCollection();

            c.Add("Summary",
                  new MyRoute("summary/{action}-{type}/{page}", new MyRouteHandler())
            {
                Defaults = new RouteValueDictionary(new { controller = "Summary", action = "Index", page = 1 })
            }
                  );

            c.Add("Apis",
                  new MyRoute("apis/{apiname}", new MyRouteHandler())
            {
                Defaults = new RouteValueDictionary(new { controller = "Apis", action = "Index" })
            }
                  );

            c.Add("Single Report",
                  new MyRoute("report/{guid}", new MyRouteHandler())
            {
                Defaults = new RouteValueDictionary(new { controller = "Reports", action = "SingleReport" })
            }
                  );

            c.Add("Reports",
                  new MyRoute("reports/{page}", new MyRouteHandler())
            {
                Defaults = new RouteValueDictionary(new { controller = "Reports", action = "Index", page = 1 })
            }
                  );

            c.Add("Default",
                  new MyRoute("{controller}/{action}", new MyRouteHandler())
            {
                Defaults = new RouteValueDictionary(new { controller = "Home", action = "Index" })
            }
                  );

            var hc = new HttpContextStub2("~/Home/About", String.Empty, String.Empty);

            hc.SetResponse(new HttpResponseStub(2));
            var rd  = c.GetRouteData(hc);
            var vpd = c.GetVirtualPath(new RequestContext(hc, rd), rd.Values);

            Assert.IsNotNull(vpd, "#A1");
            Assert.AreEqual("/Home/About_modified", vpd.VirtualPath, "#A2");
            Assert.AreEqual(0, vpd.DataTokens.Count, "#A3");

            hc = new HttpContextStub2("~/Home/Index", String.Empty, String.Empty);
            hc.SetResponse(new HttpResponseStub(2));
            rd  = c.GetRouteData(hc);
            vpd = c.GetVirtualPath(new RequestContext(hc, rd), rd.Values);
            Assert.IsNotNull(vpd, "#B1");
            Assert.AreEqual("/_modified", vpd.VirtualPath, "#B2");
            Assert.AreEqual(0, vpd.DataTokens.Count, "#B3");

            hc = new HttpContextStub2("~/Account/LogOn", String.Empty, String.Empty);
            hc.SetResponse(new HttpResponseStub(2));
            rd  = c.GetRouteData(hc);
            vpd = c.GetVirtualPath(new RequestContext(hc, rd), rd.Values);
            Assert.IsNotNull(vpd, "#C1");
            Assert.AreEqual("/Account/LogOn_modified", vpd.VirtualPath, "#C2");
            Assert.AreEqual(0, vpd.DataTokens.Count, "#C3");

            hc = new HttpContextStub2("~/", String.Empty, String.Empty);
            hc.SetResponse(new HttpResponseStub(3));
            rd  = c.GetRouteData(hc);
            vpd = c.GetVirtualPath(new RequestContext(hc, rd), new RouteValueDictionary(new { controller = "home" }));
            Assert.IsNotNull(vpd, "#D1");
            Assert.AreEqual("/", vpd.VirtualPath, "#D2");
            Assert.AreEqual(0, vpd.DataTokens.Count, "#D3");

            hc = new HttpContextStub2("~/", String.Empty, String.Empty);
            hc.SetResponse(new HttpResponseStub(3));
            rd  = c.GetRouteData(hc);
            vpd = c.GetVirtualPath(new RequestContext(hc, rd), new RouteValueDictionary(new { controller = "Home" }));
            Assert.IsNotNull(vpd, "#E1");
            Assert.AreEqual("/", vpd.VirtualPath, "#E2");
            Assert.AreEqual(0, vpd.DataTokens.Count, "#E3");
        }
Ejemplo n.º 27
0
		public void PostResolveRequestCachePathToExistingFile ()
		{
			var m = new UrlRoutingModule ();
			RouteTable.Routes.Add (new MyRoute ("~/{foo}/{bar}", new MyRouteHandler ()));
			var hc = new HttpContextStub2 ("~/hoge/fuga", String.Empty, ".");
			// it tries to get HttpContextBase.Response, so set it.
			hc.SetResponse (new HttpResponseStub (3));
			try {
				m.PostResolveRequestCache (hc);
				Assert.Fail ("#1");
			} catch (ApplicationException ex) {
				Assert.AreEqual ("~/UrlRouting.axd", ex.Message, "#2");
			}
		}
Ejemplo n.º 28
0
		public void MapPageRoute_String_String_String ()
		{
			var c = new RouteCollection ();

			c.MapPageRoute (null, "{foo}-{bar}", "~/some-url");
			var hc = new HttpContextStub2 ("~/some-url", String.Empty, String.Empty);
			hc.SetResponse (new HttpResponseStub (3));
			var rd = c.GetRouteData (hc);

			Assert.IsNotNull (rd, "#A1-1");
			Assert.IsNotNull (rd.RouteHandler, "#A1-2");
			Assert.AreEqual (typeof (PageRouteHandler), rd.RouteHandler.GetType (), "#A1-3");

			c = new RouteCollection ();
			AssertExtensions.Throws<ArgumentNullException> (() => {
				c.MapPageRoute ("RouteName", null, "~/some-url");
			}, "#A2");

			c = new RouteCollection ();
			c.MapPageRoute ("RouteName", String.Empty, "~/some-url");
			rd = c.GetRouteData (hc);

			Assert.IsNull (rd, "#A2");

			c = new RouteCollection ();
			// thrown by PageRouteHandler's constructor
			AssertExtensions.Throws<ArgumentException> (() => {
				c.MapPageRoute ("RouteName", "~/some-url", null);
			}, "#A3");
		}
Ejemplo n.º 29
0
		public void Ignore_String ()
		{
			var c = new RouteCollection ();

			AssertExtensions.Throws<ArgumentNullException> (() => {
				c.Ignore (null);
			}, "#A1");

			c.Ignore ("{resource}.axd/{*pathInfo}");
			var hc = new HttpContextStub2 ("~/something.axd/pathinfo", String.Empty, String.Empty);
			hc.SetResponse (new HttpResponseStub (3));
			var rd = c.GetRouteData (hc);

			Assert.IsNotNull (rd, "#A1-1");
			Assert.IsNotNull (rd.RouteHandler, "#A1-2");
			Assert.AreEqual (typeof (StopRoutingHandler), rd.RouteHandler.GetType (), "#A1-3");
			Assert.IsTrue (rd.Route is Route, "#A1-4");
			Assert.IsNotNull (((Route) rd.Route).Constraints, "#A1-5");
			Assert.AreEqual (0, ((Route) rd.Route).Constraints.Count, "#A1-6");
		}
Ejemplo n.º 30
0
		public void GetVirtualPath ()
		{
			var c = new RouteCollection ();
			c.Add (new MyRoute ("{foo}/{bar}", new MyRouteHandler ()));
			var hc = new HttpContextStub2 ("~/x/y", String.Empty, "apppath");
			// it tries to get HttpContextBase.Response, so set it.
			hc.SetResponse (new HttpResponseStub (2));
			var rd = c.GetRouteData (hc);
			Assert.IsNotNull (rd, "#1");
			
			var vpd = c.GetVirtualPath (new RequestContext (hc, rd), rd.Values);
			Assert.IsNotNull (vpd, "#2");
			Assert.AreEqual ("apppath/x/y_modified", vpd.VirtualPath, "#3");
			Assert.AreEqual (0, vpd.DataTokens.Count, "#4");
		}
Ejemplo n.º 31
0
		public void Ignore_String_Object ()
		{
			var c = new RouteCollection ();

			AssertExtensions.Throws<ArgumentNullException> (() => {
				c.Ignore (null, new { allaspx = @".*\.aspx(/.*)?" });
			}, "#A1");

			c.Ignore ("{*allaspx}", new { allaspx = @".*\.aspx(/.*)?" });
			var hc = new HttpContextStub2 ("~/page.aspx", String.Empty, String.Empty);
			hc.SetResponse (new HttpResponseStub (3));
			var rd = c.GetRouteData (hc);

			Assert.IsNotNull (rd, "#A1-1");
			Assert.IsNotNull (rd.RouteHandler, "#A1-2");
			Assert.AreEqual (typeof (StopRoutingHandler), rd.RouteHandler.GetType (), "#A1-3");
			Assert.IsTrue (rd.Route is Route, "#A1-4");
			Assert.IsNotNull (((Route) rd.Route).Constraints, "#A1-5");
			Assert.AreEqual (1, ((Route) rd.Route).Constraints.Count, "#A1-6");
			Assert.AreEqual (@".*\.aspx(/.*)?", ((Route) rd.Route).Constraints ["allaspx"], "#A1-7");

			c = new RouteCollection ();
			c.Ignore ("{*allaspx}", "something invalid");

			AssertExtensions.Throws<InvalidOperationException> (() => {
				rd = c.GetRouteData (hc);
			}, "#A2");
		}
Ejemplo n.º 32
0
        public void GetVirtualPath8()
        {
            var routes = new RouteCollection();

            routes.Add(new MyRoute("login", new MyRouteHandler())
            {
                Defaults = new RouteValueDictionary(new { controller = "Home", action = "LogOn" })
            });

            routes.Add(new MyRoute("{site}/{controller}/{action}", new MyRouteHandler())
            {
                Defaults    = new RouteValueDictionary(new { site = "_", controller = "Home", action = "Index" }),
                Constraints = new RouteValueDictionary(new { site = "_?[0-9A-Za-z-]*" })
            });

            routes.Add(new MyRoute("{*path}", new MyRouteHandler())
            {
                Defaults = new RouteValueDictionary(new { controller = "Error", action = "NotFound" }),
            });

            var hc = new HttpContextStub2("~/login", String.Empty, String.Empty);

            hc.SetResponse(new HttpResponseStub(3));
            var rd  = routes.GetRouteData(hc);
            var rvs = new RouteValueDictionary()
            {
                { "controller", "Home" },
                { "action", "Index" }
            };
            var vpd = routes.GetVirtualPath(new RequestContext(hc, rd), rvs);

            Assert.IsNotNull(vpd, "#A1");
            Assert.AreEqual("/", vpd.VirtualPath, "#A2");
            Assert.AreEqual(0, vpd.DataTokens.Count, "#A3");

            hc = new HttpContextStub2("~/login", String.Empty, String.Empty);
            hc.SetResponse(new HttpResponseStub(3));
            rd  = routes.GetRouteData(hc);
            rvs = new RouteValueDictionary()
            {
                { "controller", "Home" }
            };
            vpd = routes.GetVirtualPath(new RequestContext(hc, rd), rvs);
            Assert.IsNotNull(vpd, "#B1");
            Assert.AreEqual("/login", vpd.VirtualPath, "#B2");
            Assert.AreEqual(0, vpd.DataTokens.Count, "#B3");

            hc = new HttpContextStub2("~/login", String.Empty, String.Empty);
            hc.SetResponse(new HttpResponseStub(3));
            rd  = routes.GetRouteData(hc);
            rvs = new RouteValueDictionary()
            {
                { "action", "Index" }
            };
            vpd = routes.GetVirtualPath(new RequestContext(hc, rd), rvs);
            Assert.IsNotNull(vpd, "#C1");
            Assert.AreEqual("/", vpd.VirtualPath, "#C2");
            Assert.AreEqual(0, vpd.DataTokens.Count, "#C3");

            hc = new HttpContextStub2("~/", String.Empty, String.Empty);
            rd = routes.GetRouteData(hc);
            Assert.IsNotNull(rd, "#D1");
        }
Ejemplo n.º 33
0
		public void MapPageRoute_String_String_String_Bool_RVD_RVD_RVD ()
		{
			var c = new RouteCollection ();
			var defaults = new RouteValueDictionary ();
			var constraints = new RouteValueDictionary ();
			var dataTokens = new RouteValueDictionary ();

			c.MapPageRoute (null, "{foo}-{bar}", "~/some-url", true, defaults, constraints, dataTokens);
			var hc = new HttpContextStub2 ("~/some-url", String.Empty, String.Empty);
			hc.SetResponse (new HttpResponseStub (3));
			var rd = c.GetRouteData (hc);

			Assert.IsNotNull (rd, "#A1-1");
			Assert.IsNotNull (rd.RouteHandler, "#A1-2");
			Assert.AreEqual (typeof (PageRouteHandler), rd.RouteHandler.GetType (), "#A1-3");
			Assert.IsTrue (((PageRouteHandler) rd.RouteHandler).CheckPhysicalUrlAccess, "#A1-4");

			c = new RouteCollection ();
			AssertExtensions.Throws<ArgumentNullException> (() => {
				c.MapPageRoute ("RouteName", null, "~/some-url", true, defaults, constraints, dataTokens);
			}, "#A2");

			c = new RouteCollection ();
			c.MapPageRoute ("RouteName", String.Empty, "~/some-url", true, defaults, constraints, dataTokens);
			rd = c.GetRouteData (hc);

			Assert.IsNull (rd, "#A2");

			c = new RouteCollection ();
			// thrown by PageRouteHandler's constructor
			AssertExtensions.Throws<ArgumentException> (() => {
				c.MapPageRoute ("RouteName", "~/some-url", null, true, defaults, constraints, dataTokens);
			}, "#A3");

			c.MapPageRoute (null, "{foo}-{bar}", "~/some-url", false, defaults, constraints, dataTokens);
			rd = c.GetRouteData (hc);

			Assert.IsNotNull (rd, "#A4-1");
			Assert.IsNotNull (rd.RouteHandler, "#A4-2");
			Assert.AreEqual (typeof (PageRouteHandler), rd.RouteHandler.GetType (), "#A4-3");
			Assert.IsFalse (((PageRouteHandler) rd.RouteHandler).CheckPhysicalUrlAccess, "#A4-4");

			c.MapPageRoute (null, "{foo}-{bar}", "~/some-url", false, null, constraints, dataTokens);
			rd = c.GetRouteData (hc);

			Assert.IsNotNull (rd, "#A4-1");
			Assert.IsNotNull (rd.RouteHandler, "#A4-2");
			Assert.AreEqual (typeof (PageRouteHandler), rd.RouteHandler.GetType (), "#A4-3");
			Assert.IsFalse (((PageRouteHandler) rd.RouteHandler).CheckPhysicalUrlAccess, "#A4-4");
		}
Ejemplo n.º 34
0
		public void PostResolveRequestCacheModifiedPath ()
		{
			var m = new UrlRoutingModule ();
			RouteTable.Routes.Add (new MyRoute ("{foo}/{bar}", new MyRouteHandler ()));
			var hc = new HttpContextStub2 ("~/x/y", "z", "apppath");
			hc.SetResponse (new HttpResponseStub (2));
			try {
				m.PostResolveRequestCache (hc);
				Assert.Fail ("#1");
			} catch (ApplicationException ex) {
				Assert.AreEqual ("~/UrlRouting.axd", ex.Message, "#2");
			}
		}