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.models.setup;
35
36 import static info.magnolia.test.hamcrest.NodeMatchers.*;
37 import static org.junit.Assert.assertThat;
38
39 import info.magnolia.context.MgnlContext;
40 import info.magnolia.jcr.util.NodeTypes;
41 import info.magnolia.jcr.util.NodeUtil;
42 import info.magnolia.module.ModuleVersionHandler;
43 import info.magnolia.module.ModuleVersionHandlerTestCase;
44 import info.magnolia.module.model.Version;
45 import info.magnolia.repository.RepositoryConstants;
46 import info.magnolia.templating.functions.NavigationTemplatingFunctions;
47
48 import java.util.Arrays;
49 import java.util.List;
50
51 import javax.jcr.Node;
52 import javax.jcr.Session;
53
54 import org.junit.Test;
55
56 public class TemplatingEssentialsModelsModuleVersionHandlerTest extends ModuleVersionHandlerTestCase {
57 @Override
58 protected String getModuleDescriptorPath() {
59 return "/META-INF/magnolia/mte.xml";
60 }
61
62 @Override
63 protected List<String> getModuleDescriptorPathsForTests() {
64 return Arrays.asList(
65 "/META-INF/magnolia/core.xml"
66 );
67 }
68
69 @Override
70 protected ModuleVersionHandler newModuleVersionHandlerForTests() {
71 return new TemplatingEssentialsModelsModuleVersionHandler();
72 }
73
74 @Test
75 public void updateFrom10AddsNavFn() throws Exception {
76
77 Session session = MgnlContext.getJCRSession(RepositoryConstants.CONFIG);
78 Node contextAttributesNode = NodeUtil.createPath(session.getRootNode(), "modules/rendering/renderers/freemarker/contextAttributes", NodeTypes.ContentNode.NAME);
79
80
81 executeUpdatesAsIfTheCurrentlyInstalledVersionWas(Version.parseVersion("1.0"));
82
83
84 assertThat(contextAttributesNode, hasNode("navfn"));
85 assertThat(contextAttributesNode.getNode("navfn"), hasProperty("componentClass", NavigationTemplatingFunctions.class.getName()));
86 assertThat(contextAttributesNode.getNode("navfn"), hasProperty("name", "navfn"));
87 }
88 }