View Javadoc
1   /**
2    * This file Copyright (c) 2013-2018 Magnolia International
3    * Ltd.  (http://www.magnolia-cms.com). All rights reserved.
4    *
5    *
6    * This file is dual-licensed under both the Magnolia
7    * Network Agreement and the GNU General Public License.
8    * You may elect to use one or the other of these licenses.
9    *
10   * This file is distributed in the hope that it will be
11   * useful, but AS-IS and WITHOUT ANY WARRANTY; without even the
12   * implied warranty of MERCHANTABILITY or FITNESS FOR A
13   * PARTICULAR PURPOSE, TITLE, or NONINFRINGEMENT.
14   * Redistribution, except as permitted by whichever of the GPL
15   * or MNA you select, is prohibited.
16   *
17   * 1. For the GPL license (GPL), you can redistribute and/or
18   * modify this file under the terms of the GNU General
19   * Public License, Version 3, as published by the Free Software
20   * Foundation.  You should have received a copy of the GNU
21   * General Public License, Version 3 along with this program;
22   * if not, write to the Free Software Foundation, Inc., 51
23   * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
24   *
25   * 2. For the Magnolia Network Agreement (MNA), this file
26   * and the accompanying materials are made available under the
27   * terms of the MNA which accompanies this distribution, and
28   * is available at http://www.magnolia-cms.com/mna.html
29   *
30   * Any modifications to this file must keep this entire header
31   * intact.
32   *
33   */
34  package info.magnolia.module.googlesitemap;
35  
36  import info.magnolia.jcr.util.NodeTypes;
37  
38  import java.util.Arrays;
39  import java.util.List;
40  
41  import static org.junit.Assert.*;
42  
43  import javax.jcr.Node;
44  import javax.jcr.RepositoryException;
45  
46  import org.junit.Test;
47  
48  /**
49   * Test class for {@link SiteMapNodeTypes}.
50   */
51  public class SiteMapNodeTypesTest extends SiteMapTestUtil {
52  
53      @Test
54      public void testSiteMapGetType() throws RepositoryException {
55          // GIVEN
56          Node siteMap = googleSiteMapSession.getRootNode().addNode("siteMap", SiteMapNodeTypes.SiteMap.NAME);
57          siteMap.setProperty(SiteMapNodeTypes.SiteMap.TYPE, "someString");
58  
59          // WHEN
60          String value = SiteMapNodeTypes.SiteMap.getType(siteMap);
61  
62          // THEN
63          assertNotNull(value);
64          assertEquals("someString", value);
65      }
66  
67      @Test
68      public void testSiteMapGetTypeNotSet() throws RepositoryException {
69          // GIVEN
70          Node siteMap = googleSiteMapSession.getRootNode().addNode("siteMap", SiteMapNodeTypes.SiteMap.NAME);
71  
72          // WHEN
73          String value = SiteMapNodeTypes.SiteMap.getType(siteMap);
74  
75          // THEN
76          assertNull(value);
77      }
78  
79      @Test
80      public void testSiteMapGetDisplayName() throws RepositoryException {
81          // GIVEN
82          Node siteMap = googleSiteMapSession.getRootNode().addNode("siteMap", SiteMapNodeTypes.SiteMap.NAME);
83          siteMap.setProperty(SiteMapNodeTypes.SiteMap.DISPLAY_NAME, "someString");
84  
85          // WHEN
86          String value = SiteMapNodeTypes.SiteMap.getDisplayName(siteMap);
87  
88          // THEN
89          assertNotNull(value);
90          assertEquals("someString", value);
91      }
92  
93      @Test
94      public void testSiteMapGetDisplayNameNotSet() throws RepositoryException {
95          // GIVEN
96          Node siteMap = googleSiteMapSession.getRootNode().addNode("siteMap", SiteMapNodeTypes.SiteMap.NAME);
97  
98          // WHEN
99          String value = SiteMapNodeTypes.SiteMap.getDisplayName(siteMap);
100 
101         // THEN
102         assertNull(value);
103     }
104 
105     @Test
106     public void testSiteMapGetUrl() throws RepositoryException {
107         // GIVEN
108         Node siteMap = googleSiteMapSession.getRootNode().addNode("siteMap", SiteMapNodeTypes.SiteMap.NAME);
109         siteMap.setProperty(SiteMapNodeTypes.SiteMap.URL, "someString");
110 
111         // WHEN
112         String value = SiteMapNodeTypes.SiteMap.getUrl(siteMap);
113 
114         // THEN
115         assertNotNull(value);
116         assertEquals("someString", value);
117     }
118 
119     @Test
120     public void testSiteMapGetUrlNotSet() throws RepositoryException {
121         // GIVEN
122         Node siteMap = googleSiteMapSession.getRootNode().addNode("siteMap", SiteMapNodeTypes.SiteMap.NAME);
123 
124         // WHEN
125         String value = SiteMapNodeTypes.SiteMap.getUrl(siteMap);
126 
127         // THEN
128         assertNull(value);
129     }
130 
131     @Test
132     public void testSiteMapIsVirtualUriMappingIncluded() throws RepositoryException {
133         // GIVEN
134         Node siteMap = googleSiteMapSession.getRootNode().addNode("siteMap", SiteMapNodeTypes.SiteMap.NAME);
135         assertFalse(SiteMapNodeTypes.SiteMap.isVirtualUriMappingIncluded(siteMap));
136 
137         // WHEN
138         siteMap.setProperty(SiteMapNodeTypes.SiteMap.INCLUDE_VIRTUAL_URI, true);
139 
140         // THEN
141         assertTrue(SiteMapNodeTypes.SiteMap.isVirtualUriMappingIncluded(siteMap));
142     }
143 
144     @Test
145     public void testSiteMapGetPages() throws RepositoryException {
146         // GIVEN
147         Node siteMap = googleSiteMapSession.getRootNode().addNode("siteMap", SiteMapNodeTypes.SiteMap.NAME);
148         siteMap.setProperty(SiteMapNodeTypes.SiteMap.PAGES, new String[] { "a", "b" });
149 
150         // WHEN
151         List<String> value = SiteMapNodeTypes.SiteMap.getPages(siteMap);
152 
153         // THEN
154         assertNotNull(value);
155         assertEquals("a", value.get(0));
156         assertEquals("b", value.get(1));
157     }
158 
159     @Test
160     public void testSiteMapGetPagesNotSet() throws RepositoryException {
161         // GIVEN
162         Node siteMap = googleSiteMapSession.getRootNode().addNode("siteMap", SiteMapNodeTypes.SiteMap.NAME);
163 
164         // WHEN
165         List<String> value = SiteMapNodeTypes.SiteMap.getPages(siteMap);
166 
167         // THEN
168         assertNotNull(value);
169         assertTrue(value.isEmpty());
170     }
171 
172     @Test
173     public void testSiteMapGetDefaultChangeFreq() throws RepositoryException {
174         // GIVEN
175         Node siteMap = googleSiteMapSession.getRootNode().addNode("siteMap", SiteMapNodeTypes.SiteMap.NAME);
176         siteMap.setProperty(SiteMapNodeTypes.SiteMap.DEFAULT_CHANGEFREQ, "someString");
177 
178         // WHEN
179         String value = SiteMapNodeTypes.SiteMap.getDefaultChangeFreq(siteMap);
180 
181         // THEN
182         assertNotNull(value);
183         assertEquals("someString", value);
184     }
185 
186     @Test
187     public void testSiteMapGetDefaultChangeFreqNotSet() throws RepositoryException {
188         // GIVEN
189         Node siteMap = googleSiteMapSession.getRootNode().addNode("siteMap", SiteMapNodeTypes.SiteMap.NAME);
190 
191         // WHEN
192         String value = SiteMapNodeTypes.SiteMap.getDefaultChangeFreq(siteMap);
193 
194         // THEN
195         assertNull(value);
196     }
197 
198     @Test
199     public void testSiteMapGetDefaultPriority() throws RepositoryException {
200         // GIVEN
201         Node siteMap = googleSiteMapSession.getRootNode().addNode("siteMap", SiteMapNodeTypes.SiteMap.NAME);
202         siteMap.setProperty(SiteMapNodeTypes.SiteMap.DEFAULT_PRIORITY, 0.5d);
203 
204         // WHEN
205         Double value = SiteMapNodeTypes.SiteMap.getDefaultPriority(siteMap);
206 
207         // THEN
208         assertNotNull(value);
209         assertEquals(0.5d, value.doubleValue(), 0);
210     }
211 
212     @Test
213     public void testSiteMapGetDefaultPriorityNotSet() throws RepositoryException {
214         // GIVEN
215         Node siteMap = googleSiteMapSession.getRootNode().addNode("siteMap", SiteMapNodeTypes.SiteMap.NAME);
216 
217         // WHEN
218         Double value = SiteMapNodeTypes.SiteMap.getDefaultPriority(siteMap);
219 
220         // THEN
221         assertNull(value);
222     }
223 
224     @Test
225     public void testSiteMapUpdate() throws RepositoryException {
226         // GIVEN
227         Node siteMap = googleSiteMapSession.getRootNode().addNode("siteMap", SiteMapNodeTypes.SiteMap.NAME);
228 
229         // WHEN
230         SiteMapNodeTypes.SiteMap.update(siteMap, "type", "url", "displayName", true, "changeFreq", 0.5d, Arrays.asList("a", "b"));
231 
232         // THEN
233         assertEquals("type", siteMap.getProperty(SiteMapNodeTypes.SiteMap.TYPE).getString());
234         assertEquals("url", siteMap.getProperty(SiteMapNodeTypes.SiteMap.URL).getString());
235         assertEquals("displayName", siteMap.getProperty(SiteMapNodeTypes.SiteMap.DISPLAY_NAME).getString());
236         assertEquals(true, siteMap.getProperty(SiteMapNodeTypes.SiteMap.INCLUDE_VIRTUAL_URI).getBoolean());
237         assertEquals("a", siteMap.getProperty(SiteMapNodeTypes.SiteMap.PAGES).getValues()[0].getString());
238         assertEquals("b", siteMap.getProperty(SiteMapNodeTypes.SiteMap.PAGES).getValues()[1].getString());
239         assertEquals("changeFreq", siteMap.getProperty(SiteMapNodeTypes.SiteMap.DEFAULT_CHANGEFREQ).getString());
240         assertEquals(0.5d, siteMap.getProperty(SiteMapNodeTypes.SiteMap.DEFAULT_PRIORITY).getDouble(), 0);
241     }
242 
243     @Test
244     public void testGoogleSiteMapGetChangeFreq() throws RepositoryException {
245         // GIVEN
246         Node googleSiteMap = googleSiteMapSession.getRootNode().addNode("googleSiteMap", NodeTypes.Page.NAME);
247         googleSiteMap.addMixin(SiteMapNodeTypes.GoogleSiteMap.NAME);
248         googleSiteMap.setProperty(SiteMapNodeTypes.GoogleSiteMap.SITEMAP_CHANGEFREQ, "someString");
249 
250         // WHEN
251         String value = SiteMapNodeTypes.GoogleSiteMap.getChangeFreq(googleSiteMap);
252 
253         // THEN
254         assertNotNull(value);
255         assertEquals("someString", value);
256     }
257 
258     @Test
259     public void testGoogleSiteMapGetChangeFreqNotSet() throws RepositoryException {
260         // GIVEN
261         Node googleSiteMap = googleSiteMapSession.getRootNode().addNode("googleSiteMap", NodeTypes.Page.NAME);
262         googleSiteMap.addMixin(SiteMapNodeTypes.GoogleSiteMap.NAME);
263 
264         // WHEN
265         String value = SiteMapNodeTypes.GoogleSiteMap.getChangeFreq(googleSiteMap);
266 
267         // THEN
268         assertNull(value);
269     }
270 
271     @Test
272     public void testGoogleSiteMapGetPriority() throws RepositoryException {
273         // GIVEN
274         Node googleSiteMap = googleSiteMapSession.getRootNode().addNode("googleSiteMap", NodeTypes.Page.NAME);
275         googleSiteMap.addMixin(SiteMapNodeTypes.GoogleSiteMap.NAME);
276         googleSiteMap.setProperty(SiteMapNodeTypes.GoogleSiteMap.SITEMAP_PRIORITY, 0.5d);
277 
278         // WHEN
279         Double value = SiteMapNodeTypes.GoogleSiteMap.getPriority(googleSiteMap);
280 
281         // THEN
282         assertNotNull(value);
283         assertEquals(0.5d, value.doubleValue(), 0);
284     }
285 
286     @Test
287     public void testGoogleSiteMapGetPriorityNotSet() throws RepositoryException {
288         // GIVEN
289         Node googleSiteMap = googleSiteMapSession.getRootNode().addNode("googleSiteMap", NodeTypes.Page.NAME);
290         googleSiteMap.addMixin(SiteMapNodeTypes.GoogleSiteMap.NAME);
291 
292         // WHEN
293         Double value = SiteMapNodeTypes.GoogleSiteMap.getPriority(googleSiteMap);
294 
295         // THEN
296         assertNull(value);
297     }
298 
299     @Test
300     public void testSiteMapIsHide() throws RepositoryException {
301         // GIVEN
302         Node googleSiteMap = googleSiteMapSession.getRootNode().addNode("googleSiteMap", NodeTypes.Page.NAME);
303         googleSiteMap.addMixin(SiteMapNodeTypes.GoogleSiteMap.NAME);
304         assertFalse(SiteMapNodeTypes.GoogleSiteMap.isHide(googleSiteMap));
305 
306         // WHEN
307         googleSiteMap.setProperty(SiteMapNodeTypes.GoogleSiteMap.SITEMAP_HIDE_IN_GOOGLESITEMAP, true);
308 
309         // THEN
310         assertTrue(SiteMapNodeTypes.GoogleSiteMap.isHide(googleSiteMap));
311     }
312 
313     @Test
314     public void testSiteMapIsHideChildren() throws RepositoryException {
315         // GIVEN
316         Node googleSiteMap = googleSiteMapSession.getRootNode().addNode("googleSiteMap", NodeTypes.Page.NAME);
317         googleSiteMap.addMixin(SiteMapNodeTypes.GoogleSiteMap.NAME);
318         assertFalse(SiteMapNodeTypes.GoogleSiteMap.isHideChildren(googleSiteMap));
319 
320         // WHEN
321         googleSiteMap.setProperty(SiteMapNodeTypes.GoogleSiteMap.SITEMAP_HIDE_IN_GOOGLESITEMAP_CHILDREN, true);
322 
323         // THEN
324         assertTrue(SiteMapNodeTypes.GoogleSiteMap.isHideChildren(googleSiteMap));
325     }
326 
327     @Test
328     public void testGoogleSiteMapUpdate() throws RepositoryException {
329         // GIVEN
330         Node googleSiteMap = googleSiteMapSession.getRootNode().addNode("googleSiteMap", NodeTypes.Page.NAME);
331         googleSiteMap.addMixin(SiteMapNodeTypes.GoogleSiteMap.NAME);
332 
333         // WHEN
334         SiteMapNodeTypes.GoogleSiteMap.update(googleSiteMap, "changeFrq", 0.1d, true, true);
335 
336         // THEN
337         assertEquals("changeFrq", googleSiteMap.getProperty(SiteMapNodeTypes.GoogleSiteMap.SITEMAP_CHANGEFREQ).getString());
338         assertEquals(0.1d, googleSiteMap.getProperty(SiteMapNodeTypes.GoogleSiteMap.SITEMAP_PRIORITY).getDouble(), 0);
339         assertEquals(true, googleSiteMap.getProperty(SiteMapNodeTypes.GoogleSiteMap.SITEMAP_HIDE_IN_GOOGLESITEMAP ).getBoolean());
340         assertEquals(true, googleSiteMap.getProperty(SiteMapNodeTypes.GoogleSiteMap.SITEMAP_HIDE_IN_GOOGLESITEMAP_CHILDREN).getBoolean());
341 
342     }
343 }