testtagutils.java

来自「ActionServlet源码 struts的一个步骤都有 知道本来有视频的太」· Java 代码 · 共 1,873 行 · 第 1/5 页

JAVA
1,873
字号

        try {
            url = tagutils.computeURL(pageContext, null, null, "/bar", null,
                    null, null, null, false);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertEquals("url value", "/myapp/WEB-INF/pages/2/bar", url);
    }

    // Second module -- Forward with relative path (non-context-relative)
    public void testComputeURL2f() {
        request.setAttribute(Globals.MODULE_KEY, moduleConfig2);
        request.setPathElements("/myapp", "/2/action.do", null, null);

        String url = null;

        try {
            url = tagutils.computeURL(pageContext, "relative1", null, null,
                    null, null, null, null, false);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertEquals("url value",
        //                     "/myapp/2/relative.jsp",
        "relative.jsp", url);
    }

    // Second module -- Forward with relative path (context-relative)
    public void testComputeURL2g() {
        request.setAttribute(Globals.MODULE_KEY, moduleConfig2);
        request.setPathElements("/myapp", "/2/action.do", null, null);

        String url = null;

        try {
            url = tagutils.computeURL(pageContext, "relative2", null, null,
                    null, null, null, null, false);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertEquals("url value",
        //                     "/myapp/relative.jsp",
        "relative.jsp", url);
    }

    // Second module -- Forward with external path
    public void testComputeURL2h() {
        request.setAttribute(Globals.MODULE_KEY, moduleConfig2);
        request.setPathElements("/myapp", "/2/action.do", null, null);

        String url = null;

        try {
            url = tagutils.computeURL(pageContext, "external", null, null,
                    null, null, null, null, false);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertEquals("url value", "http://struts.apache.org/", url);
    }

    // Add parameters only -- forward URL
    public void testComputeURL3a() {
        request.setPathElements("/myapp", "/action.do", null, null);

        Map map = new HashMap();

        map.put("foo1", "bar1");
        map.put("foo2", "bar2");

        String url = null;

        try {
            url = tagutils.computeURL(pageContext, null, null, "/bar", null,
                    null, map, null, false);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertTrue("url value",
            url.equals("/myapp/bar?foo1=bar1&foo2=bar2")
            || url.equals("/myapp/bar?foo2=bar2&foo1=bar1"));
    }

    // Add anchor only -- forward URL
    public void testComputeURL3b() {
        request.setPathElements("/myapp", "/action.do", null, null);

        String url = null;

        try {
            url = tagutils.computeURL(pageContext, null, null, "/bar", null,
                    null, null, "anchor", false);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertEquals("url value", "/myapp/bar#anchor", url);
    }

    // Add parameters + anchor -- forward URL
    public void testComputeURL3c() {
        request.setPathElements("/myapp", "/action.do", null, null);

        Map map = new HashMap();

        map.put("foo1", "bar1");
        map.put("foo2", "bar2");

        String url = null;

        try {
            url = tagutils.computeURL(pageContext, null, null, "/bar", null,
                    null, map, "anchor", false);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertTrue("url value",
            url.equals("/myapp/bar?foo1=bar1&foo2=bar2#anchor")
            || url.equals("/myapp/bar?foo2=bar2&foo1=bar1#anchor"));
    }

    // Add parameters only -- redirect URL
    public void testComputeURL3d() {
        request.setPathElements("/myapp", "/action.do", null, null);

        Map map = new HashMap();

        map.put("foo1", "bar1");
        map.put("foo2", "bar2");

        String url = null;

        try {
            url = tagutils.computeURL(pageContext, null, null, "/bar", null,
                    null, map, null, true);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertTrue("url value",
            url.equals("/myapp/bar?foo1=bar1&foo2=bar2")
            || url.equals("/myapp/bar?foo2=bar2&foo1=bar1"));
    }

    // Add anchor only -- redirect URL
    public void testComputeURL3e() {
        request.setPathElements("/myapp", "/action.do", null, null);

        String url = null;

        try {
            url = tagutils.computeURL(pageContext, null, null, "/bar", null,
                    null, null, "anchor", true);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertEquals("url value", "/myapp/bar#anchor", url);
    }

    // Add parameters + anchor -- redirect URL
    public void testComputeURL3f() {
        request.setPathElements("/myapp", "/action.do", null, null);

        Map map = new HashMap();

        map.put("foo1", "bar1");
        map.put("foo2", "bar2");

        String url = null;

        try {
            url = tagutils.computeURL(pageContext, null, null, "/bar", null,
                    null, map, "anchor", false);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertTrue("url value",
            url.equals("/myapp/bar?foo1=bar1&foo2=bar2#anchor")
            || url.equals("/myapp/bar?foo2=bar2&foo1=bar1#anchor"));
    }

    // Add parameters only -- forward URL -- do not encode seperator
    public void testComputeURL3g() {
        request.setPathElements("/myapp", "/action.do", null, null);

        Map map = new HashMap();

        map.put("foo1", "bar1");
        map.put("foo2", "bar2");

        String url = null;

        try {
            url = tagutils.computeURLWithCharEncoding(pageContext, null, null,
                    "/bar", null, null, map, null, false, false, false);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertTrue("url value",
            url.equals("/myapp/bar?foo1=bar1&foo2=bar2")
            || url.equals("/myapp/bar?foo2=bar2&foo1=bar1"));
    }

    // Add parameters only
    //  -- forward URL
    //  -- do not encode seperator
    //  -- send param with null value
    public void testComputeURL3h() {
        request.setPathElements("/myapp", "/action.do", null, null);

        Map map = new HashMap();

        map.put("foo1", null);

        String url = null;

        try {
            url = tagutils.computeURLWithCharEncoding(pageContext, null, null,
                    "/bar", null, null, map, null, false, false, false);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertTrue("url value", url.equals("/myapp/bar?foo1="));
    }

    // Add parameters only
    //  -- forward URL
    //  -- do not encode seperator
    //  -- send param with null value
    //  -- add ? to page
    public void testComputeURL3i() {
        request.setPathElements("/myapp", "/action.do", null, null);

        Map map = new HashMap();

        map.put("foo1", null);

        String url = null;

        try {
            url = tagutils.computeURLWithCharEncoding(pageContext, null, null,
                    "/bar?", null, null, map, null, false, false, false);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertTrue("url value", url.equals("/myapp/bar?&foo1="));
    }

    // Add parameters only
    //  -- forward URL
    //  -- do not encode seperator
    //  -- send param with null value
    //  -- add ? and param to page
    public void testComputeURL3j() {
        request.setPathElements("/myapp", "/action.do", null, null);

        Map map = new HashMap();

        map.put("foo1", null);
        map.put("foo2", "bar2");

        String url = null;

        try {
            url = tagutils.computeURLWithCharEncoding(pageContext, null, null,
                    "/bar?a=b", null, null, map, null, false, false, false);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertTrue("url value",
            url.equals("/myapp/bar?a=b&foo1=&foo2=bar2")
            || url.equals("/myapp/bar?a=b&foo2=bar2&foo1="));
    }

    // -- Add Parameters
    // -- Parameter as String Array
    public void testComputeURL3k() {
        request.setPathElements("/myapp", "/action.do", null, null);

        Map map = new HashMap();

        map.put("foo1", new String[] { "bar1", "baz1" });

        String url = null;

        try {
            url = tagutils.computeURL(pageContext, null, null, "/bar", null,
                    null, map, null, false);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertTrue("url value",
            url.equals("/myapp/bar?foo1=bar1&foo1=baz1")
            || url.equals("/myapp/bar?foo1=baz1&foo1=bar1"));
    }

    // -- Add Parameters
    // -- Parameter as non String or String Array
    public void testComputeURL3l() {
        request.setPathElements("/myapp", "/action.do", null, null);

        Map map = new HashMap();

        map.put("foo1", new Double(0));

        String url = null;

        try {
            url = tagutils.computeURL(pageContext, null, null, "/bar", null,
                    null, map, null, false);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertTrue("url value", url.equals("/myapp/bar?foo1=0.0"));
    }

    // -- Add Parameters
    // -- Parameter as non String or String Array
    // -- with ? on path
    public void testComputeURL3m() {
        request.setPathElements("/myapp", "/action.do", null, null);

        Map map = new HashMap();

        map.put("foo1", new Double(0));

        String url = null;

        try {
            url = tagutils.computeURL(pageContext, null, null, "/bar?", null,
                    null, map, null, false);
        } catch (MalformedURLException e) {
            fail("MalformedURLException: " + e);
        }

        assertNotNull("url present", url);
        assertTrue("url value", url.equals("/myapp/bar?&foo1=0.0"));
    }

    public void testComputeURLCharacterEncoding() {
        request.setPathElements("/myapp", "/action.do", null, null);

        String url = null;

⌨️ 快捷键说明

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