1 package org.appfuse.webapp.action; 2 3 import javax.faces.FactoryFinder; 4 import javax.faces.context.FacesContext; 5 import javax.faces.context.FacesContextFactory; 6 import javax.faces.lifecycle.Lifecycle; 7 import javax.faces.lifecycle.LifecycleFactory; 8 import javax.faces.webapp.FacesServlet; 9 import javax.servlet.ServletContextEvent ; 10 import javax.servlet.ServletContextListener ; 11 12 import junit.framework.TestCase; 13 import org.apache.myfaces.webapp.StartupServletContextListener; 14 15 import org.apache.commons.logging.Log; 16 import org.apache.commons.logging.LogFactory; 17 import org.appfuse.Constants; 18 import org.appfuse.model.User; 19 import org.appfuse.service.UserManager; 20 import org.appfuse.webapp.util.FacesUtils; 21 import org.springframework.mail.javamail.JavaMailSenderImpl; 22 import org.springframework.mock.web.MockHttpServletRequest; 23 import org.springframework.mock.web.MockHttpServletResponse; 24 import org.springframework.mock.web.MockServletConfig; 25 import org.springframework.mock.web.MockServletContext; 26 import org.springframework.util.ClassUtils; 27 import org.springframework.web.context.ContextLoader; 28 import org.springframework.web.context.ContextLoaderListener; 29 import org.springframework.web.context.WebApplicationContext; 30 import org.springframework.web.context.support.WebApplicationContextUtils; 31 32 public abstract class BasePageTestCase extends TestCase { 33 protected final transient Log log = LogFactory.getLog(getClass()); 34 protected static final String MESSAGES = "ApplicationResources"; 35 protected static FacesContext facesContext; 36 protected static MockServletConfig config; 37 protected static MockServletContext servletContext; 38 protected static WebApplicationContext ctx; 39 protected static User user; 40 41 static { 45 String pkg = ClassUtils.classPackageAsResourcePath(Constants.class); 46 servletContext = new MockServletContext(""); 47 servletContext.addInitParameter(BasePage.jstlBundleParam, MESSAGES); 48 servletContext.addInitParameter(ContextLoader.CONFIG_LOCATION_PARAM, 49 "classpath*:/" + pkg + "/dao/applicationContext-*.xml," + 50 "classpath*:META-INF/applicationContext-*.xml"); 51 52 ServletContextListener contextListener = new ContextLoaderListener(); 53 ServletContextEvent event = new ServletContextEvent (servletContext); 54 contextListener.contextInitialized(event); 55 56 ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); 57 config = new MockServletConfig(servletContext); 58 facesContext = performFacesContextConfig(); 59 } 60 61 protected void setUp() throws Exception { 62 UserManager userMgr = (UserManager) ctx.getBean("userManager"); 64 user = userMgr.getUserByUsername("tomcat"); 65 66 JavaMailSenderImpl mailSender = (JavaMailSenderImpl) ctx.getBean("mailSender"); 69 mailSender.setPort(2525); 70 mailSender.setHost("localhost"); 71 } 72 73 protected static FacesContext performFacesContextConfig() { 74 StartupServletContextListener facesListener = 75 new StartupServletContextListener(); 76 ServletContextEvent event = new ServletContextEvent (servletContext); 77 facesListener.contextInitialized(event); 78 79 LifecycleFactory lifecycleFactory = 80 (LifecycleFactory) FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY); 81 Lifecycle lifecycle = lifecycleFactory.getLifecycle(getLifecycleId()); 82 FacesContextFactory facesCtxFactory = 83 (FacesContextFactory) FactoryFinder.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY); 84 FacesContext ctx = 85 facesCtxFactory.getFacesContext(servletContext, new MockHttpServletRequest(), new MockHttpServletResponse(), 86 lifecycle); 87 88 return ctx; 89 } 90 91 protected static String getLifecycleId() { 92 String lifecycleId = 93 servletContext.getInitParameter(FacesServlet.LIFECYCLE_ID_ATTR); 94 95 return (lifecycleId != null) ? lifecycleId 96 : LifecycleFactory.DEFAULT_LIFECYCLE; 97 } 98 99 protected Object getManagedBean(String name) { 100 return FacesUtils.getManagedBean(name); 101 } 102 } 103 | Popular Tags |