Search in sources :

Example 36 with ForwardConfig

use of org.apache.struts.config.ForwardConfig in project sonarqube by SonarSource.

the class TestMockBase method setUpSecondApp.

protected void setUpSecondApp() {
    ActionFormBean formBean = null;
    ActionMapping mapping = null;
    ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory();
    moduleConfig2 = factoryObject.createModuleConfig("/2");
    context.setAttribute(Globals.MODULE_KEY + "/2", moduleConfig2);
    // Forward "external" to "http://jakarta.apache.org/"
    moduleConfig2.addForwardConfig(new ActionForward("external", "http://jakarta.apache.org/", false));
    // Forward "foo" to "/baz.jsp" (different from default)
    moduleConfig2.addForwardConfig(new ActionForward("foo", "/baz.jsp", false));
    // Forward "relative1" to "relative.jsp" non-context-relative
    moduleConfig2.addForwardConfig(new ActionForward("relative1", "relative.jsp", false));
    // Forward "relative2" to "relative.jsp" context-relative
    moduleConfig2.addForwardConfig(new ActionForward("relative2", "relative.jsp", false));
    // Form Bean "static" is a standard ActionForm subclass (same as default)
    formBean = new ActionFormBean("static", "org.apache.struts.mock.MockFormBean");
    moduleConfig2.addFormBeanConfig(formBean);
    // Action "/static" uses the "static" form bean in request scope (same as default)
    mapping = new ActionMapping();
    mapping.setInput("/static.jsp");
    mapping.setName("static");
    mapping.setPath("/static");
    mapping.setScope("request");
    mapping.setType("org.apache.struts.mock.MockAction");
    moduleConfig2.addActionConfig(mapping);
    // Form Bean "dynamic2" is a DynaActionForm with the same properties
    formBean = new ActionFormBean("dynamic2", "org.apache.struts.action.DynaActionForm");
    formBean.addFormPropertyConfig(new FormPropertyConfig("booleanProperty", "boolean", "false"));
    formBean.addFormPropertyConfig(new FormPropertyConfig("stringProperty", "java.lang.String", null));
    moduleConfig2.addFormBeanConfig(formBean);
    // Action "/dynamic2" uses the "dynamic2" form bean in session scope
    mapping = new ActionMapping();
    mapping.setInput("/dynamic2.jsp");
    mapping.setName("dynamic2");
    mapping.setPath("/dynamic2");
    mapping.setScope("session");
    mapping.setType("org.apache.struts.mock.MockAction");
    moduleConfig2.addActionConfig(mapping);
    // Action "/noform" has no form bean associated with it (same as default)
    mapping = new ActionMapping();
    mapping.setPath("/noform");
    mapping.setType("org.apache.struts.mock.MockAction");
    moduleConfig2.addActionConfig(mapping);
    // Configure global forward declarations
    moduleConfig2.addForwardConfig(new ForwardConfig("moduleForward", "/module/forward", // No redirect, same module
    false));
    moduleConfig2.addForwardConfig(new ForwardConfig("moduleRedirect", "/module/redirect", // Redirect, same module
    true));
    moduleConfig2.addForwardConfig(new ForwardConfig("contextForward", // No redirect
    "/forward", // No redirect
    false, // Specify module
    "/context"));
    moduleConfig2.addForwardConfig(new ForwardConfig("contextRedirect", // Redirect
    "/redirect", // Redirect
    true, // Specify module
    "/context"));
    moduleConfig2.addForwardConfig(new ForwardConfig("moduleNoslash", "module/noslash", // No redirect, same module
    false));
    moduleConfig2.addForwardConfig(new ForwardConfig("contextNoslash", // No redirect
    "noslash", // No redirect
    false, // Specify module
    "/context"));
}
Also used : FormPropertyConfig(org.apache.struts.config.FormPropertyConfig) ActionMapping(org.apache.struts.action.ActionMapping) ModuleConfigFactory(org.apache.struts.config.ModuleConfigFactory) ForwardConfig(org.apache.struts.config.ForwardConfig) ActionForward(org.apache.struts.action.ActionForward) ActionFormBean(org.apache.struts.action.ActionFormBean)

Example 37 with ForwardConfig

use of org.apache.struts.config.ForwardConfig in project sonarqube by SonarSource.

the class TestMockBase method setUpDefaultApp.

