View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  
20  package org.apache.myfaces.view.facelets.tag.composite;
21  
22  import java.io.StringWriter;
23  
24  import javax.el.ExpressionFactory;
25  import javax.faces.component.UIComponent;
26  import javax.faces.component.UIViewRoot;
27  
28  import org.apache.myfaces.config.RuntimeConfig;
29  import org.apache.myfaces.test.mock.MockExternalContext;
30  import org.apache.myfaces.test.mock.MockResponseWriter;
31  import org.apache.myfaces.view.facelets.FaceletTestCase;
32  import org.apache.myfaces.view.facelets.bean.HelloWorld;
33  import org.junit.Assert;
34  import org.junit.Test;
35  
36  public class CompositeComponentCCRefTestCase extends FaceletTestCase
37  {
38  
39      @Override
40      protected void setupComponents() throws Exception
41      {
42          super.setupComponents();
43      }
44      
45      @Override
46      protected ExpressionFactory createExpressionFactory()
47      {
48          return new org.apache.el.ExpressionFactoryImpl();
49      }
50      
51      @Test
52      public void testCCRefOnStylesheet() throws Exception
53      {
54          HelloWorld helloWorld = new HelloWorld(); 
55          
56          facesContext.getExternalContext().getRequestMap().put("helloWorldBean",
57                  helloWorld);
58          
59          UIViewRoot root = facesContext.getViewRoot();
60          vdl.buildView(facesContext, root, "testCCRefOnStylesheet.xhtml");
61  
62          UIComponent panelGroup1 = root.findComponent("testGroup1");
63          Assert.assertNotNull(panelGroup1);
64  
65          StringWriter sw = new StringWriter();
66          MockResponseWriter mrw = new MockResponseWriter(sw);
67          facesContext.setResponseWriter(mrw);
68          
69          root.encodeAll(facesContext);
70          sw.flush();
71          Assert.assertTrue(sw.toString().contains(".myCustomStyle { background:red }"));
72      }
73      
74      @Test
75      public void testCCRefOnScript() throws Exception
76      {
77          HelloWorld helloWorld = new HelloWorld(); 
78          
79          facesContext.getExternalContext().getRequestMap().put("helloWorldBean",
80                  helloWorld);
81          
82          UIViewRoot root = facesContext.getViewRoot();
83          vdl.buildView(facesContext, root, "testCCRefOnScript.xhtml");
84  
85          UIComponent panelGroup1 = root.findComponent("testGroup1");
86          Assert.assertNotNull(panelGroup1);
87  
88          StringWriter sw = new StringWriter();
89          MockResponseWriter mrw = new MockResponseWriter(sw);
90          facesContext.setResponseWriter(mrw);
91          
92          root.encodeAll(facesContext);
93          sw.flush();
94          Assert.assertTrue(sw.toString().contains(".myCustomStyle { background:red }"));
95          Assert.assertTrue(sw.toString().contains(".myCustomScript = 'myvalue'"));
96      }
97  }