protected void setUp() { String actionType = StrutsTestAction.class.getName(); mapping1 = new ActionMapping(); mapping1.setPath("/myPath1"); mapping1.setType(actionType); mapping2 = new ActionMapping(); mapping2.setPath("/myPath2"); mapping2.setType(actionType); requestMock.stubs().method("getSession").will(returnValue(session)); sessionMock.stubs().method("getServletContext").will(returnValue(servletContext)); actionFactory = new ActionFactory(); service = new TestService(); }
private ActionConfig buildActionConfig(String path) { ActionMapping mapping = new ActionMapping(); mapping.setName("name,{1}"); mapping.setPath(path); mapping.setScope("request"); mapping.setUnknown(false); mapping.setValidate(true); mapping.setPrefix("foo,{1}"); mapping.setSuffix("bar,{1}"); mapping.setType("foo.bar.{1}Action"); mapping.setRoles("public,{1}"); mapping.setParameter("param,{1}"); mapping.setAttribute("attrib,{1}"); mapping.setForward("fwd,{1}"); mapping.setInclude("include,{1}"); mapping.setInput("input,{1}"); ForwardConfig cfg = new ActionForward(); cfg.setName("name"); cfg.setPath("path,{1}"); cfg.setModule("mod{1}"); cfg.setProperty("foo", "bar,{1}"); mapping.addForwardConfig(cfg); cfg = new ActionForward(); cfg.setName("name2"); cfg.setPath("path2"); cfg.setModule("mod{1}"); mapping.addForwardConfig(cfg); ExceptionConfig excfg = new ExceptionConfig(); excfg.setKey("foo"); excfg.setType("foo.Bar"); excfg.setPath("path"); mapping.addExceptionConfig(excfg); excfg = new ExceptionConfig(); excfg.setKey("foo2"); excfg.setType("foo.Bar2"); excfg.setPath("path2"); mapping.addExceptionConfig(excfg); mapping.setProperty("testprop", "testval"); mapping.setProperty("testprop2", "test{1}"); mapping.freeze(); return mapping; }
public void testBadActionType() { MutablePicoContainer actionsContainer = new DefaultPicoContainer(); requestMock .stubs() .method("getAttribute") .with(eq(KeyConstants.ACTIONS_CONTAINER)) .will(returnValue(actionsContainer)); mapping1.setType("/i/made/a/typo"); try { actionFactory.getAction(request, mapping1, servlet); fail("PicoIntrospectionException should have been raised"); } catch (PicoIntrospectionException e) { // expected } }
@Override public void init(ActionServlet servlet, ModuleConfig config) throws ServletException { if (!initialized) { loadActionsFromFile(actionClasses); PartialTileDefinition.init(); initialized = true; } final String modulePrefix = StringUtils.removeStart(config.getPrefix(), "/"); for (Class<?> actionClass : actionClasses) { Mapping mapping = actionClass.getAnnotation(Mapping.class); if (mapping == null || !modulePrefix.equals(mapping.module())) { continue; } final ActionMapping actionMapping = createCustomActionMapping(mapping); if (actionMapping == null) { continue; } actionMapping.setPath(mapping.path()); actionMapping.setType(actionClass.getName()); actionMapping.setScope(mapping.scope()); actionMapping.setParameter(mapping.parameter()); actionMapping.setValidate(mapping.validate()); if (mapping.formBeanClass() != ActionForm.class) { final String formName = mapping.formBeanClass().getName(); createFormBeanConfigIfNecessary(config, mapping, formName); actionMapping.setName(formName); } else if (!mapping.formBean().isEmpty()) { actionMapping.setName(mapping.formBean()); } if (mapping.input().isEmpty()) { actionMapping.setInput(findInputMethod(actionClass, mapping)); } else { registerInput(actionMapping, mapping.input()); } String defaultResourcesName = getDefaultResourcesName(config); Forwards forwards = actionClass.getAnnotation(Forwards.class); if (forwards != null) { for (final Forward forward : forwards.value()) { registerForward(actionMapping, forward, forwards, mapping, defaultResourcesName); } } registerSuperclassForwards( actionMapping, actionClass.getSuperclass(), mapping, defaultResourcesName); Exceptions exceptions = actionClass.getAnnotation(Exceptions.class); if (exceptions != null) { registerExceptionHandling(actionMapping, exceptions); } initializeActionMappingProperties(actionMapping, mapping.customMappingProperties()); config.addActionConfig(actionMapping); } }