protected void setUpDefaultApp() {
    ActionFormBean formBean = null;
    ActionMapping mapping = null;
    ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory();
    moduleConfig = factoryObject.createModuleConfig("");
    context.setAttribute(Globals.MODULE_KEY, moduleConfig);
    // Forward "external" to "http://jakarta.apache.org/"
    moduleConfig.addForwardConfig(new ActionForward("external", "http://jakarta.apache.org/", false));
    // Forward "foo" to "/bar.jsp"
    moduleConfig.addForwardConfig(new ActionForward("foo", "/bar.jsp", false));
    // Forward "relative1" to "relative.jsp" non-context-relative
    moduleConfig.addForwardConfig(new ActionForward("relative1", "relative.jsp", false));
    // Forward "relative2" to "relative.jsp" context-relative
    moduleConfig.addForwardConfig(new ActionForward("relative2", "relative.jsp", false));
    // Form Bean "static" is a standard ActionForm subclass
    formBean = new ActionFormBean("static", "org.apache.struts.mock.MockFormBean");
    moduleConfig.addFormBeanConfig(formBean);
    // Action "/static" uses the "static" form bean in request scope
    mapping = new ActionMapping();
    mapping.setInput("/static.jsp");
    mapping.setName("static");
    mapping.setPath("/static");
    mapping.setScope("request");
    mapping.setType("org.apache.struts.mock.MockAction");
    moduleConfig.addActionConfig(mapping);
    // Form Bean "dynamic" is a DynaActionForm with the same properties
    formBean = new ActionFormBean("dynamic", "org.apache.struts.action.DynaActionForm");
    formBean.addFormPropertyConfig(new FormPropertyConfig("booleanProperty", "boolean", "false"));
    formBean.addFormPropertyConfig(new FormPropertyConfig("stringProperty", "java.lang.String", null));
    moduleConfig.addFormBeanConfig(formBean);
    // Action "/dynamic" uses the "dynamic" form bean in session scope
    mapping = new ActionMapping();
    mapping.setInput("/dynamic.jsp");
    mapping.setName("dynamic");
    mapping.setPath("/dynamic");
    mapping.setScope("session");
    mapping.setType("org.apache.struts.mock.MockAction");
    moduleConfig.addActionConfig(mapping);
    // Form Bean "/dynamic0" is a DynaActionForm with initializers
    formBean = new ActionFormBean("dynamic0", "org.apache.struts.action.DynaActionForm");
    formBean.addFormPropertyConfig(new FormPropertyConfig("booleanProperty", "boolean", "true"));
    formBean.addFormPropertyConfig(new FormPropertyConfig("stringProperty", "java.lang.String", "String Property"));
    formBean.addFormPropertyConfig(new FormPropertyConfig("intArray1", "int[]", "{1,2,3}", // 4 should be ignored
    4));
    formBean.addFormPropertyConfig(new FormPropertyConfig("intArray2", "int[]", null, // 5 should be respected
    5));
    formBean.addFormPropertyConfig(new FormPropertyConfig("principal", "org.apache.struts.mock.MockPrincipal", null));
    formBean.addFormPropertyConfig(new FormPropertyConfig("stringArray1", "java.lang.String[]", "{aaa,bbb,ccc}", // 2 should be ignored
    2));
    formBean.addFormPropertyConfig(new FormPropertyConfig("stringArray2", "java.lang.String[]", null, // 3 should be respected
    3));
    moduleConfig.addFormBeanConfig(formBean);
    // Action "/dynamic0" uses the "dynamic0" form bean in request scope
    mapping = new ActionMapping();
    mapping.setName("dynamic0");
    mapping.setPath("/dynamic0");
    mapping.setScope("request");
    mapping.setType("org.apache.struts.mock.MockAction");
    moduleConfig.addActionConfig(mapping);
    // Action "/noform" has no form bean associated with it
    mapping = new ActionMapping();
    mapping.setPath("/noform");
    mapping.setType("org.apache.struts.mock.MockAction");
    moduleConfig.addActionConfig(mapping);
    // Configure global forward declarations
    moduleConfig.addForwardConfig(new ForwardConfig("moduleForward", "/module/forward", // No redirect, same module
    false));
    moduleConfig.addForwardConfig(new ForwardConfig("moduleRedirect", "/module/redirect", // Redirect, same module
    true));
    moduleConfig.addForwardConfig(new ForwardConfig("contextForward", // No redirect
    "/forward", // No redirect
    false, // Specify module
    "/context"));
    moduleConfig.addForwardConfig(new ForwardConfig("contextRedirect", // Redirect
    "/redirect", // Redirect
    true, // Specify module
    "/context"));
    moduleConfig.addForwardConfig(new ForwardConfig("moduleNoslash", "module/noslash", // No redirect, same module
    false));
    moduleConfig.addForwardConfig(new ForwardConfig("contextNoslash", // No redirect
    "noslash", // No redirect
    false, // Specify module
    "/context"));
}
Also used : FormPropertyConfig(org.apache.struts.config.FormPropertyConfig) ActionMapping(org.apache.struts.action.ActionMapping) ModuleConfigFactory(org.apache.struts.config.ModuleConfigFactory) ForwardConfig(org.apache.struts.config.ForwardConfig) ActionForward(org.apache.struts.action.ActionForward) ActionFormBean(org.apache.struts.action.ActionFormBean)

