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

📄 testrequestutils.java

📁 ActionServlet源码 struts的一个步骤都有 知道本来有视频的太大了 就没有上传了
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * $Id: TestRequestUtils.java 471754 2006-11-06 14:55:09Z husted $
 *
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package org.apache.struts.util;

import junit.framework.Test;
import junit.framework.TestSuite;

import org.apache.struts.Globals;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.action.RequestProcessor;
import org.apache.struts.config.ForwardConfig;
import org.apache.struts.config.ModuleConfig;
import org.apache.struts.mock.MockFormBean;
import org.apache.struts.mock.MockPrincipal;
import org.apache.struts.mock.TestMockBase;

import java.net.MalformedURLException;

/**
 * <p>Unit tests for <code>org.apache.struts.util.RequestUtils</code>.</p>
 *
 * @version $Rev: 471754 $ $Date: 2005-08-14 17:24:39 -0400 (Sun, 14 Aug 2005)
 *          $
 */
public class TestRequestUtils extends TestMockBase {
    // ----------------------------------------------------------------- Basics
    public TestRequestUtils(String name) {
        super(name);
    }

    public static void main(String[] args) {
        junit.awtui.TestRunner.main(new String[] {
                TestRequestUtils.class.getName()
            });
    }

    public static Test suite() {
        return (new TestSuite(TestRequestUtils.class));
    }

    // ----------------------------------------------------- Instance Variables
    // ----------------------------------------------------- Setup and Teardown
    public void setUp() {
        super.setUp();
    }

    public void tearDown() {
        super.tearDown();
    }

    // ------------------------------------------------------- Individual Tests
    // ---------------------------------------------------------- absoluteURL()
    public void testAbsoluteURL() {
        request.setPathElements("/myapp", "/action.do", null, null);

        String url = null;

        try {
            url = RequestUtils.absoluteURL(request, "/foo/bar.jsp").toString();
            assertEquals("absoluteURL is correct",
                "http://localhost:8080/myapp/foo/bar.jsp", url);
        } catch (MalformedURLException e) {
            fail("Threw MalformedURLException: " + e);
        }
    }

    // ------------------------------------------------------------ actionURL()
    // Default application -- extension mapping
    public void testActionURL1() {
        request.setAttribute(Globals.MODULE_KEY, moduleConfig);
        request.setPathElements("/myapp", "/foo.do", null, null);

        String url =
            RequestUtils.actionURL(request,
                moduleConfig.findActionConfig("/dynamic"), "*.do");

        assertNotNull("URL was returned", url);
        assertEquals("URL value", "/dynamic.do", url);
    }

    // Second application -- extension mapping
    public void testActionURL2() {
        request.setAttribute(Globals.MODULE_KEY, moduleConfig2);
        request.setPathElements("/myapp", "/2/foo.do", null, null);

        String url =
            RequestUtils.actionURL(request,
                moduleConfig2.findActionConfig("/dynamic2"), "*.do");

        assertNotNull("URL was returned", url);
        assertEquals("URL value", "/2/dynamic2.do", url);
    }

    // Default application -- path mapping
    public void testActionURL3() {
        request.setAttribute(Globals.MODULE_KEY, moduleConfig);
        request.setPathElements("/myapp", "/do/foo", null, null);

        String url =
            RequestUtils.actionURL(request,
                moduleConfig.findActionConfig("/dynamic"), "/do/*");

        assertNotNull("URL was returned", url);
        assertEquals("URL value", "/do/dynamic", url);
    }

    // ----------------------------------------------------- createActionForm()
    // Default module -- No ActionForm should be created
    public void testCreateActionForm1a() {
        request.setPathElements("/myapp", "/noform.do", null, null);

        ActionMapping mapping =
            (ActionMapping) moduleConfig.findActionConfig("/noform");

        assertNotNull("Found /noform mapping", mapping);

        ActionForm form =
            RequestUtils.createActionForm(request, mapping, moduleConfig, null);

        assertNull("No ActionForm returned", form);
    }

