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.module.googlesitemap.service;
35
36 import static org.junit.Assert.*;
37
38 import info.magnolia.module.googlesitemap.SiteMapNodeTypes;
39 import info.magnolia.module.googlesitemap.bean.SiteMapEntry;
40
41 import java.util.Collections;
42 import java.util.List;
43
44 import javax.jcr.Node;
45 import javax.jcr.RepositoryException;
46
47 import org.apache.commons.collections4.IteratorUtils;
48 import org.junit.Test;
49
50
51
52
53 public class SiteMapServiceTest extends ServiceTestUtil {
54
55 @Test
56 public void testGetSiteMapBeansForPagesNotForEdit() throws RepositoryException {
57
58 Node siteMapNode = googleSiteMapSession.getNode("/test1");
59
60 List<SiteMapEntry> res = service.getSiteMapBeans(siteMapNode, false, false);
61
62
63 assertNotNull(res);
64
65 assertEquals(2, res.size());
66
67 SiteMapEntry entry0 = res.get(0);
68 assertEquals("always", entry0.getChangefreq());
69 assertEquals("2014-01-08", entry0.getLastmod());
70 assertEquals("defaultBaseUrl/demo-site/article/article1", entry0.getLoc());
71 assertEquals("/demo-site/article/article1", entry0.getPath());
72 assertEquals(0.3d, entry0.getPriority(), 0);
73 assertEquals(1, entry0.getLevel());
74
75 SiteMapEntry entry1 = res.get(1);
76 assertEquals("defaultBaseUrl/demo-site/article/articleSection", entry1.getLoc());
77 assertEquals("/demo-site/article/articleSection", entry1.getPath());
78
79 }
80
81 @Test
82 public void testGetSiteMapBeansForPagesForEdit() throws RepositoryException {
83
84 Node siteMapNode = googleSiteMapSession.getNode("/test1");
85
86 List<SiteMapEntry> res = service.getSiteMapBeans(siteMapNode, false, true);
87
88
89 assertNotNull(res);
90 assertEquals(4, res.size());
91
92 SiteMapEntry entry0 = res.get(0);
93 assertEquals("always", entry0.getChangefreq());
94 assertEquals("2014-01-08", entry0.getLastmod());
95 assertEquals("defaultBaseUrl/demo-site/article/article1", entry0.getLoc());
96 assertEquals("/demo-site/article/article1", entry0.getPath());
97 assertEquals(0.3d, entry0.getPriority(), 0);
98 assertEquals(1, entry0.getLevel());
99 assertFalse(entry0.isStyleAlert());
100
101 SiteMapEntry entry1 = res.get(1);
102 assertEquals("defaultBaseUrl/demo-site/article/article2", entry1.getLoc());
103 assertTrue(entry1.isStyleAlert());
104 assertEquals(0.8d, entry1.getPriority(), 0);
105 assertEquals(1, entry1.getLevel());
106
107 SiteMapEntry entry2 = res.get(2);
108 assertEquals("/demo-site/article/articleSection", entry2.getPath());
109 assertFalse(entry2.isStyleAlert());
110 assertEquals(1, entry2.getLevel());
111
112 SiteMapEntry entry3 = res.get(3);
113 assertEquals("defaultBaseUrl/demo-site/article/articleSection/article3", entry3.getLoc());
114 assertTrue(entry3.isStyleAlert());
115 assertEquals(2, entry3.getLevel());
116 }
117
118 @Test
119 public void testGetSiteMapBeansForUirNotForEdit() throws RepositoryException {
120
121 Node siteMapNode = googleSiteMapSession.getNode("/test1");
122
123 List<SiteMapEntry> res = service.getSiteMapBeans(siteMapNode, true, false);
124
125
126 assertNotNull(res);
127 assertEquals(2, res.size());
128
129 SiteMapEntry entry0 = res.get(0);
130 assertEquals("always", entry0.getChangefreq());
131 assertEquals("2008-06-12", entry0.getLastmod());
132 assertEquals("null/\\.magnolia/pages/messages\\.(.*)\\.js", entry0.getLoc());
133 assertEquals("/modules/adminInterface/virtualURIMapping/messages", entry0.getPath());
134 assertEquals(0.8d, entry0.getPriority(), 0);
135 assertEquals(4, entry0.getLevel());
136 assertFalse(entry0.isStyleAlert());
137
138 SiteMapEntry entry1 = res.get(1);
139 assertEquals("null/.magnolia/dialogs/fileThumbnail.jpg", entry1.getLoc());
140 assertEquals("/modules/adminInterface/virtualURIMapping/dialogsFileThumbnail", entry1.getPath());
141 }
142
143 @Test
144 public void testGetSiteMapBeansForUriNotForEdit() throws RepositoryException {
145
146 Node siteMapNode = googleSiteMapSession.getNode("/test1");
147
148 List<SiteMapEntry> res = service.getSiteMapBeans(siteMapNode, true, false);
149
150
151 assertNotNull(res);
152 assertEquals(2, res.size());
153
154 SiteMapEntry entry0 = res.get(0);
155 assertEquals("null/\\.magnolia/pages/messages\\.(.*)\\.js", entry0.getLoc());
156 assertEquals("/modules/adminInterface/virtualURIMapping/messages", entry0.getPath());
157 assertEquals(4, entry0.getLevel());
158 assertFalse(entry0.isStyleAlert());
159
160 SiteMapEntry entry1 = res.get(1);
161 assertEquals("null/.magnolia/dialogs/fileThumbnail.jpg", entry1.getLoc());
162 assertEquals("/modules/adminInterface/virtualURIMapping/dialogsFileThumbnail", entry1.getPath());
163 }
164
165 @Test
166 public void testGetSiteMapBeansNotForEdit() throws RepositoryException {
167
168 Node siteMapNode = googleSiteMapSession.getNode("/test1");
169
170 List<SiteMapEntry> res = IteratorUtils.toList(service.getSiteMapBeans(siteMapNode));
171 Collections.sort(res);
172
173
174 assertNotNull(res);
175 assertEquals(4, res.size());
176
177 SiteMapEntry entry0 = res.get(0);
178 assertEquals("always", entry0.getChangefreq());
179 assertEquals("2008-06-12", entry0.getLastmod());
180 assertEquals("null/\\.magnolia/pages/messages\\.(.*)\\.js", entry0.getLoc());
181 assertEquals("/modules/adminInterface/virtualURIMapping/messages", entry0.getPath());
182 assertEquals(0.8d, entry0.getPriority(), 0);
183 assertEquals(4, entry0.getLevel());
184 assertFalse(entry0.isStyleAlert());
185
186 SiteMapEntry entry1 = res.get(1);
187 assertEquals("null/.magnolia/dialogs/fileThumbnail.jpg", entry1.getLoc());
188 assertEquals("/modules/adminInterface/virtualURIMapping/dialogsFileThumbnail", entry1.getPath());
189
190 SiteMapEntry entry2 = res.get(2);
191 assertEquals("defaultBaseUrl/demo-site/article/articleSection", entry2.getLoc());
192
193 SiteMapEntry entry3 = res.get(3);
194 assertEquals("defaultBaseUrl/demo-site/article/article1", entry3.getLoc());
195 }
196
197 @Test
198 public void testUpdatePageNode() throws RepositoryException {
199
200 SiteMapEntry entry = new SiteMapEntry();
201 entry.setPath("/demo-site/article/article1");
202 entry.setChangefreq("changefreq");
203 entry.setPriority(0.5d);
204 entry.setHide(true);
205 entry.setHideChildren(true);
206
207
208 service.updatePageNode(entry);
209
210
211 Node node = websiteSession.getNode("/demo-site/article/article1");
212 assertTrue(SiteMapNodeTypes.GoogleSiteMap.isHide(node));
213 assertEquals("changefreq", SiteMapNodeTypes.GoogleSiteMap.getChangeFreq(node));
214 assertEquals(0.5d, SiteMapNodeTypes.GoogleSiteMap.getPriority(node), 0);
215 assertTrue(SiteMapNodeTypes.GoogleSiteMap.isHideChildren(node));
216 }
217
218 }