Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        /// <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);
        }
Esempio n. 6
0
        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);
        }