⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ruletest.java

📁 UrlRewriteFilter 是一个不错的URL转换工具
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        condition.setType("port");
        condition.setValue("90");
        condition.setNext("or");
        rule.addCondition(condition);
        Condition condition2 = new Condition();
        condition2.setType("port");
        condition2.setValue("99");
        rule.addCondition(condition2);
        rule.initialise(null);
        MockRequest request = new MockRequest("from");
        request.setServerPort(88);
        RewrittenUrl rewrittenUrl = rule.matches(request.getRequestURI(), request, response);
        assertNull("should not be rewritten", rewrittenUrl);

        request.setServerPort(90);
        RewrittenUrl rewrittenUrl2 = rule.matches(request.getRequestURI(), request, response);
        assertEquals("should not be rewritten", "to", rewrittenUrl2.getTarget());

        request.setServerPort(99);
        RewrittenUrl rewrittenUrl3 = rule.matches(request.getRequestURI(), request, response);
        assertEquals("should not be rewritten", "to", rewrittenUrl3.getTarget());
    }

    public void testRuleConditionsAnd() throws IOException, ServletException, InvocationTargetException {
        NormalRule rule = new NormalRule();
        rule.setFrom("from");
        rule.setTo("to");
        Condition condition = new Condition();
        condition.setType("port");
        condition.setValue("90");
        rule.addCondition(condition);
        Condition condition2 = new Condition();
        condition2.setType("character-encoding");
        condition2.setValue("utf8");
        rule.addCondition(condition2);
        rule.initialise(null);
        MockRequest request = new MockRequest("from");
        request.setServerPort(88);
        RewrittenUrl rewrittenUrl = rule.matches(request.getRequestURI(), request, response);
        assertNull("should not be rewritten", rewrittenUrl);

        request.setServerPort(90);
        RewrittenUrl rewrittenUrl2 = rule.matches(request.getRequestURI(), request, response);
        assertNull("should not be rewritten", rewrittenUrl2);

        request.setCharacterEncoding("utf8");
        RewrittenUrl rewrittenUrl3 = rule.matches(request.getRequestURI(), request, response);
        assertEquals("should be rewritten", "to", rewrittenUrl3.getTarget());
    }

    public void testRuleConditionsReplaceAll() throws IOException, ServletException, InvocationTargetException {
        NormalRule rule = new NormalRule();
        rule.setFrom("-");
        rule.setTo("_");
        Condition condition = new Condition();
        condition.setType("request-uri");
        condition.setValue("/hi-something-to-to.html");
        rule.addCondition(condition);
        rule.initialise(null);
        MockRequest request = new MockRequest("/hi-something-to-to.html");
        request.setServerPort(88);
        RewrittenUrl rewrittenUrl = rule.matches(request.getRequestURI(), request, response);
        assertEquals("/hi_something_to_to.html", rewrittenUrl.getTarget());
    }

    public void testRuleBadRegex() throws IOException, ServletException, InvocationTargetException {
        NormalRule rule = new NormalRule();
        rule.setFrom("fro[m");
        rule.setTo("to");
        rule.initialise(null);
        MockRequest request = new MockRequest("from");
        RewrittenUrl rewrittenUrl = rule.matches(request.getRequestURI(), request, response);
        assertNull(rewrittenUrl);
    }

    public void testRuleCaseInsensitive() throws IOException, ServletException, InvocationTargetException {
        NormalRule rule = new NormalRule();
        rule.setFrom("fRom");
        rule.setTo("to");
        Condition condition = new Condition();
        condition.setName("agent");
        condition.setValue("aAa");
        rule.addCondition(condition);
        rule.initialise(null);
        MockRequest request = new MockRequest("from");
        request.addHeader("agent", "aaa");
        RewrittenUrl rewrittenUrl = rule.matches(request.getRequestURI(), request, response);
        assertEquals(rewrittenUrl.getTarget(), "to");
    }

    public void testRuleRewriteReq() throws IOException, ServletException, InvocationTargetException {
        NormalRule rule = new NormalRule();
        rule.setFrom("from");
        rule.setEncodeToUrl(true);
        rule.setTo("to");
        rule.setToType("permanent-redirect");
        rule.initialise(null);
        MockRequest request = new MockRequest("from");
        NormalRewrittenUrl rewrittenUrl = (NormalRewrittenUrl) rule.matches(request.getRequestURI(), request, response);
        assertTrue(rewrittenUrl.isEncode());
        assertTrue(rewrittenUrl.isPermanentRedirect());
    }

    public void testRuleNoInit() throws IOException, ServletException, InvocationTargetException {
        NormalRule rule = new NormalRule();
        rule.setFrom("from");
        rule.setTo("to");
        MockRequest request = new MockRequest("from");
        RewrittenUrl rewrittenUrl = rule.matches(request.getRequestURI(), request, response);
        assertNull(rewrittenUrl);
    }

    public void testRuleNotEnabled() throws IOException, ServletException, InvocationTargetException {
        NormalRule rule = new NormalRule();
        rule.setFrom("from");
        rule.setTo("to");
        rule.setEnabled(false);
        rule.initialise(null);
        MockRequest request = new MockRequest("from");
        RewrittenUrl rewrittenUrl = rule.matches(request.getRequestURI(), request, response);
        assertNull(rewrittenUrl);
    }

    public void testRule02() throws IOException, ServletException, InvocationTargetException {
        NormalRule rule = new NormalRule();
        rule.setFrom("/countries/([a-z]+)/");
        rule.setTo("/countries/index.jsp?c=$1");
        rule.setToType("redirect");
        rule.initialise(null);

        MockRequest request = new MockRequest("/countries/australia/");
        NormalRewrittenUrl rewrittenUrl = (NormalRewrittenUrl) rule.matches(request.getRequestURI(), request, response);
        MockRequest request2 = new MockRequest("/blah/");
        NormalRewrittenUrl rewrittenUrl2 = (NormalRewrittenUrl) rule.matches(request2.getRequestURI(), request2, response);

        assertEquals("/countries/index.jsp?c=australia", rewrittenUrl.getTarget());
        assertEquals("redirect", rule.getToType());
        assertTrue(rewrittenUrl.isRedirect());
        assertNull("Rule should not match", rewrittenUrl2);
    }


    public void testRuleCondition() throws IOException, ServletException, InvocationTargetException {
        NormalRule rule = new NormalRule();
        rule.setFrom("from");
        rule.setTo("to");
        Condition condition = new Condition();
        condition.setType("port");
        condition.setValue("5050");
        rule.addCondition(condition);
        rule.initialise(null);
        MockRequest request = new MockRequest("from");
        request.setServerPort(5050);
        RewrittenUrl rewrittenUrl = rule.matches(request.getRequestURI(), request, response);
        assertEquals("to", rewrittenUrl.getTarget());
    }

    public void testRuleErikBug() throws IOException, ServletException, InvocationTargetException {
        // see http://www.erikisaksson.com/blog/2004/07/27/1090952764000.html
        NormalRule rule = new NormalRule();
        rule.setFrom("^(.*)$");
        rule.setTo("http://short.com/context$1");
        Condition condition = new Condition();
        condition.setName("host");
        condition.setOperator("notequal");
        condition.setValue("short\\.com");
        rule.addCondition(condition);
        rule.initialise(null);
        MockRequest request = new MockRequest("/blahurl");
        request.addHeader("host", "short.com");

        RewrittenUrl rewrittenUrl = rule.matches(request.getRequestURI(), request, response);
        assertEquals("no rewriting should be necessary", null, rewrittenUrl);

        request.addHeader("host", "www.notexample.com");
        RewrittenUrl rewrittenUrl2 = rule.matches(request.getRequestURI(), request, response);
        assertEquals("http://short.com/context/blahurl", rewrittenUrl2.getTarget());
    }


    public void testRule08() throws IOException, ServletException, InvocationTargetException {
        NormalRule rule = new NormalRule();
        rule.setFrom("/$");
        rule.setTo("/opencms/opencms/index.html");
        rule.initialise(null);

        MockRequest request = new MockRequest("/");
        RewrittenUrl rewrittenUrl = rule.matches(request.getRequestURI(), request, response);
        assertEquals("/opencms/opencms/index.html", rewrittenUrl.getTarget());

        request = new MockRequest("/xyz");
        rewrittenUrl = rule.matches(request.getRequestURI(), request, response);
        assertNull(rewrittenUrl);
    }


    public void testRuleTrailingSlashRedirect() throws IOException, ServletException, InvocationTargetException {
        NormalRule rule = new NormalRule();
        rule.setFrom("/~quux/foo$");
        rule.setTo("/~quux/foo/");
        rule.initialise(null);

        MockRequest request = new MockRequest("/~quux/foo");
        RewrittenUrl rewrittenUrl = rule.matches(request.getRequestURI(), request, response);
        assertEquals("/~quux/foo/", rewrittenUrl.getTarget());
    }

    public void testRule10() throws IOException, ServletException, InvocationTargetException {
        NormalRule rule = new NormalRule();
        rule.setFrom("/products/([0-9]+)");
        rule.setTo("/index.jsp?product_id=$1");
        rule.initialise(null);
        MockRequest request = new MockRequest("/products/105874");
        RewrittenUrl rewrittenUrl = rule.matches(request.getRequestURI(), request, response);
        assertEquals("/index.jsp?product_id=105874", rewrittenUrl.getTarget());
    }


    public void testRule11() throws IOException, ServletException, InvocationTargetException {
        NormalRule rule = new NormalRule();
        rule.setFrom("^/([a-z]+)/$");
        rule.setTo("/$1/index.jsp");
        rule.initialise(null);
        MockRequest request = new MockRequest("/dir/");
        RewrittenUrl rewrittenUrl = rule.matches(request.getRequestURI(), request, response);
        assertEquals("/dir/index.jsp", rewrittenUrl.getTarget());
    }


    public void testFailedRule1() throws IOException, ServletException, InvocationTargetException {
        String uri = "/article/blah/";
        NormalRule rule = new NormalRule();
        rule.setFrom("/article/([0-9]+)/([0-9]+)/([0-9]+)/([a-zA-Z0-9]+)/");
        rule.setTo("/article/index.jsp?year=$1&month=$2&day=$3&code=$4");
        rule.initialise(null);

        MockRequest request = new MockRequest(uri);
        RewrittenUrl rewrittenUrl = rule.matches(request.getRequestURI(), request, response);
        assertNull(rewrittenUrl);
    }


    public void testRuleConditionsUserInRole() throws IOException, ServletException, InvocationTargetException {
        NormalRule rule = new NormalRule();
        rule.setFrom("from");
        rule.setTo("to");

        Condition condition = new Condition();
        condition.setType("user-in-role");
        condition.setValue("admin");
        condition.setOperator("notequal");
        rule.addCondition(condition);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -