public void testParseNs2() { Route x = LinkMap.Parse("/u/Index"); Assert.AreEqual("Admin.Users", x.ns); Assert.AreEqual("TestUser", x.controller); Assert.AreEqual("Index", x.action); x = LinkMap.Parse("/u/List"); Assert.AreEqual("Admin.Users", x.ns); Assert.AreEqual("TestUser", x.controller); Assert.AreEqual("List", x.action); x = LinkMap.Parse("/u/Show/88"); Assert.AreEqual("Admin.Users", x.ns); Assert.AreEqual("TestUser", x.controller); Assert.AreEqual("Show", x.action); Assert.AreEqual(88, x.id); x = LinkMap.Parse("/addr/99"); Assert.AreEqual("Admin.Users", x.ns); Assert.AreEqual("TestUser", x.controller); Assert.AreEqual("Address", x.action); Assert.AreEqual(99, x.id); }
public void testSameMap() { LinkMap.SetLinkToLow(false); Assert.AreEqual("/blog/Index.aspx", LinkMap.To(new Blog.BlogController().Index)); Assert.AreEqual("/blog/List.aspx", LinkMap.To(new Blog.BlogController().List)); Assert.AreEqual("/blog/Show/88.aspx", LinkMap.To(new Blog.BlogController().Show, 88)); Route x = LinkMap.Parse("/blog/Index"); Assert.AreEqual("Blog", x.ns); Assert.AreEqual("Blog", x.controller); Assert.AreEqual("Index", x.action); // 正常url x = LinkMap.Parse("/Blog/Blog/Index"); Assert.IsNull(x); x = LinkMap.Parse("/space/zhang/Blog1/Blog/Index"); Assert.IsNull(x); LinkMap.SetLinkToLow(true); x = LinkMap.Parse("/space/zhang/blog1/blog/index"); Assert.IsNull(x); }
public void testParseNs() { Route x = LinkMap.Parse("/cm/Index"); Assert.AreEqual("Admin", x.ns); Assert.AreEqual("TestComment", x.controller); Assert.AreEqual("Index", x.action); x = LinkMap.Parse("/cm/List"); Assert.AreEqual("Admin", x.ns); Assert.AreEqual("TestComment", x.controller); Assert.AreEqual("List", x.action); x = LinkMap.Parse("/cm/Show/88"); Assert.AreEqual("Admin", x.ns); Assert.AreEqual("TestComment", x.controller); Assert.AreEqual("Show", x.action); Assert.AreEqual(88, x.id); // 未映射 x = LinkMap.Parse("/cms/List"); Assert.IsNull(x); x = LinkMap.Parse("/c/List"); Assert.IsNull(x); }
public void testParseFull() { int appId = 5; Route x = LinkMap.Parse("/space/zhang/post5/Index"); Assert.AreEqual("TestPost", x.controller); Assert.AreEqual("Index", x.action); Assert.AreEqual("zhang", x.owner); Assert.AreEqual("user", x.ownerType); Assert.AreEqual(appId, x.appId); x = LinkMap.Parse("/space/zhang/category8"); Assert.AreEqual("TestPost", x.controller); Assert.AreEqual("List", x.action); Assert.AreEqual("zhang", x.owner); Assert.AreEqual("user", x.ownerType); Assert.AreEqual(8, x.appId); // 未映射 x = LinkMap.Parse("/space/zhang/computer8/99"); Assert.IsNull(x); }
/// <summary> /// url 必须没有后缀名 /// </summary> /// <param name="cleanUrl">必须没有后缀名</param> /// <returns></returns> public static Route RecognizePath(String cleanUrl) { if (strUtil.IsNullOrEmpty(cleanUrl) || cleanUrl.ToLower().Equals("default")) { cleanUrl = "default"; } logger.Info("RecognizePath begin, clearnUrl=" + cleanUrl); Route x = LinkMap.Parse(cleanUrl); if (x != null) { return(x); } if (cleanUrl.StartsWith("/")) { cleanUrl = strUtil.TrimStart(cleanUrl, "/"); } String[] arrPathRow = cleanUrl.Split(Separator); foreach (RouteSetting route in RouteTable.GetRoutes()) { if (!isMatched(route, arrPathRow)) { continue; } RouteParseInfo routeInfo = new RouteParseInfo(MemberPath.getOwnerInfo(arrPathRow), arrPathRow); processOwnerNamespaceAppId(routeInfo, route); Route result = getResult(route, routeInfo); if (result == null) { continue; } setRouteInfo(result, routeInfo, cleanUrl); return(result); } return(null); }
public void testParse() { LinkMap.SetLinkToLow(false); Route x = LinkMap.Parse("/post8/Index"); Assert.AreEqual("TestPost", x.controller); Assert.AreEqual("Index", x.action); Assert.AreEqual(8, x.appId); x = LinkMap.Parse("/category8"); Assert.AreEqual("TestPost", x.controller); Assert.AreEqual("List", x.action); Assert.AreEqual(8, x.appId); x = LinkMap.Parse("/post8/Show/88"); Assert.AreEqual("TestPost", x.controller); Assert.AreEqual("Show", x.action); Assert.AreEqual(88, x.id); Assert.AreEqual(8, x.appId); x = LinkMap.Parse("/product8/99"); Assert.AreEqual("TestPost", x.controller); Assert.AreEqual("Product", x.action); Assert.AreEqual(99, x.id); Assert.AreEqual(8, x.appId); // 未映射 x = LinkMap.Parse("/computer8/99"); Assert.IsNull(x); x = LinkMap.Parse("/categoryList"); Assert.IsNull(x); x = LinkMap.Parse("/cat"); Assert.IsNull(x); LinkMap.SetLinkToLow(true); x = LinkMap.Parse("/post/index"); Assert.AreEqual("TestPost", x.controller); Assert.AreEqual("index", x.action); // action由path指定 x = LinkMap.Parse("/post/Index"); Assert.AreEqual("TestPost", x.controller); Assert.AreEqual("Index", x.action); // action由path指定 x = LinkMap.Parse("/category"); Assert.AreEqual("TestPost", x.controller); Assert.AreEqual("List", x.action); x = LinkMap.Parse("/Category"); Assert.AreEqual("TestPost", x.controller); Assert.AreEqual("List", x.action); x = LinkMap.Parse("/post/show/88"); Assert.AreEqual("TestPost", x.controller); Assert.AreEqual("show", x.action); // action由path指定 Assert.AreEqual(88, x.id); x = LinkMap.Parse("/post/Show/88"); Assert.AreEqual("TestPost", x.controller); Assert.AreEqual("Show", x.action); // action由path指定 Assert.AreEqual(88, x.id); x = LinkMap.Parse("/product/99"); Assert.AreEqual("TestPost", x.controller); Assert.AreEqual("Product", x.action); Assert.AreEqual(99, x.id); x = LinkMap.Parse("/Product/99"); Assert.AreEqual("TestPost", x.controller); Assert.AreEqual("Product", x.action); Assert.AreEqual(99, x.id); }