    // Second module -- No ActionForm should be created
    public void testCreateActionForm1b() {
        request.setPathElements("/myapp", "/2/noform.do", null, null);

        ActionMapping mapping =
            (ActionMapping) moduleConfig2.findActionConfig("/noform");

        assertNotNull("Found /noform mapping", mapping);

        ActionForm form =
            RequestUtils.createActionForm(request, mapping, moduleConfig2, null);

        assertNull("No ActionForm returned", form);
    }

    // Default module -- Standard ActionForm should be created
    public void testCreateActionForm2a() {
        request.setPathElements("/myapp", "/static.do", null, null);

        ActionMapping mapping =
            (ActionMapping) moduleConfig.findActionConfig("/static");

        assertNotNull("Found /static mapping", mapping);
        assertNotNull("Mapping has non-null name", mapping.getName());
        assertEquals("Mapping has correct name", "static", mapping.getName());
        assertNotNull("AppConfig has form bean " + mapping.getName(),
            moduleConfig.findFormBeanConfig(mapping.getName()));

        ActionForm form =
            RequestUtils.createActionForm(request, mapping, moduleConfig, null);

        assertNotNull("ActionForm returned", form);
        assertTrue("ActionForm of correct type", form instanceof MockFormBean);
    }

    // Second module -- Standard ActionForm should be created
    public void testCreateActionForm2b() {
        request.setPathElements("/myapp", "/2/static.do", null, null);

        ActionMapping mapping =
            (ActionMapping) moduleConfig2.findActionConfig("/static");

        assertNotNull("Found /static mapping", mapping);
        assertNotNull("Mapping has non-null name", mapping.getName());
        assertEquals("Mapping has correct name", "static", mapping.getName());
        assertNotNull("AppConfig has form bean " + mapping.getName(),
            moduleConfig.findFormBeanConfig(mapping.getName()));

        ActionForm form =
            RequestUtils.createActionForm(request, mapping, moduleConfig2, null);

        assertNotNull("ActionForm returned", form);
        assertTrue("ActionForm of correct type", form instanceof MockFormBean);
    }

    // Default module -- Dynamic ActionForm should be created
    public void testCreateActionForm3a() {
        request.setPathElements("/myapp", "/dynamic.do", null, null);

        ActionMapping mapping =
            (ActionMapping) moduleConfig.findActionConfig("/dynamic");

        assertNotNull("Found /dynamic mapping", mapping);
        assertNotNull("Mapping has non-null name", mapping.getName());
        assertEquals("Mapping has correct name", "dynamic", mapping.getName());
        assertNotNull("AppConfig has form bean " + mapping.getName(),
            moduleConfig.findFormBeanConfig(mapping.getName()));

        ActionForm form =
            RequestUtils.createActionForm(request, mapping, moduleConfig, null);

        assertNotNull("ActionForm returned", form);
        assertTrue("ActionForm of correct type", form instanceof DynaActionForm);
    }

    // Second module -- Dynamic ActionForm should be created
    public void testCreateActionForm3b() {
        request.setPathElements("/myapp", "/2/dynamic2.do", null, null);

        ActionMapping mapping =
            (ActionMapping) moduleConfig2.findActionConfig("/dynamic2");

        assertNotNull("Found /dynamic2 mapping", mapping);
        assertNotNull("Mapping has non-null name", mapping.getName());
        assertEquals("Mapping has correct name", "dynamic2", mapping.getName());
        assertNotNull("AppConfig has form bean " + mapping.getName(),
            moduleConfig2.findFormBeanConfig(mapping.getName()));

        ActionForm form =
            RequestUtils.createActionForm(request, mapping, moduleConfig2, null);

        assertNotNull("ActionForm returned", form);
        assertTrue("ActionForm of correct type", form instanceof DynaActionForm);
    }