Example 38 with ForwardConfig

use of org.apache.struts.config.ForwardConfig in project sonarqube by SonarSource.

the class TestActionServlet method testProcessForwardConfigClass.

/**
     * Make sure processForwardConfigClass() returns an instance of the
     * correct class if the base config is using a custom class.
     */
public void testProcessForwardConfigClass() throws Exception {
    CustomForwardConfig customBase = new CustomForwardConfig("success", "/success.jsp");
    moduleConfig.addForwardConfig(customBase);
    ActionForward customSub = new ActionForward();
    customSub.setName("failure");
    customSub.setExtends("success");
    moduleConfig.addForwardConfig(customSub);
    ForwardConfig result = actionServlet.processForwardConfigClass(customSub, moduleConfig, null);
    assertTrue("Incorrect class of forward config", result instanceof CustomForwardConfig);
    assertEquals("Incorrect name", customSub.getName(), result.getName());
    assertEquals("Incorrect path", customSub.getPath(), result.getPath());
    assertEquals("Incorrect extends", customSub.getExtends(), result.getExtends());
    assertSame("Result was not registered in the module config", result, moduleConfig.findForwardConfig("failure"));
}
Also used : ForwardConfig(org.apache.struts.config.ForwardConfig)

Example 39 with ForwardConfig

use of org.apache.struts.config.ForwardConfig in project sonarqube by SonarSource.

the class TestActionServlet method notestProcessForwardConfigClassError.

/**
     * Make sure the code throws the correct exception when it can't create an
     * instance of the base config's custom class.
     */
public void notestProcessForwardConfigClassError() throws Exception {
    ForwardConfig customBase = new CustomForwardConfigArg("success", "/success.jsp");
    moduleConfig.addForwardConfig(customBase);
    ForwardConfig customSub = new ActionForward();
    customSub.setName("failure");
    customSub.setExtends("success");
    moduleConfig.addForwardConfig(customSub);
    try {
        actionServlet.processForwardConfigClass(customSub, moduleConfig, null);
        fail("Exception should be thrown");
    } catch (UnavailableException e) {
    // success
    } catch (Exception e) {
        fail("Unexpected exception thrown.");
    }
}
Also used : UnavailableException(javax.servlet.UnavailableException) ForwardConfig(org.apache.struts.config.ForwardConfig) ServletException(javax.servlet.ServletException) UnavailableException(javax.servlet.UnavailableException)

Example 40 with ForwardConfig

use of org.apache.struts.config.ForwardConfig in project sonarqube by SonarSource.

the class TestActionServlet method testProcessForwardConfigClassNoExtends.

/**
     * Make sure processForwardConfigClass() returns what it was given if the
     * forward passed to it doesn't extend anything.
     */
public void testProcessForwardConfigClassNoExtends() throws Exception {
    moduleConfig.addForwardConfig(baseForward);
    ForwardConfig result = null;
    try {
        result = actionServlet.processForwardConfigClass(baseForward, moduleConfig, null);
    } catch (UnavailableException e) {
        fail("An exception should not be thrown when there's nothing to do");
    }
    assertSame("Result should be the same as the input.", baseForward, result);
}
Also used : UnavailableException(javax.servlet.UnavailableException) ForwardConfig(org.apache.struts.config.ForwardConfig)

Aggregations

ForwardConfig (org.apache.struts.config.ForwardConfig)63 ActionConfig (org.apache.struts.config.ActionConfig)14 UnavailableException (javax.servlet.UnavailableException)12 ServletException (javax.servlet.ServletException)10 ExceptionConfig (org.apache.struts.config.ExceptionConfig)10 MalformedURLException (java.net.MalformedURLException)8 ModuleConfig (org.apache.struts.config.ModuleConfig)8 IOException (java.io.IOException)6 MissingResourceException (java.util.MissingResourceException)6 ModuleConfigFactory (org.apache.struts.config.ModuleConfigFactory)6 SAXException (org.xml.sax.SAXException)6 HttpServletRequest (javax.servlet.http.HttpServletRequest)4 HttpServletResponse (javax.servlet.http.HttpServletResponse)4 ActionFormBean (org.apache.struts.action.ActionFormBean)4 ActionForward (org.apache.struts.action.ActionForward)4 ActionMapping (org.apache.struts.action.ActionMapping)4 ActionServlet (org.apache.struts.action.ActionServlet)4 FormPropertyConfig (org.apache.struts.config.FormPropertyConfig)4 ServletActionContext (org.apache.struts.chain.contexts.ServletActionContext)3 ArrayList (java.util.ArrayList)2