1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.templating.jsp.cms;
35
36 import static org.hamcrest.CoreMatchers.containsString;
37 import static org.junit.Assert.*;
38
39 import info.magnolia.beanmerger.BeanMerger;
40 import info.magnolia.beanmerger.ProxyBasedBeanMerger;
41 import info.magnolia.jcr.util.NodeTypes;
42 import info.magnolia.rendering.template.configured.ConfiguredAreaDefinition;
43 import info.magnolia.rendering.template.configured.ConfiguredTemplateDefinition;
44 import info.magnolia.rendering.template.variation.DefaultRenderableVariationResolver;
45 import info.magnolia.rendering.template.variation.RenderableVariationResolver;
46 import info.magnolia.templating.jsp.AbstractTagTestCase;
47 import info.magnolia.test.ComponentsTestUtil;
48
49 import javax.jcr.Node;
50
51 import org.junit.Before;
52 import org.junit.Test;
53
54 import com.meterware.httpunit.GetMethodWebRequest;
55 import com.meterware.httpunit.WebRequest;
56 import com.meterware.httpunit.WebResponse;
57
58
59
60
61 public class AreaBarTagTest extends AbstractTagTestCase {
62
63 private String jspUrl;
64
65 @Override
66 @Before
67 public void setUp() throws Exception {
68 super.setUp();
69 String jspPath = getClass().getName().replace('.', '/') + ".jsp";
70 jspUrl = "http://localhost" + CONTEXT + "/" + jspPath;
71
72 ConfiguredTemplateDefinition renderableDefinition = new ConfiguredTemplateDefinition();
73 ConfiguredAreaDefinition areaDefinition = new ConfiguredAreaDefinition();
74 renderableDefinition.addArea("stage", areaDefinition);
75 renderableDefinition.addArea("branding", areaDefinition);
76 setRenderableDefinition(renderableDefinition);
77
78 ComponentsTestUtil.setImplementation(RenderableVariationResolver.class, DefaultRenderableVariationResolver.class);
79 ComponentsTestUtil.setImplementation(BeanMerger.class, ProxyBasedBeanMerger.class);
80 }
81
82 @Test
83 public void testRenderSimpleBarWithoutAreaNode() throws Exception {
84
85 final WebRequest request = new GetMethodWebRequest(jspUrl);
86 final WebResponse response = runner.getResponse(request);
87
88
89 final String responseStr = response.getText();
90
91
92 assertNotNull(responseStr);
93 assertThat(
94 responseStr,
95 containsString("<!-- cms:area content=\"website:/foo/bar/paragraphs/1/stage\" name=\"stage\" availableComponents=\"\" type=\"list\" "
96 + "label=\"Stage\" inherit=\"false\" optional=\"false\" createAreaNode=\"true\" showAddButton=\"true\" showNewComponentArea=\"true\" activationStatus=\"0\" -->"));
97 }
98
99 @Test
100 public void testRenderSimpleBar() throws Exception {
101
102 Node paragraph1 = getSession().getNode("/foo/bar/paragraphs/1");
103
104 paragraph1.addNode("stage", NodeTypes.Area.NAME);
105
106 final WebRequest request = new GetMethodWebRequest(jspUrl);
107 final WebResponse response = runner.getResponse(request);
108
109
110 final String responseStr = response.getText();
111
112
113 assertNotNull(responseStr);
114 assertThat(
115 responseStr,
116 containsString("<!-- cms:area content=\"website:/foo/bar/paragraphs/1/stage\" name=\"stage\" availableComponents=\"\" type=\"list\" "
117 + "label=\"Stage\" inherit=\"false\" optional=\"false\" createAreaNode=\"true\" showAddButton=\"true\" showNewComponentArea=\"true\" activationStatus=\"0\" -->"));
118
119 }
120
121 @Test
122 public void testCreateAreaNode() throws Exception {
123
124 final WebRequest request = new GetMethodWebRequest(jspUrl);
125
126
127 final WebResponse response = runner.getResponse(request);
128 final String responseStr = response.getText();
129
130
131 assertNotNull(responseStr);
132
133
134 assertTrue(getSession().getNode("/foo/bar/paragraphs/1").hasNode("stage"));
135 assertThat(
136 responseStr,
137 containsString("<!-- cms:area content=\"website:/foo/bar/paragraphs/1/stage\" name=\"stage\" availableComponents=\"\" type=\"list\" "
138 + "label=\"Stage\" inherit=\"false\" optional=\"false\" createAreaNode=\"true\" showAddButton=\"true\" showNewComponentArea=\"true\" activationStatus=\"0\" -->"));
139
140
141 assertFalse(getSession().getNode("/foo/bar/paragraphs/1").hasNode("branding"));
142 assertThat(
143 responseStr,
144 containsString("<!-- cms:area content=\"website:/foo/bar/paragraphs/1\" name=\"branding\" availableComponents=\"\" type=\"list\" "
145 + "label=\"Branding\" inherit=\"false\" optional=\"false\" createAreaNode=\"false\" showAddButton=\"true\" showNewComponentArea=\"true\" activationStatus=\"0\" -->"));
146
147 }
148
149 }