    // Default module -- Dynamic ActionForm with initializers
    public void testCreateActionForm4a() {
        // Retrieve an appropriately configured DynaActionForm instance
        request.setPathElements("/myapp", "/dynamic0.do", null, null);

        ActionMapping mapping =
            (ActionMapping) moduleConfig.findActionConfig("/dynamic0");

        assertNotNull("Found /dynamic0 mapping", mapping);
        assertNotNull("Mapping has non-null name", mapping.getName());
        assertEquals("Mapping has correct name", "dynamic0", mapping.getName());
        assertNotNull("AppConfig has form bean " + mapping.getName(),
            moduleConfig.findFormBeanConfig(mapping.getName()));

        ActionForm form =
            RequestUtils.createActionForm(request, mapping, moduleConfig, null);

        assertNotNull("ActionForm returned", form);
        assertTrue("ActionForm of correct type", form instanceof DynaActionForm);

        // Validate the property values
        DynaActionForm dform = (DynaActionForm) form;
        Boolean booleanProperty = (Boolean) dform.get("booleanProperty");

        assertTrue("booleanProperty is true", booleanProperty.booleanValue());

        String stringProperty = (String) dform.get("stringProperty");

        assertEquals("stringProperty is correct", "String Property",
            stringProperty);

        Object value = null;

        value = dform.get("intArray1");
        assertNotNull("intArray1 exists", value);
        assertTrue("intArray1 is int[]", value instanceof int[]);

        int[] intArray1 = (int[]) value;

        assertEquals("intArray1 length is correct", 3, intArray1.length);
        assertEquals("intArray1[0] value is correct", 1, intArray1[0]);
        assertEquals("intArray1[1] value is correct", 2, intArray1[1]);
        assertEquals("intArray1[2] value is correct", 3, intArray1[2]);

        value = dform.get("intArray2");
        assertNotNull("intArray2 exists", value);
        assertTrue("intArray2 is int[]", value instanceof int[]);

        int[] intArray2 = (int[]) value;

        assertEquals("intArray2 length is correct", 5, intArray2.length);
        assertEquals("intArray2[0] value is correct", 0, intArray2[0]);
        assertEquals("intArray2[1] value is correct", 0, intArray2[1]);
        assertEquals("intArray2[2] value is correct", 0, intArray2[2]);
        assertEquals("intArray2[3] value is correct", 0, intArray2[3]);
        assertEquals("intArray2[4] value is correct", 0, intArray2[4]);

        value = dform.get("principal");
        assertNotNull("principal exists", value);
        assertTrue("principal is MockPrincipal", value instanceof MockPrincipal);

        value = dform.get("stringArray1");
        assertNotNull("stringArray1 exists", value);
        assertTrue("stringArray1 is int[]", value instanceof String[]);

        String[] stringArray1 = (String[]) value;

        assertEquals("stringArray1 length is correct", 3, stringArray1.length);
        assertEquals("stringArray1[0] value is correct", "aaa", stringArray1[0]);
        assertEquals("stringArray1[1] value is correct", "bbb", stringArray1[1]);
        assertEquals("stringArray1[2] value is correct", "ccc", stringArray1[2]);

        value = dform.get("stringArray2");
        assertNotNull("stringArray2 exists", value);
        assertTrue("stringArray2 is int[]", value instanceof String[]);

        String[] stringArray2 = (String[]) value;

        assertEquals("stringArray2 length is correct", 3, stringArray2.length);
        assertEquals("stringArray2[0] value is correct", new String(),
            stringArray2[0]);
        assertEquals("stringArray2[1] value is correct", new String(),
            stringArray2[1]);
        assertEquals("stringArray2[2] value is correct", new String(),
            stringArray2[2]);

        // Different form beans should get different property value instances
        Object value1 = null;
        DynaActionForm dform1 =
            (DynaActionForm) RequestUtils.createActionForm(request, mapping,
                moduleConfig, null);

        value = dform.get("principal");
        value1 = dform1.get("principal");
        assertEquals("Different form beans get equal instance values", value,
            value1);

⌨️ 快捷键说明

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