1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.webapp;
20
21 import static org.easymock.EasyMock.anyObject;
22 import static org.easymock.EasyMock.eq;
23 import static org.easymock.EasyMock.expect;
24 import static org.easymock.EasyMock.expectLastCall;
25 import static org.easymock.EasyMock.isA;
26
27 import javax.el.ExpressionFactory;
28 import javax.faces.webapp.FacesServlet;
29 import javax.servlet.ServletContext;
30 import javax.servlet.jsp.JspApplicationContext;
31 import javax.servlet.jsp.JspFactory;
32
33 import org.apache.myfaces.config.RuntimeConfig;
34 import org.apache.myfaces.el.DefaultPropertyResolver;
35 import org.apache.myfaces.el.VariableResolverImpl;
36 import org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver;
37 import org.apache.myfaces.test.base.AbstractJsfTestCase;
38 import org.easymock.IAnswer;
39 import org.easymock.classextension.EasyMock;
40 import org.easymock.classextension.IMocksControl;
41
42
43
44
45
46 public class Jsp21FacesInitializerTest extends AbstractJsfTestCase
47 {
48
49 public Jsp21FacesInitializerTest(String name)
50 {
51 super(name);
52 }
53
54
55
56
57
58 public void testInitFaces() throws Exception
59 {
60
61
62 Jsp21FacesInitializer initializer = new Jsp21FacesInitializer();
63 IMocksControl control = EasyMock.createControl();
64
65 JspFactory jspFactory = control.createMock(JspFactory.class);
66 initializer.setJspFactory(jspFactory);
67
68 RuntimeConfig runtimeConfig = control.createMock(RuntimeConfig.class);
69
70 ServletContext context = control.createMock(ServletContext.class);
71 ExpressionFactory expressionFactory = control.createMock(ExpressionFactory.class);
72 runtimeConfig.setExpressionFactory(expressionFactory);
73 runtimeConfig.setPropertyResolverChainHead(isA(DefaultPropertyResolver.class));
74 runtimeConfig.setVariableResolverChainHead(isA(VariableResolverImpl.class));
75
76 expect(context.getAttribute(eq(RuntimeConfig.class.getName()))).andReturn(runtimeConfig).anyTimes();
77
78 expect(context.getInitParameter(eq(FacesServlet.CONFIG_FILES_ATTR))).andReturn(null);
79 expect(context.getResourceAsStream(eq("/WEB-INF/faces-config.xml"))).andReturn(null);
80 expect(context.getInitParameter(eq(FacesServlet.LIFECYCLE_ID_ATTR))).andReturn(null);
81
82
83 expect(context.getResource(isA(String.class))).andReturn(null);
84 expect(context.getResourceAsStream(isA(String.class))).andReturn(null);
85 expect(context.getInitParameter(isA(String.class))).andReturn(null).anyTimes();
86 expect(context.getAttribute(isA(String.class))).andReturn(null).anyTimes();
87 context.setAttribute(isA(String.class), anyObject());
88 expectLastCall().anyTimes();
89 expect(context.getRealPath(isA(String.class))).andAnswer(new IAnswer<String>() {
90 public String answer() throws Throwable
91 {
92 return (String) org.easymock.EasyMock.getCurrentArguments()[0];
93 }
94 });
95
96 JspApplicationContext jspAppCtx = control.createMock(JspApplicationContext.class);
97 expect(jspAppCtx.getExpressionFactory()).andReturn(expressionFactory);
98 jspAppCtx.addELContextListener(isA(FacesELContextListener.class));
99 expect(jspFactory.getJspApplicationContext(eq(context))).andReturn(jspAppCtx);
100 jspAppCtx.addELResolver(isA(FacesCompositeELResolver.class));
101
102 control.replay();
103 initializer.initFaces(context);
104
105
106
107
108
109
110 }
111
112 }