1 package org.apache.turbine.services.template;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import static org.junit.Assert.assertEquals;
25
26 import org.apache.turbine.services.TurbineServices;
27 import org.apache.turbine.test.BaseTestCase;
28 import org.apache.turbine.util.TurbineConfig;
29 import org.junit.AfterClass;
30 import org.junit.BeforeClass;
31 import org.junit.Test;
32
33
34
35
36
37
38
39
40
41 public class TemplateTest
42 extends BaseTestCase
43 {
44 private static TurbineConfig tc = null;
45 private static TemplateService ts = null;
46
47
48
49 @BeforeClass
50 public static void setUp() throws Exception
51 {
52 tc = new TurbineConfig(".", "/conf/test/TemplateService.properties");
53 tc.initialize();
54
55 ts = (TemplateService) TurbineServices.getInstance().getService(TemplateService.SERVICE_NAME);
56 }
57
58 @AfterClass
59 public static void tearDown() throws Exception
60 {
61 if (tc != null)
62 {
63 tc.dispose();
64 }
65 }
66
67
68 @Test public void testTemplateDefaults()
69 {
70 assertEquals("Default LayoutTemplate failed", TemplateService.DEFAULT_TEMPLATE_VALUE, ts.getDefaultLayoutTemplate());
71 }
72
73 @Test public void testVelocityDefaults()
74 {
75 assertEquals("Default LayoutTemplate failed", "Default.vm", ts.getDefaultLayoutTemplateName("foo.vm"));
76 }
77
78 @Test public void testTemplateExtension()
79 {
80 assertEquals("Extension extraction failed", "vm", ts.getExtension("Default.vm"));
81 assertEquals("Extension extraction failed", "txt", ts.getExtension("Default.txt"));
82
83 assertEquals("Extension extraction failed", "vm", ts.getExtension("Default.txt.vm"));
84 }
85
86 @Test public void testNonExistingTemplate()
87 throws Exception
88 {
89
90
91
92
93 String templateName = "DoesNotExistPage.vm";
94 assertEquals("LayoutTemplate translation failed", "Default.vm", ts.getLayoutTemplateName(templateName));
95 assertEquals("ScreenTemplate translation failed", null, ts.getScreenTemplateName(templateName));
96 }
97
98 @Test public void testNonExistingSublevelTemplate()
99 throws Exception
100 {
101
102
103
104
105 String templateName = "this,template,DoesNotExistPage.vm";
106 assertEquals("LayoutTemplate translation failed", "Default.vm", ts.getLayoutTemplateName(templateName));
107 assertEquals("ScreenTemplate translation failed", null, ts.getScreenTemplateName(templateName));
108 }
109
110 @Test public void testExistingTemplate()
111 throws Exception
112 {
113
114
115
116
117 String templateName = "ExistPage.vm";
118 assertEquals("LayoutTemplate translation failed", "Default.vm", ts.getLayoutTemplateName(templateName));
119 assertEquals("ScreenTemplate translation failed", "ExistPage.vm", ts.getScreenTemplateName(templateName));
120 }
121
122 public void testExistingSublevelTemplate()
123 throws Exception
124 {
125
126
127
128
129
130 String templateName = "existing,Page.vm";
131 assertEquals("LayoutTemplate translation failed", "Default.vm", ts.getLayoutTemplateName(templateName));
132 assertEquals("ScreenTemplate translation failed", "existing/Page.vm", ts.getScreenTemplateName(templateName));
133 }
134
135 @Test public void testExistingLayoutTemplate()
136 throws Exception
137 {
138
139
140
141
142 String templateName = "ExistPageWithLayout.vm";
143 assertEquals("LayoutTemplate translation failed", "ExistPageWithLayout.vm", ts.getLayoutTemplateName(templateName));
144 assertEquals("ScreenTemplate translation failed", "ExistPageWithLayout.vm", ts.getScreenTemplateName(templateName));
145 }
146
147 @Test public void testExistingSublevelLayoutTemplate()
148 throws Exception
149 {
150
151
152
153
154 String templateName = "existing,ExistSublevelPageWithLayout.vm";
155 assertEquals("LayoutTemplate translation failed", "existing/ExistSublevelPageWithLayout.vm", ts.getLayoutTemplateName(templateName));
156 assertEquals("ScreenTemplate translation failed", "existing/ExistSublevelPageWithLayout.vm", ts.getScreenTemplateName(templateName));
157 }
158
159 public void testExistingDefaultLayoutTemplate()
160 throws Exception
161 {
162
163
164
165
166 String templateName = "existing,ExistPageWithLayout.vm";
167 assertEquals("LayoutTemplate translation failed", "Default.vm", ts.getLayoutTemplateName(templateName));
168 assertEquals("ScreenTemplate translation failed", "existing/ExistPageWithLayout.vm", ts.getScreenTemplateName(templateName));
169 }
170 }
171