1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.page;
18
19 import java.util.ArrayList;
20 import java.util.Iterator;
21 import java.util.List;
22 import java.util.Locale;
23 import org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase;
24 import org.apache.jetspeed.om.common.GenericMetadata;
25 import org.apache.jetspeed.om.common.SecurityConstraint;
26 import org.apache.jetspeed.om.common.SecurityConstraints;
27 import org.apache.jetspeed.om.folder.Folder;
28 import org.apache.jetspeed.om.folder.FolderNotFoundException;
29 import org.apache.jetspeed.om.folder.MenuDefinition;
30 import org.apache.jetspeed.om.folder.MenuExcludeDefinition;
31 import org.apache.jetspeed.om.folder.MenuIncludeDefinition;
32 import org.apache.jetspeed.om.folder.MenuOptionsDefinition;
33 import org.apache.jetspeed.om.folder.MenuSeparatorDefinition;
34 import org.apache.jetspeed.om.page.Fragment;
35 import org.apache.jetspeed.om.page.Link;
36 import org.apache.jetspeed.om.page.Page;
37 import org.apache.jetspeed.om.page.PageSecurity;
38 import org.apache.jetspeed.om.page.SecurityConstraintsDef;
39 import org.apache.jetspeed.om.preference.FragmentPreference;
40 import org.apache.jetspeed.page.document.DocumentNotFoundException;
41 import org.apache.jetspeed.page.document.FailedToUpdateDocumentException;
42 import org.apache.jetspeed.page.document.Node;
43
44 import org.springframework.context.support.ClassPathXmlApplicationContext;
45
46 import junit.framework.Test;
47 import junit.framework.TestSuite;
48
49 /***
50 * TestPageXmlPersistence
51 *
52 * @author <a href="taylor@apache.org">David Sean Taylor</a>
53 * @version $Id: $
54 *
55 */
56 public class TestDatabasePageManager extends DatasourceEnabledSpringTestCase implements PageManagerTestShared, PageManagerEventListener
57 {
58 private String deepFolderPath = "/__subsite-rootx/_user/userx/_role/rolex/_group/groupx/_mediatype/xhtml/_language/en/_country/us/_custom/customx";
59 private String deepPagePath = deepFolderPath + "/default-page.psml";
60
61 private static ClassPathXmlApplicationContext context;
62 private static boolean lastTestRun;
63
64 private static PageManager pageManager;
65
66 private static int newNodeCount;
67 private static int updatedNodeCount;
68 private static int removedNodeCount;
69
70 public static void main(String args[])
71 {
72 junit.awtui.TestRunner.main(new String[]
73 { TestDatabasePageManager.class.getName() });
74 }
75
76 protected void setUp() throws Exception
77 {
78
79
80
81 if (context == null)
82 {
83
84 super.setUp();
85 context = ctx;
86 lastTestRun = false;
87
88
89 pageManager = (PageManager)context.getBean("pageManager");
90 try
91 {
92 Folder removeRootFolder = pageManager.getFolder("/");
93 pageManager.removeFolder(removeRootFolder);
94 pageManager.reset();
95 }
96 catch (FolderNotFoundException e)
97 {
98 }
99
100
101 pageManager.addListener(this);
102 }
103 else
104 {
105
106 ctx = context;
107 super.setUp();
108 }
109 }
110
111 protected void tearDown() throws Exception
112 {
113
114 if (!lastTestRun)
115 {
116 ctx = null;
117 }
118 super.tearDown();
119 }
120
121 public static Test suite()
122 {
123
124 return new TestSuite(TestDatabasePageManager.class);
125 }
126
127 protected String[] getConfigurations()
128 {
129 return new String[]
130 { "database-page-manager.xml", "transaction.xml" };
131 }
132
133
134
135
136 public void newNode(Node node)
137 {
138 newNodeCount++;
139 }
140
141
142
143
144 public void updatedNode(Node node)
145 {
146 updatedNodeCount++;
147 }
148
149
150
151
152 public void removedNode(Node node)
153 {
154 removedNodeCount++;
155 }
156
157 public void testCreates() throws Exception
158 {
159
160 pageManager.reset();
161
162
163 Folder folder = pageManager.newFolder("/");
164 assertEquals("Top", folder.getTitle());
165 folder.setTitle("Root Folder");
166 folder.setDefaultDecorator("jetspeed", Fragment.LAYOUT);
167 folder.setDefaultDecorator("gray-gradient", Fragment.PORTLET);
168 folder.setSkin("skin-1");
169 folder.setDefaultPage("default-page.psml");
170 folder.setShortTitle("Root");
171 GenericMetadata metadata = folder.getMetadata();
172 metadata.addField(Locale.FRENCH, "title", "[fr] Root Folder");
173 SecurityConstraints folderConstraints = pageManager.newSecurityConstraints();
174 folderConstraints.setOwner("admin");
175 List inlineFolderConstraints = new ArrayList(2);
176 SecurityConstraint folderConstraint = pageManager.newFolderSecurityConstraint();
177 folderConstraint.setUsers(Shared.makeListFromCSV("user,admin"));
178 folderConstraint.setRoles(Shared.makeListFromCSV("manager"));
179 folderConstraint.setGroups(Shared.makeListFromCSV("*"));
180 folderConstraint.setPermissions(Shared.makeListFromCSV("view,edit"));
181 inlineFolderConstraints.add(folderConstraint);
182 folderConstraint = folder.newSecurityConstraint();
183 folderConstraint.setPermissions(Shared.makeListFromCSV("edit"));
184 inlineFolderConstraints.add(folderConstraint);
185 folderConstraints.setSecurityConstraints(inlineFolderConstraints);
186 List folderConstraintsRefs = new ArrayList(2);
187 folderConstraintsRefs.add("public-view");
188 folderConstraintsRefs.add("public-edit");
189 folderConstraints.setSecurityConstraintsRefs(folderConstraintsRefs);
190 folder.setSecurityConstraints(folderConstraints);
191 List documentOrder = new ArrayList(2);
192 documentOrder.add("some-other-page.psml");
193 documentOrder.add("default-page.psml");
194 folder.setDocumentOrder(documentOrder);
195 MenuDefinition newMenu = folder.newMenuDefinition();
196 newMenu.setName("folder-menu");
197 newMenu.setTitle("The Test Folder Menu");
198 newMenu.setShortTitle("Folder Menu");
199 newMenu.setProfile("group-fallback");
200 metadata = newMenu.getMetadata();
201 metadata.addField(Locale.FRENCH, "short-title", "[fr] Folder Menu");
202 metadata.addField(Locale.FRENCH, "title", "[fr] The Test Folder Menu");
203 MenuSeparatorDefinition newSeparator = folder.newMenuSeparatorDefinition();
204 newSeparator.setText("-- Folder Menu --");
205 newSeparator.setTitle("Rollover: Folder Menu");
206 newSeparator.setSkin("header");
207 metadata = newSeparator.getMetadata();
208 metadata.addField(Locale.FRENCH, "text", "-- [fr] Folder Menu --");
209 metadata.addField(Locale.FRENCH, "title", "[fr] Rollover: Folder Menu");
210 newMenu.getMenuElements().add(newSeparator);
211 MenuOptionsDefinition newOptions0 = folder.newMenuOptionsDefinition();
212 newOptions0.setOptions("/*.psml");
213 newOptions0.setRegexp(true);
214 newOptions0.setSkin("flash");
215 newMenu.getMenuElements().add(newOptions0);
216 MenuOptionsDefinition newOptions1 = folder.newMenuOptionsDefinition();
217 newOptions1.setOptions("/folder0");
218 newOptions1.setProfile("role-fallback");
219 newOptions1.setOrder("/folder*");
220 newOptions1.setDepth(1);
221 newOptions1.setPaths(true);
222 newMenu.getMenuElements().add(newOptions1);
223 MenuDefinition newNestedMenu = folder.newMenuDefinition();
224 newNestedMenu.setOptions("/*/");
225 newNestedMenu.setRegexp(true);
226 newNestedMenu.setDepth(2);
227 newNestedMenu.setOrder("/x*/,/y*/,/z*/");
228 newNestedMenu.setSkin("bold");
229 newMenu.getMenuElements().add(newNestedMenu);
230 MenuExcludeDefinition newExcludeMenu = folder.newMenuExcludeDefinition();
231 newExcludeMenu.setName("exclude-menu");
232 newMenu.getMenuElements().add(newExcludeMenu);
233 MenuIncludeDefinition newIncludeMenu = folder.newMenuIncludeDefinition();
234 newIncludeMenu.setName("include-menu");
235 newIncludeMenu.setNest(true);
236 newMenu.getMenuElements().add(newIncludeMenu);
237 folder.getMenuDefinitions().add(newMenu);
238 newMenu = folder.newMenuDefinition();
239 newMenu.setName("folder-breadcrumb-menu");
240 newMenu.setSkin("bread-crumbs");
241 newMenu.setOptions("./");
242 newMenu.setPaths(true);
243 folder.getMenuDefinitions().add(newMenu);
244 pageManager.updateFolder(folder);
245
246 assertNull(folder.getParent());
247
248 Page page = pageManager.newPage("/default-page.psml");
249 assertEquals("Default Page", page.getTitle());
250 page.setTitle("Default Page");
251 page.setVersion("6.89");
252 page.setDefaultDecorator("tigris", Fragment.LAYOUT);
253 page.setDefaultDecorator("blue-gradient", Fragment.PORTLET);
254 page.setSkin("skin-1");
255 page.setShortTitle("Default");
256 metadata = page.getMetadata();
257 metadata.addField(Locale.FRENCH, "title", "[fr] Default Page");
258 metadata.addField(Locale.JAPANESE, "title", "[ja] Default Page");
259 SecurityConstraints pageConstraints = page.newSecurityConstraints();
260 pageConstraints.setOwner("user");
261 List inlinePageConstraints = new ArrayList(1);
262 SecurityConstraint pageConstraint = page.newSecurityConstraint();
263 pageConstraint.setUsers(Shared.makeListFromCSV("jetspeed"));
264 pageConstraint.setPermissions(Shared.makeListFromCSV("edit"));
265 inlinePageConstraints.add(pageConstraint);
266 pageConstraints.setSecurityConstraints(inlinePageConstraints);
267 List pageConstraintsRefs = new ArrayList(1);
268 pageConstraintsRefs.add("manager-edit");
269 pageConstraints.setSecurityConstraintsRefs(pageConstraintsRefs);
270 page.setSecurityConstraints(pageConstraints);
271 List pageMenus = new ArrayList();
272 newMenu = page.newMenuDefinition();
273 newMenu.setName("page-menu-1");
274 newMenu.setTitle("The Test Page Menu");
275 metadata = newMenu.getMetadata();
276 metadata.addField(Locale.FRENCH, "title", "[fr] The Test Page Menu");
277 newSeparator = page.newMenuSeparatorDefinition();
278 newSeparator.setText("-- Page Menu --");
279 List menuElements = new ArrayList();
280 menuElements.add(newSeparator);
281 newOptions0 = page.newMenuOptionsDefinition();
282 newOptions0.setOptions("/*.psml");
283 menuElements.add(newOptions0);
284 newNestedMenu = page.newMenuDefinition();
285 newNestedMenu.setOptions("/*/");
286 menuElements.add(newNestedMenu);
287 newExcludeMenu = page.newMenuExcludeDefinition();
288 newExcludeMenu.setName("exclude-menu");
289 menuElements.add(newExcludeMenu);
290 newIncludeMenu = page.newMenuIncludeDefinition();
291 newIncludeMenu.setName("include-menu");
292 menuElements.add(newIncludeMenu);
293 newMenu.setMenuElements(menuElements);
294 pageMenus.add(newMenu);
295 newMenu = page.newMenuDefinition();
296 newMenu.setName("page-menu-2");
297 newMenu.setOptions("./");
298 pageMenus.add(newMenu);
299 page.setMenuDefinitions(pageMenus);
300
301 Fragment root = page.getRootFragment();
302 root.setDecorator("blue-gradient");
303 root.setName("jetspeed-layouts::VelocityTwoColumns");
304 root.setShortTitle("Root");
305 root.setTitle("Root Fragment");
306 root.setState("Normal");
307 root.setLayoutSizes("50%,50%");
308 root.getProperties().put("custom-prop1", "custom-prop-value1");
309 root.getProperties().put("custom-prop2", "custom-prop-value2");
310
311 Fragment portlet = pageManager.newPortletFragment();
312 portlet.setName("security::LoginPortlet");
313 portlet.setShortTitle("Portlet");
314 portlet.setTitle("Portlet Fragment");
315 portlet.setState("Normal");
316 portlet.setLayoutRow(88);
317 portlet.setLayoutColumn(99);
318 portlet.setLayoutX(12.34F);
319 portlet.setLayoutY(23.45F);
320 portlet.setLayoutZ(34.56F);
321 portlet.setLayoutWidth(45.67F);
322 portlet.setLayoutHeight(56.78F);
323 List preferences = new ArrayList(2);
324 FragmentPreference preference = pageManager.newFragmentPreference();
325 preference.setName("pref0");
326 preference.setReadOnly(true);
327 List preferenceValues = new ArrayList(2);
328 preferenceValues.add("pref0-value0");
329 preferenceValues.add("pref0-value1");
330 preference.setValueList(preferenceValues);
331 preferences.add(preference);
332 preference = pageManager.newFragmentPreference();
333 preference.setName("pref1");
334 preferenceValues = new ArrayList(1);
335 preferenceValues.add("pref1-value");
336 preference.setValueList(preferenceValues);
337 preferences.add(preference);
338 portlet.setPreferences(preferences);
339 root.getFragments().add(portlet);
340 portlet = pageManager.newPortletFragment();
341 portlet.setName("some-app::SomePortlet");
342 portlet.setShortTitle("Some Portlet");
343 portlet.setTitle("Some Portlet Fragment");
344 portlet.setState("Normal");
345 portlet.setLayoutRow(22);
346 portlet.setLayoutColumn(11);
347 portlet.setLayoutX(11.11F);
348 portlet.setLayoutY(22.22F);
349 portlet.setLayoutZ(33.33F);
350 portlet.setLayoutWidth(44.44F);
351 portlet.setLayoutHeight(55.55F);
352 SecurityConstraints fragmentConstraints = portlet.newSecurityConstraints();
353 fragmentConstraints.setOwner("user");
354 portlet.setSecurityConstraints(fragmentConstraints);
355 root.getFragments().add(portlet);
356
357 pageManager.updatePage(page);
358
359 assertNotNull(page.getParent());
360 assertEquals(page.getParent().getId(), folder.getId());
361 assertNotNull(folder.getPages());
362 assertEquals(1, folder.getPages().size());
363 assertNotNull(pageManager.getPages(folder));
364 assertEquals(1, pageManager.getPages(folder).size());
365
366 page = pageManager.newPage("/another-page.psml");
367 assertEquals("Another Page", page.getTitle());
368 page.setTitle("Another Page");
369 pageManager.updatePage(page);
370 assertNotNull(page.getParent());
371 assertEquals(page.getParent().getId(), folder.getId());
372 page = pageManager.newPage("/some-other-page.psml");
373 assertEquals("Some Other Page", page.getTitle());
374 page.setTitle("Some Other Page");
375 pageManager.updatePage(page);
376 assertNotNull(page.getParent());
377 assertEquals(page.getParent().getId(), folder.getId());
378 assertEquals(3, folder.getPages().size());
379 assertEquals(3, pageManager.getPages(folder).size());
380
381 Link link = pageManager.newLink("/default.link");
382 assertEquals("Default", link.getTitle());
383 link.setTitle("Default Link");
384 link.setVersion("1.23");
385 link.setShortTitle("Default");
386 link.setTarget("top");
387 link.setUrl("http://www.default.org/");
388 metadata = link.getMetadata();
389 metadata.addField(Locale.FRENCH, "title", "[fr] Default Link");
390 metadata.addField(Locale.GERMAN, "title", "[de] Default Link");
391 SecurityConstraints linkConstraints = link.newSecurityConstraints();
392 linkConstraints.setOwner("user");
393 List inlineLinkConstraints = new ArrayList(1);
394 SecurityConstraint linkConstraint = link.newSecurityConstraint();
395 linkConstraint.setUsers(Shared.makeListFromCSV("jetspeed"));
396 linkConstraint.setPermissions(Shared.makeListFromCSV("edit"));
397 inlineLinkConstraints.add(linkConstraint);
398 linkConstraints.setSecurityConstraints(inlineLinkConstraints);
399 List linkConstraintsRefs = new ArrayList(1);
400 linkConstraintsRefs.add("manager-edit");
401 linkConstraints.setSecurityConstraintsRefs(linkConstraintsRefs);
402 link.setSecurityConstraints(linkConstraints);
403
404 pageManager.updateLink(link);
405
406 assertNotNull(link.getParent());
407 assertEquals(link.getParent().getId(), folder.getId());
408 assertNotNull(folder.getLinks());
409 assertEquals(1, folder.getLinks().size());
410 assertNotNull(pageManager.getLinks(folder));
411 assertEquals(1, pageManager.getLinks(folder).size());
412
413 PageSecurity pageSecurity = pageManager.newPageSecurity();
414 List constraintsDefs = new ArrayList(2);
415 SecurityConstraintsDef constraintsDef = pageManager.newSecurityConstraintsDef();
416 constraintsDef.setName("public-view");
417 List defConstraints = new ArrayList(1);
418 SecurityConstraint defConstraint = pageSecurity.newSecurityConstraint();
419 defConstraint.setUsers(Shared.makeListFromCSV("*"));
420 defConstraint.setPermissions(Shared.makeListFromCSV("view"));
421 defConstraints.add(defConstraint);
422 constraintsDef.setSecurityConstraints(defConstraints);
423 constraintsDefs.add(constraintsDef);
424 constraintsDef = pageSecurity.newSecurityConstraintsDef();
425 constraintsDef.setName("admin-all");
426 defConstraints = new ArrayList(2);
427 defConstraint = pageSecurity.newSecurityConstraint();
428 defConstraint.setRoles(Shared.makeListFromCSV("admin"));
429 defConstraint.setPermissions(Shared.makeListFromCSV("view,edit"));
430 defConstraints.add(defConstraint);
431 defConstraint = pageSecurity.newSecurityConstraint();
432 defConstraint.setRoles(Shared.makeListFromCSV("nobody"));
433 defConstraints.add(defConstraint);
434 constraintsDef.setSecurityConstraints(defConstraints);
435 constraintsDefs.add(constraintsDef);
436 pageSecurity.setSecurityConstraintsDefs(constraintsDefs);
437 List globalConstraintsRefs = new ArrayList(2);
438 globalConstraintsRefs.add("admin-all");
439 globalConstraintsRefs.add("public-view");
440 pageSecurity.setGlobalSecurityConstraintsRefs(globalConstraintsRefs);
441
442 pageManager.updatePageSecurity(pageSecurity);
443
444 assertNotNull(pageSecurity.getParent());
445 assertEquals(pageSecurity.getParent().getId(), folder.getId());
446 assertNotNull(folder.getPageSecurity());
447
448
449 try
450 {
451 Folder dupFolder = pageManager.newFolder("/");
452 pageManager.updateFolder(dupFolder);
453 assertTrue("Duplicate Folder / CREATED", false);
454 }
455 catch (FolderNotUpdatedException e)
456 {
457 }
458 try
459 {
460 Page dupPage = pageManager.newPage("/default-page.psml");
461 pageManager.updatePage(dupPage);
462 assertTrue("Duplicate Page / CREATED", false);
463 }
464 catch (PageNotUpdatedException e)
465 {
466 }
467 try
468 {
469 Link dupLink = pageManager.newLink("/default.link");
470 pageManager.updateLink(dupLink);
471 assertTrue("Duplicate Link / CREATED", false);
472 }
473 catch (FailedToUpdateDocumentException e)
474 {
475 }
476 try
477 {
478 PageSecurity dupPageSecurity = pageManager.newPageSecurity();
479 pageManager.updatePageSecurity(dupPageSecurity);
480 assertTrue("Duplicate PageSecurity / CREATED", false);
481 }
482 catch (FailedToUpdateDocumentException e)
483 {
484 }
485
486
487 Folder deepFolder = null;
488 int pathIndex = deepFolderPath.indexOf('/', 1);
489 while ((pathIndex != -1) && (pathIndex <= deepFolderPath.length()))
490 {
491 deepFolder = pageManager.newFolder(deepFolderPath.substring(0, pathIndex));
492 pageManager.updateFolder(deepFolder);
493 assertNotNull(deepFolder.getParent());
494 assertNotNull(((Folder)deepFolder.getParent()).getFolders());
495 assertEquals(1, ((Folder)deepFolder.getParent()).getFolders().size());
496 assertNotNull(pageManager.getFolders((Folder)deepFolder.getParent()));
497 assertEquals(1, pageManager.getFolders((Folder)deepFolder.getParent()).size());
498 if (pathIndex < deepFolderPath.length())
499 {
500 pathIndex = deepFolderPath.indexOf('/', pathIndex+1);
501 if (pathIndex == -1)
502 {
503 pathIndex = deepFolderPath.length();
504 }
505 }
506 else
507 {
508 pathIndex = -1;
509 }
510 }
511 Page deepPage = pageManager.newPage(deepPagePath);
512 pageManager.updatePage(deepPage);
513 assertNotNull(deepPage.getParent());
514 assertEquals(deepPage.getParent().getId(), deepFolder.getId());
515
516
517 assertNotNull(folder.getFolders());
518 assertEquals(1, folder.getFolders().size());
519 assertNotNull(pageManager.getFolders(folder));
520 assertEquals(1, pageManager.getFolders(folder).size());
521 assertNotNull(folder.getAll());
522 assertEquals(6, folder.getAll().size());
523 assertNotNull(pageManager.getAll(folder));
524 assertEquals(6, pageManager.getAll(folder).size());
525 Iterator all = folder.getAll().iterator();
526 assertEquals("some-other-page.psml", ((Node)all.next()).getName());
527 assertEquals("default-page.psml", ((Node)all.next()).getName());
528 assertEquals("__subsite-rootx", ((Node)all.next()).getName());
529 assertEquals("another-page.psml", ((Node)all.next()).getName());
530 assertEquals("default.link", ((Node)all.next()).getName());
531 assertEquals("page.security", ((Node)all.next()).getName());
532 assertNotNull(folder.getAll().subset(Page.DOCUMENT_TYPE));
533 assertEquals(3, folder.getAll().subset(Page.DOCUMENT_TYPE).size());
534 assertNotNull(folder.getAll().inclusiveSubset(".*other.*"));
535 assertEquals(2, folder.getAll().inclusiveSubset(".*other.*").size());
536 assertNotNull(folder.getAll().inclusiveSubset("nomatch"));
537 assertEquals(0, folder.getAll().inclusiveSubset("nomatch").size());
538 assertNotNull(folder.getAll().exclusiveSubset(".*-page.psml"));
539 assertEquals(3, folder.getAll().exclusiveSubset(".*-page.psml").size());
540 }
541
542 public void testGets() throws Exception
543 {
544
545 pageManager.reset();
546
547
548 try
549 {
550 PageSecurity check = pageManager.getPageSecurity();
551 assertEquals("/page.security", check.getPath());
552 assertEquals("page.security", check.getName());
553 assertEquals("/page.security", check.getUrl());
554 assertNotNull(check.getSecurityConstraintsDefs());
555 assertEquals(2, check.getSecurityConstraintsDefs().size());
556 assertEquals("admin-all", ((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(0)).getName());
557 assertNotNull(((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(0)).getSecurityConstraints());
558 assertEquals(2, ((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(0)).getSecurityConstraints().size());
559 assertEquals("view,edit", Shared.makeCSVFromList(((SecurityConstraint)((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(0)).getSecurityConstraints().get(0)).getPermissions()));
560 assertEquals("public-view", ((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(1)).getName());
561 assertNotNull(((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(1)).getSecurityConstraints());
562 assertEquals(1, ((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(1)).getSecurityConstraints().size());
563 assertEquals("*", Shared.makeCSVFromList(((SecurityConstraint)((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(1)).getSecurityConstraints().get(0)).getUsers()));
564 assertEquals("view", Shared.makeCSVFromList(((SecurityConstraint)((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(1)).getSecurityConstraints().get(0)).getPermissions()));
565 assertNotNull(check.getGlobalSecurityConstraintsRefs());
566 assertEquals(2, check.getGlobalSecurityConstraintsRefs().size());
567 assertEquals("admin-all", (String)check.getGlobalSecurityConstraintsRefs().get(0));
568 assertEquals("public-view", (String)check.getGlobalSecurityConstraintsRefs().get(1));
569 assertNotNull(check.getParent());
570 }
571 catch (DocumentNotFoundException e)
572 {
573 assertTrue("PageSecurity NOT FOUND", false);
574 }
575 try
576 {
577 Link check = pageManager.getLink("/default.link");
578 assertEquals("/default.link", check.getPath());
579 assertEquals("default.link", check.getName());
580 assertEquals("Default Link", check.getTitle());
581 assertEquals("1.23", check.getVersion());
582 assertEquals("Default", check.getShortTitle());
583 assertEquals("top", check.getTarget());
584 assertEquals("http://www.default.org/", check.getUrl());
585 assertNotNull(check.getMetadata());
586 assertEquals("[fr] Default Link", check.getTitle(Locale.FRENCH));
587 assertEquals("[de] Default Link", check.getTitle(Locale.GERMAN));
588 assertNotNull(check.getSecurityConstraints());
589 assertEquals("user", check.getSecurityConstraints().getOwner());
590 assertNotNull(check.getSecurityConstraints().getSecurityConstraintsRefs());
591 assertEquals(1, check.getSecurityConstraints().getSecurityConstraintsRefs().size());
592 assertEquals("manager-edit", (String)check.getSecurityConstraints().getSecurityConstraintsRefs().get(0));
593 assertNotNull(check.getSecurityConstraints().getSecurityConstraints());
594 assertEquals(1, check.getSecurityConstraints().getSecurityConstraints().size());
595 assertEquals("jetspeed", Shared.makeCSVFromList(((SecurityConstraint)check.getSecurityConstraints().getSecurityConstraints().get(0)).getUsers()));
596 assertNotNull(check.getParent());
597 }
598 catch (PageNotFoundException e)
599 {
600 assertTrue("Link /default.link NOT FOUND", false);
601 }
602 try
603 {
604 Page check = pageManager.getPage("/default-page.psml");
605 assertEquals("/default-page.psml", check.getPath());
606 assertEquals("default-page.psml", check.getName());
607 assertEquals("/default-page.psml", check.getUrl());
608 assertEquals("Default Page", check.getTitle());
609 assertEquals("6.89", check.getVersion());
610 assertEquals("tigris", check.getEffectiveDefaultDecorator(Fragment.LAYOUT));
611 assertEquals("tigris", check.getDefaultDecorator(Fragment.LAYOUT));
612 assertEquals("blue-gradient", check.getDefaultDecorator(Fragment.PORTLET));
613 assertEquals("skin-1", check.getSkin());
614 assertEquals("Default", check.getShortTitle());
615 assertNotNull(check.getMetadata());
616 assertEquals("[fr] Default Page", check.getTitle(Locale.FRENCH));
617 assertEquals("[ja] Default Page", check.getTitle(Locale.JAPANESE));
618 assertNotNull(check.getSecurityConstraints());
619 assertEquals("user", check.getSecurityConstraints().getOwner());
620 assertNotNull(check.getSecurityConstraints().getSecurityConstraintsRefs());
621 assertEquals(1, check.getSecurityConstraints().getSecurityConstraintsRefs().size());
622 assertEquals("manager-edit", (String)check.getSecurityConstraints().getSecurityConstraintsRefs().get(0));
623 assertNotNull(check.getSecurityConstraints().getSecurityConstraints());
624 assertEquals(1, check.getSecurityConstraints().getSecurityConstraints().size());
625 assertEquals("jetspeed", Shared.makeCSVFromList(((SecurityConstraint)check.getSecurityConstraints().getSecurityConstraints().get(0)).getUsers()));
626 assertNotNull(check.getMenuDefinitions());
627 assertEquals(2, check.getMenuDefinitions().size());
628 MenuDefinition checkMenu = (MenuDefinition)check.getMenuDefinitions().get(0);
629 assertEquals("page-menu-1", checkMenu.getName());
630 assertEquals("The Test Page Menu", checkMenu.getTitle());
631 assertEquals("[fr] The Test Page Menu", checkMenu.getTitle(Locale.FRENCH));
632 assertNotNull(checkMenu.getMenuElements());
633 assertEquals(5,checkMenu.getMenuElements().size());
634 assertTrue(checkMenu.getMenuElements().get(0) instanceof MenuSeparatorDefinition);
635 assertEquals("-- Page Menu --", ((MenuSeparatorDefinition)checkMenu.getMenuElements().get(0)).getText());
636 assertTrue(checkMenu.getMenuElements().get(1) instanceof MenuOptionsDefinition);
637 assertEquals("/*.psml", ((MenuOptionsDefinition)checkMenu.getMenuElements().get(1)).getOptions());
638 assertTrue(checkMenu.getMenuElements().get(2) instanceof MenuDefinition);
639 assertEquals("/*/", ((MenuDefinition)checkMenu.getMenuElements().get(2)).getOptions());
640 assertNotNull(((MenuDefinition)checkMenu.getMenuElements().get(2)).getMenuElements());
641 assertTrue(((MenuDefinition)checkMenu.getMenuElements().get(2)).getMenuElements().isEmpty());
642 assertTrue(checkMenu.getMenuElements().get(3) instanceof MenuExcludeDefinition);
643 assertEquals("exclude-menu", ((MenuExcludeDefinition)checkMenu.getMenuElements().get(3)).getName());
644 assertTrue(checkMenu.getMenuElements().get(4) instanceof MenuIncludeDefinition);
645 assertEquals("include-menu", ((MenuIncludeDefinition)checkMenu.getMenuElements().get(4)).getName());
646 checkMenu = (MenuDefinition)check.getMenuDefinitions().get(1);
647 assertEquals("page-menu-2", checkMenu.getName());
648 assertNotNull(checkMenu.getMenuElements());
649 assertTrue(checkMenu.getMenuElements().isEmpty());
650 assertNotNull(check.getRootFragment());
651 assertEquals("blue-gradient", check.getRootFragment().getDecorator());
652 assertEquals("jetspeed-layouts::VelocityTwoColumns", check.getRootFragment().getName());
653 assertEquals("Root", check.getRootFragment().getShortTitle());
654 assertEquals("Root Fragment", check.getRootFragment().getTitle());
655 assertEquals("Normal", check.getRootFragment().getState());
656 assertEquals("50%,50%", check.getRootFragment().getLayoutSizes());
657 assertNotNull(check.getRootFragment().getProperties());
658 assertEquals("custom-prop-value1", check.getRootFragment().getProperty("custom-prop1"));
659 assertNotNull(check.getRootFragment().getFragments());
660 assertEquals(2, check.getRootFragment().getFragments().size());
661 Fragment check0 = (Fragment)check.getRootFragment().getFragments().get(0);
662 assertEquals("security::LoginPortlet", check0.getName());
663 assertEquals("Portlet", check0.getShortTitle());
664 assertEquals("Portlet Fragment", check0.getTitle());
665 assertEquals("Normal", check0.getState());
666 assertEquals(88, check0.getLayoutRow());
667 assertEquals(88, check0.getIntProperty(Fragment.ROW_PROPERTY_NAME));
668 assertEquals(99, check0.getLayoutColumn());
669 assertNotNull(check0.getProperty(Fragment.X_PROPERTY_NAME));
670 assertTrue(check0.getProperty(Fragment.X_PROPERTY_NAME).startsWith("12.3"));
671 assertTrue((check0.getLayoutX() > 12.0F) && (check0.getLayoutX() < 13.0F));
672 assertTrue((check0.getFloatProperty(Fragment.X_PROPERTY_NAME) > 12.0F) &&
673 (check0.getFloatProperty(Fragment.X_PROPERTY_NAME) < 13.0F));
674 assertTrue((check0.getLayoutY() > 23.0F) && (check0.getLayoutY() < 24.0F));
675 assertTrue((check0.getLayoutZ() > 34.0F) && (check0.getLayoutZ() < 35.0F));
676 assertTrue((check0.getLayoutWidth() > 45.0F) && (check0.getLayoutWidth() < 46.0F));
677 assertTrue((check0.getLayoutHeight() > 56.0F) && (check0.getLayoutWidth() < 57.0F));
678 assertNotNull(check0.getPreferences());
679 assertEquals(2, check0.getPreferences().size());
680 assertEquals("pref0", ((FragmentPreference)check0.getPreferences().get(0)).getName());
681 assertTrue(((FragmentPreference)check0.getPreferences().get(0)).isReadOnly());
682 assertNotNull(((FragmentPreference)check0.getPreferences().get(0)).getValueList());
683 assertEquals(2, ((FragmentPreference)check0.getPreferences().get(0)).getValueList().size());
684 assertEquals("pref0-value0", (String)((FragmentPreference)check0.getPreferences().get(0)).getValueList().get(0));
685 assertEquals("pref0-value1", (String)((FragmentPreference)check0.getPreferences().get(0)).getValueList().get(1));
686 assertEquals("pref1", ((FragmentPreference)check0.getPreferences().get(1)).getName());
687 assertFalse(((FragmentPreference)check0.getPreferences().get(1)).isReadOnly());
688 assertNotNull(((FragmentPreference)check0.getPreferences().get(1)).getValueList());
689 assertEquals(1, ((FragmentPreference)check0.getPreferences().get(1)).getValueList().size());
690 assertEquals("pref1-value", (String)((FragmentPreference)check0.getPreferences().get(1)).getValueList().get(0));
691 Fragment check1 = (Fragment)check.getRootFragment().getFragments().get(1);
692 assertEquals("some-app::SomePortlet", check1.getName());
693 assertEquals("Some Portlet", check1.getShortTitle());
694 assertEquals("Some Portlet Fragment", check1.getTitle());
695 assertEquals("Normal", check1.getState());
696 assertEquals(22, check1.getLayoutRow());
697 assertEquals(11, check1.getLayoutColumn());
698 assertTrue((check1.getLayoutX() > 11.0F) && (check1.getLayoutX() < 12.0F));
699 assertTrue((check1.getLayoutY() > 22.0F) && (check1.getLayoutY() < 23.0F));
700 assertTrue((check1.getLayoutZ() > 33.0F) && (check1.getLayoutZ() < 34.0F));
701 assertTrue((check1.getLayoutWidth() > 44.0F) && (check1.getLayoutWidth() < 45.0F));
702 assertTrue((check1.getLayoutHeight() > 55.0F) && (check1.getLayoutWidth() < 56.0F));
703 assertNotNull(check1.getSecurityConstraints());
704 assertEquals("user", check1.getSecurityConstraints().getOwner());
705 assertNotNull(check.getFragmentById(check0.getId()));
706 assertNotNull(check.getFragmentsByName("some-app::SomePortlet"));
707 assertEquals(1, check.getFragmentsByName("some-app::SomePortlet").size());
708 assertNotNull(check.getParent());
709 }
710 catch (PageNotFoundException e)
711 {
712 assertTrue("Page /default-page.psml NOT FOUND", false);
713 }
714 try
715 {
716 Folder check = pageManager.getFolder("/");
717 assertEquals("/", check.getPath());
718 assertEquals("/", check.getName());
719 assertEquals("/", check.getUrl());
720 assertEquals("Root Folder", check.getTitle());
721 assertEquals("jetspeed", check.getEffectiveDefaultDecorator(Fragment.LAYOUT));
722 assertEquals("jetspeed", check.getDefaultDecorator(Fragment.LAYOUT));
723 assertEquals("gray-gradient", check.getDefaultDecorator(Fragment.PORTLET));
724 assertEquals("skin-1", check.getSkin());
725 assertEquals("default-page.psml", check.getDefaultPage());
726 assertEquals("Root", check.getShortTitle());
727 assertNotNull(check.getMetadata());
728 assertEquals("[fr] Root Folder", check.getTitle(Locale.FRENCH));
729 assertNotNull(check.getSecurityConstraints());
730 assertEquals("admin", check.getSecurityConstraints().getOwner());
731 assertNotNull(check.getSecurityConstraints().getSecurityConstraintsRefs());
732 assertEquals(2, check.getSecurityConstraints().getSecurityConstraintsRefs().size());
733 assertEquals("public-edit", (String)check.getSecurityConstraints().getSecurityConstraintsRefs().get(1));
734 assertNotNull(check.getSecurityConstraints().getSecurityConstraints());
735 assertEquals(2, check.getSecurityConstraints().getSecurityConstraints().size());
736 assertEquals("user,admin", Shared.makeCSVFromList(((SecurityConstraint)check.getSecurityConstraints().getSecurityConstraints().get(0)).getUsers()));
737 assertEquals("manager", Shared.makeCSVFromList(((SecurityConstraint)check.getSecurityConstraints().getSecurityConstraints().get(0)).getRoles()));
738 assertEquals("*", Shared.makeCSVFromList(((SecurityConstraint)check.getSecurityConstraints().getSecurityConstraints().get(0)).getGroups()));
739 assertEquals("edit", Shared.makeCSVFromList(((SecurityConstraint)check.getSecurityConstraints().getSecurityConstraints().get(1)).getPermissions()));
740 assertNotNull(check.getDocumentOrder());
741 assertEquals(2, check.getDocumentOrder().size());
742 assertEquals("some-other-page.psml", (String)check.getDocumentOrder().get(0));
743 assertEquals("default-page.psml", (String)check.getDocumentOrder().get(1));
744 assertNull(check.getParent());
745 assertNotNull(check.getPageSecurity());
746 assertNotNull(check.getPages());
747 assertEquals(3, check.getPages().size());
748 assertNotNull(check.getLinks());
749 assertEquals(1, check.getLinks().size());
750 assertNotNull(check.getFolders());
751 assertEquals(1, check.getFolders().size());
752 assertNotNull(check.getAll());
753 assertEquals(6, check.getAll().size());
754 Iterator all = check.getAll().iterator();
755 assertEquals("some-other-page.psml", ((Node)all.next()).getName());
756 assertEquals("default-page.psml", ((Node)all.next()).getName());
757 assertEquals("__subsite-rootx", ((Node)all.next()).getName());
758 assertEquals("another-page.psml", ((Node)all.next()).getName());
759 assertEquals("default.link", ((Node)all.next()).getName());
760 assertEquals("page.security", ((Node)all.next()).getName());
761 assertNotNull(check.getMenuDefinitions());
762 assertEquals(2, check.getMenuDefinitions().size());
763 MenuDefinition checkMenu = (MenuDefinition)check.getMenuDefinitions().get(0);
764 assertEquals("folder-breadcrumb-menu", checkMenu.getName());
765 assertEquals("bread-crumbs", checkMenu.getSkin());
766 assertEquals("./", checkMenu.getOptions());
767 assertTrue(checkMenu.isPaths());
768 assertNotNull(checkMenu.getMenuElements());
769 assertTrue(checkMenu.getMenuElements().isEmpty());
770 checkMenu = (MenuDefinition)check.getMenuDefinitions().get(1);
771 assertEquals("folder-menu", checkMenu.getName());
772 assertEquals("The Test Folder Menu", checkMenu.getTitle());
773 assertEquals("Folder Menu", checkMenu.getShortTitle());
774 assertEquals("group-fallback", checkMenu.getProfile());
775 assertEquals("[fr] Folder Menu", checkMenu.getShortTitle(Locale.FRENCH));
776 assertEquals("[fr] The Test Folder Menu", checkMenu.getTitle(Locale.FRENCH));
777 assertNotNull(checkMenu.getMenuElements());
778 assertEquals(6,checkMenu.getMenuElements().size());
779 assertTrue(checkMenu.getMenuElements().get(0) instanceof MenuSeparatorDefinition);
780 assertEquals("-- Folder Menu --", ((MenuSeparatorDefinition)checkMenu.getMenuElements().get(0)).getText());
781 assertEquals("Rollover: Folder Menu", ((MenuSeparatorDefinition)checkMenu.getMenuElements().get(0)).getTitle());
782 assertEquals("header", ((MenuSeparatorDefinition)checkMenu.getMenuElements().get(0)).getSkin());
783 assertEquals("-- [fr] Folder Menu --", ((MenuSeparatorDefinition)checkMenu.getMenuElements().get(0)).getText(Locale.FRENCH));
784 assertEquals("[fr] Rollover: Folder Menu", ((MenuSeparatorDefinition)checkMenu.getMenuElements().get(0)).getTitle(Locale.FRENCH));
785 assertTrue(checkMenu.getMenuElements().get(1) instanceof MenuOptionsDefinition);
786 assertEquals("/*.psml", ((MenuOptionsDefinition)checkMenu.getMenuElements().get(1)).getOptions());
787 assertTrue(((MenuOptionsDefinition)checkMenu.getMenuElements().get(1)).isRegexp());
788 assertEquals("flash", ((MenuOptionsDefinition)checkMenu.getMenuElements().get(1)).getSkin());
789 assertTrue(checkMenu.getMenuElements().get(2) instanceof MenuOptionsDefinition);
790 assertEquals("/folder0", ((MenuOptionsDefinition)checkMenu.getMenuElements().get(2)).getOptions());
791 assertEquals("role-fallback", ((MenuOptionsDefinition)checkMenu.getMenuElements().get(2)).getProfile());
792 assertEquals("/folder*", ((MenuOptionsDefinition)checkMenu.getMenuElements().get(2)).getOrder());
793 assertEquals(1, ((MenuOptionsDefinition)checkMenu.getMenuElements().get(2)).getDepth());
794 assertTrue(((MenuOptionsDefinition)checkMenu.getMenuElements().get(2)).isPaths());
795 assertTrue(checkMenu.getMenuElements().get(3) instanceof MenuDefinition);
796 assertEquals("/*/", ((MenuDefinition)checkMenu.getMenuElements().get(3)).getOptions());
797 assertTrue(((MenuDefinition)checkMenu.getMenuElements().get(3)).isRegexp());
798 assertEquals(2, ((MenuDefinition)checkMenu.getMenuElements().get(3)).getDepth());
799 assertEquals("/x*/,/y*/,/z*/", ((MenuDefinition)checkMenu.getMenuElements().get(3)).getOrder());
800 assertEquals("bold", ((MenuDefinition)checkMenu.getMenuElements().get(3)).getSkin());
801 assertNotNull(((MenuDefinition)checkMenu.getMenuElements().get(3)).getMenuElements());
802 assertTrue(((MenuDefinition)checkMenu.getMenuElements().get(3)).getMenuElements().isEmpty());
803 assertTrue(checkMenu.getMenuElements().get(4) instanceof MenuExcludeDefinition);
804 assertEquals("exclude-menu", ((MenuExcludeDefinition)checkMenu.getMenuElements().get(4)).getName());
805 assertTrue(checkMenu.getMenuElements().get(5) instanceof MenuIncludeDefinition);
806 assertEquals("include-menu", ((MenuIncludeDefinition)checkMenu.getMenuElements().get(5)).getName());
807 assertTrue(((MenuIncludeDefinition)checkMenu.getMenuElements().get(5)).isNest());
808 }
809 catch (FolderNotFoundException e)
810 {
811 assertTrue("Folder / NOT FOUND", false);
812 }
813 try
814 {
815 Page check = pageManager.getPage("/another-page.psml");
816 assertEquals("/another-page.psml", check.getPath());
817 assertEquals("another-page.psml", check.getName());
818 assertEquals("Another Page", check.getTitle());
819 assertEquals("jetspeed", check.getEffectiveDefaultDecorator(Fragment.LAYOUT));
820 assertEquals("gray-gradient", check.getEffectiveDefaultDecorator(Fragment.PORTLET));
821 assertNull(check.getDefaultDecorator(Fragment.LAYOUT));
822 assertNull(check.getDefaultDecorator(Fragment.PORTLET));
823 }
824 catch (PageNotFoundException e)
825 {
826 assertTrue("Page /default-page.psml NOT FOUND", false);
827 }
828
829 try
830 {
831 Page check = pageManager.getPage(deepPagePath);
832 assertEquals(deepPagePath, check.getPath());
833 assertNotNull(check.getParent());
834 }
835 catch (PageNotFoundException e)
836 {
837 assertTrue("Page " + deepPagePath + " NOT FOUND", false);
838 }
839 try
840 {
841 Folder check = pageManager.getFolder(deepFolderPath);
842 assertEquals(deepFolderPath, check.getPath());
843 assertNotNull(check.getParent());
844 }
845 catch (FolderNotFoundException e)
846 {
847 assertTrue("Folder " + deepFolderPath + " NOT FOUND", false);
848 }
849 }
850
851 public void testUpdates() throws Exception
852 {
853
854 pageManager.reset();
855
856
857 PageSecurity pageSecurity = pageManager.getPageSecurity();
858 assertEquals("/page.security", pageSecurity.getPath());
859 pageSecurity.getGlobalSecurityConstraintsRefs().add("UPDATED");
860 pageManager.updatePageSecurity(pageSecurity);
861
862 Page page = pageManager.getPage("/default-page.psml");
863 assertEquals("/default-page.psml", page.getPath());
864 page.setTitle("UPDATED");
865 page.getRootFragment().getProperties().remove("custom-prop1");
866 page.getRootFragment().getProperties().put("UPDATED", "UPDATED");
867 assertNotNull(page.getRootFragment().getFragments());
868 assertEquals(2, page.getRootFragment().getFragments().size());
869 String removeId = ((Fragment)page.getRootFragment().getFragments().get(1)).getId();
870 assertNotNull(page.removeFragmentById(removeId));
871 SecurityConstraint pageConstraint = page.newSecurityConstraint();
872 pageConstraint.setUsers(Shared.makeListFromCSV("UPDATED"));
873 page.getSecurityConstraints().getSecurityConstraints().add(0, pageConstraint);
874 pageManager.updatePage(page);
875
876 Link link = pageManager.getLink("/default.link");
877 assertEquals("/default.link", link.getPath());
878 link.setTitle("UPDATED");
879 link.getSecurityConstraints().setOwner("UPDATED");
880 pageManager.updateLink(link);
881
882 Folder folder = pageManager.getFolder("/");
883 assertEquals("/", folder.getPath());
884 folder.setTitle("UPDATED");
885 folder.getDocumentOrder().remove("some-other-page.psml");
886 folder.getDocumentOrder().add("UPDATED");
887 folder.getDocumentOrder().add("some-other-page.psml");
888 MenuDefinition updateMenu = (MenuDefinition)folder.getMenuDefinitions().get(1);
889 updateMenu.setName("UPDATED");
890 updateMenu.setTitle("UPDATED");
891 updateMenu.getMetadata().addField(Locale.JAPANESE, "short-title", "[ja] UPDATED");
892 ((MenuOptionsDefinition)updateMenu.getMenuElements().get(2)).setProfile("UPDATED");
893 pageManager.updateFolder(folder);
894 assertNotNull(folder.getAll());
895 assertEquals(6, folder.getAll().size());
896 Iterator all = folder.getAll().iterator();
897 assertEquals("default-page.psml", ((Node)all.next()).getName());
898 assertEquals("some-other-page.psml", ((Node)all.next()).getName());
899
900 folder.setTitle("FOLDER-UPDATED-DEEP");
901 page.setTitle("FOLDER-UPDATED-DEEP");
902 link.setTitle("FOLDER-UPDATED-DEEP");
903 Folder deepFolder = pageManager.getFolder(deepFolderPath);
904 deepFolder.setTitle("FOLDER-UPDATED-DEEP");
905 Page deepPage = pageManager.getPage(deepPagePath);
906 deepPage.setTitle("FOLDER-UPDATED-DEEP");
907 pageManager.updateFolder(folder, true);
908 }
909
910 public void testRemoves() throws Exception
911 {
912
913 pageManager.reset();
914
915
916 try
917 {
918 Folder remove = pageManager.getFolder("/");
919 assertEquals("/", remove.getPath());
920 pageManager.removeFolder(remove);
921 }
922 catch (FolderNotFoundException e)
923 {
924 assertTrue("Folder / NOT FOUND", false);
925 }
926
927
928 pageManager.reset();
929
930
931 try
932 {
933 pageManager.getFolder("/");
934 assertTrue("Folder / FOUND", false);
935 }
936 catch (FolderNotFoundException e)
937 {
938 }
939 try
940 {
941 pageManager.getPageSecurity();
942 assertTrue("PageSecurity FOUND", false);
943 }
944 catch (DocumentNotFoundException e)
945 {
946 }
947 try
948 {
949 pageManager.getLink("/default.link");
950 assertTrue("Link /default.link FOUND", false);
951 }
952 catch (DocumentNotFoundException e)
953 {
954 }
955 try
956 {
957 pageManager.getPage("/default-page.psml");
958 assertTrue("Page /default-page.psml FOUND", false);
959 }
960 catch (PageNotFoundException e)
961 {
962 }
963 try
964 {
965 pageManager.getFolder("/");
966 assertTrue("Folder / FOUND", false);
967 }
968 catch (FolderNotFoundException e)
969 {
970 }
971 try
972 {
973 pageManager.getFolder(deepFolderPath);
974 assertTrue("Folder " + deepFolderPath + " FOUND", false);
975 }
976 catch (FolderNotFoundException e)
977 {
978 }
979 try
980 {
981 pageManager.getPage(deepPagePath);
982 assertTrue("Page " + deepPagePath + " FOUND", false);
983 }
984 catch (PageNotFoundException e)
985 {
986 }
987 }
988
989 public void testEvents() throws Exception
990 {
991
992 assertEquals(22, newNodeCount);
993 assertEquals(26, updatedNodeCount);
994 assertEquals(22, removedNodeCount);
995
996
997 lastTestRun = true;
998 }
999 }