pageManager.reset();
// read documents and folders from persisted store
try
{
PageSecurity check = pageManager.getPageSecurity();
assertEquals("/page.security", check.getPath());
assertEquals("page.security", check.getName());
assertEquals("/page.security", check.getUrl());
assertNotNull(check.getSecurityConstraintsDefs());
assertEquals(2, check.getSecurityConstraintsDefs().size());
assertEquals("admin-all", ((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(0)).getName());
assertNotNull(((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(0)).getSecurityConstraints());
assertEquals(2, ((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(0)).getSecurityConstraints().size());
assertEquals("view,edit", Shared.makeCSVFromList(((SecurityConstraint)((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(0)).getSecurityConstraints().get(0)).getPermissions()));
assertEquals("public-view", ((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(1)).getName());
assertNotNull(((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(1)).getSecurityConstraints());
assertEquals(1, ((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(1)).getSecurityConstraints().size());
assertEquals("*", Shared.makeCSVFromList(((SecurityConstraint)((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(1)).getSecurityConstraints().get(0)).getUsers()));
assertEquals("view", Shared.makeCSVFromList(((SecurityConstraint)((SecurityConstraintsDef)check.getSecurityConstraintsDefs().get(1)).getSecurityConstraints().get(0)).getPermissions()));
assertNotNull(check.getGlobalSecurityConstraintsRefs());
assertEquals(2, check.getGlobalSecurityConstraintsRefs().size());
assertEquals("admin-all", (String)check.getGlobalSecurityConstraintsRefs().get(0));
assertEquals("public-view", (String)check.getGlobalSecurityConstraintsRefs().get(1));
assertNotNull(check.getParent());
}
catch (DocumentNotFoundException e)
{
assertTrue("PageSecurity NOT FOUND", false);
}
try
{
Link check = pageManager.getLink("/default.link");
assertEquals("/default.link", check.getPath());
assertEquals("default.link", check.getName());
assertEquals("Default Link", check.getTitle());
assertEquals("1.23", check.getVersion());
assertEquals("Default", check.getShortTitle());
assertEquals("top", check.getTarget());
assertEquals("http://www.default.org/", check.getUrl());
assertNotNull(check.getMetadata());
assertEquals("[fr] Default Link", check.getTitle(Locale.FRENCH));
assertEquals("[de] Default Link", check.getTitle(Locale.GERMAN));
assertNotNull(check.getSecurityConstraints());
assertEquals("user", check.getSecurityConstraints().getOwner());
assertNotNull(check.getSecurityConstraints().getSecurityConstraintsRefs());
assertEquals(1, check.getSecurityConstraints().getSecurityConstraintsRefs().size());
assertEquals("manager-edit", (String)check.getSecurityConstraints().getSecurityConstraintsRefs().get(0));
assertNotNull(check.getSecurityConstraints().getSecurityConstraints());
assertEquals(1, check.getSecurityConstraints().getSecurityConstraints().size());
assertEquals("jetspeed", Shared.makeCSVFromList(((SecurityConstraint)check.getSecurityConstraints().getSecurityConstraints().get(0)).getUsers()));
assertNotNull(check.getParent());
}
catch (PageNotFoundException e)
{
assertTrue("Link /default.link NOT FOUND", false);
}
try
{
Page check = pageManager.getPage("/default-page.psml");
assertEquals("/default-page.psml", check.getPath());
assertEquals("default-page.psml", check.getName());
assertEquals("/default-page.psml", check.getUrl());
assertEquals("Default Page", check.getTitle());
assertEquals("6.89", check.getVersion());
assertEquals("tigris", check.getEffectiveDefaultDecorator(Fragment.LAYOUT));
assertEquals("tigris", check.getDefaultDecorator(Fragment.LAYOUT));
assertEquals("blue-gradient", check.getDefaultDecorator(Fragment.PORTLET));
assertEquals("skin-1", check.getSkin());
assertEquals("Default", check.getShortTitle());
assertNotNull(check.getMetadata());
assertEquals("[fr] Default Page", check.getTitle(Locale.FRENCH));
assertEquals("[ja] Default Page", check.getTitle(Locale.JAPANESE));
assertNotNull(check.getSecurityConstraints());
assertEquals("user", check.getSecurityConstraints().getOwner());
assertNotNull(check.getSecurityConstraints().getSecurityConstraintsRefs());
assertEquals(1, check.getSecurityConstraints().getSecurityConstraintsRefs().size());
assertEquals("manager-edit", (String)check.getSecurityConstraints().getSecurityConstraintsRefs().get(0));
assertNotNull(check.getSecurityConstraints().getSecurityConstraints());
assertEquals(1, check.getSecurityConstraints().getSecurityConstraints().size());
assertEquals("jetspeed", Shared.makeCSVFromList(((SecurityConstraint)check.getSecurityConstraints().getSecurityConstraints().get(0)).getUsers()));
assertNotNull(check.getMenuDefinitions());
assertEquals(2, check.getMenuDefinitions().size());
MenuDefinition checkMenu = (MenuDefinition)check.getMenuDefinitions().get(0);
assertEquals("page-menu-1", checkMenu.getName());
assertEquals("The Test Page Menu", checkMenu.getTitle());
assertEquals("[fr] The Test Page Menu", checkMenu.getTitle(Locale.FRENCH));
assertNotNull(checkMenu.getMenuElements());
assertEquals(5,checkMenu.getMenuElements().size());
assertTrue(checkMenu.getMenuElements().get(0) instanceof MenuSeparatorDefinition);
assertEquals("-- Page Menu --", ((MenuSeparatorDefinition)checkMenu.getMenuElements().get(0)).getText());
assertTrue(checkMenu.getMenuElements().get(1) instanceof MenuOptionsDefinition);
assertEquals("/*.psml", ((MenuOptionsDefinition)checkMenu.getMenuElements().get(1)).getOptions());
assertTrue(checkMenu.getMenuElements().get(2) instanceof MenuDefinition);
assertEquals("/*/", ((MenuDefinition)checkMenu.getMenuElements().get(2)).getOptions());
assertNotNull(((MenuDefinition)checkMenu.getMenuElements().get(2)).getMenuElements());
assertTrue(((MenuDefinition)checkMenu.getMenuElements().get(2)).getMenuElements().isEmpty());
assertTrue(checkMenu.getMenuElements().get(3) instanceof MenuExcludeDefinition);
assertEquals("exclude-menu", ((MenuExcludeDefinition)checkMenu.getMenuElements().get(3)).getName());
assertTrue(checkMenu.getMenuElements().get(4) instanceof MenuIncludeDefinition);
assertEquals("include-menu", ((MenuIncludeDefinition)checkMenu.getMenuElements().get(4)).getName());
checkMenu = (MenuDefinition)check.getMenuDefinitions().get(1);
assertEquals("page-menu-2", checkMenu.getName());
assertNotNull(checkMenu.getMenuElements());
assertTrue(checkMenu.getMenuElements().isEmpty());
assertNotNull(check.getRootFragment());
assertEquals("blue-gradient", check.getRootFragment().getDecorator());
assertEquals("jetspeed-layouts::VelocityTwoColumns", check.getRootFragment().getName());
assertEquals("Root", check.getRootFragment().getShortTitle());
assertEquals("Root Fragment", check.getRootFragment().getTitle());
assertEquals("Normal", check.getRootFragment().getState());
assertEquals("50%,50%", check.getRootFragment().getLayoutSizes());
assertNotNull(check.getRootFragment().getProperties());
assertEquals("custom-prop-value1", check.getRootFragment().getProperty("custom-prop1"));
assertNotNull(check.getRootFragment().getFragments());
assertEquals(2, check.getRootFragment().getFragments().size());
Fragment check0 = (Fragment)check.getRootFragment().getFragments().get(0);
assertEquals("security::LoginPortlet", check0.getName());
assertEquals("Portlet", check0.getShortTitle());
assertEquals("Portlet Fragment", check0.getTitle());
assertEquals("Normal", check0.getState());
assertEquals(88, check0.getLayoutRow());
assertEquals(88, check0.getIntProperty(Fragment.ROW_PROPERTY_NAME));
assertEquals(99, check0.getLayoutColumn());
assertNotNull(check0.getProperty(Fragment.X_PROPERTY_NAME));
assertTrue(check0.getProperty(Fragment.X_PROPERTY_NAME).startsWith("12.3"));
assertTrue((check0.getLayoutX() > 12.0F) && (check0.getLayoutX() < 13.0F));
assertTrue((check0.getFloatProperty(Fragment.X_PROPERTY_NAME) > 12.0F) &&
(check0.getFloatProperty(Fragment.X_PROPERTY_NAME) < 13.0F));
assertTrue((check0.getLayoutY() > 23.0F) && (check0.getLayoutY() < 24.0F));
assertTrue((check0.getLayoutZ() > 34.0F) && (check0.getLayoutZ() < 35.0F));
assertTrue((check0.getLayoutWidth() > 45.0F) && (check0.getLayoutWidth() < 46.0F));
assertTrue((check0.getLayoutHeight() > 56.0F) && (check0.getLayoutWidth() < 57.0F));
assertNotNull(check0.getPreferences());
assertEquals(2, check0.getPreferences().size());
assertEquals("pref0", ((FragmentPreference)check0.getPreferences().get(0)).getName());
assertTrue(((FragmentPreference)check0.getPreferences().get(0)).isReadOnly());
assertNotNull(((FragmentPreference)check0.getPreferences().get(0)).getValueList());
assertEquals(2, ((FragmentPreference)check0.getPreferences().get(0)).getValueList().size());
assertEquals("pref0-value0", (String)((FragmentPreference)check0.getPreferences().get(0)).getValueList().get(0));
assertEquals("pref0-value1", (String)((FragmentPreference)check0.getPreferences().get(0)).getValueList().get(1));
assertEquals("pref1", ((FragmentPreference)check0.getPreferences().get(1)).getName());
assertFalse(((FragmentPreference)check0.getPreferences().get(1)).isReadOnly());
assertNotNull(((FragmentPreference)check0.getPreferences().get(1)).getValueList());
assertEquals(1, ((FragmentPreference)check0.getPreferences().get(1)).getValueList().size());
assertEquals("pref1-value", (String)((FragmentPreference)check0.getPreferences().get(1)).getValueList().get(0));
Fragment check1 = (Fragment)check.getRootFragment().getFragments().get(1);
assertEquals("some-app::SomePortlet", check1.getName());
assertEquals("Some Portlet", check1.getShortTitle());
assertEquals("Some Portlet Fragment", check1.getTitle());
assertEquals("Normal", check1.getState());
assertEquals(22, check1.getLayoutRow());
assertEquals(11, check1.getLayoutColumn());
assertTrue((check1.getLayoutX() > 11.0F) && (check1.getLayoutX() < 12.0F));
assertTrue((check1.getLayoutY() > 22.0F) && (check1.getLayoutY() < 23.0F));
assertTrue((check1.getLayoutZ() > 33.0F) && (check1.getLayoutZ() < 34.0F));
assertTrue((check1.getLayoutWidth() > 44.0F) && (check1.getLayoutWidth() < 45.0F));
assertTrue((check1.getLayoutHeight() > 55.0F) && (check1.getLayoutWidth() < 56.0F));
assertNotNull(check1.getSecurityConstraints());
assertEquals("user", check1.getSecurityConstraints().getOwner());
assertNotNull(check.getFragmentById(check0.getId()));
assertNotNull(check.getFragmentsByName("some-app::SomePortlet"));
assertEquals(1, check.getFragmentsByName("some-app::SomePortlet").size());
assertNotNull(check.getParent());
}
catch (PageNotFoundException e)
{
assertTrue("Page /default-page.psml NOT FOUND", false);
}
try
{
Folder check = pageManager.getFolder("/");
assertEquals("/", check.getPath());
assertEquals("/", check.getName());
assertEquals("/", check.getUrl());
assertEquals("Root Folder", check.getTitle());
assertEquals("jetspeed", check.getEffectiveDefaultDecorator(Fragment.LAYOUT));
assertEquals("jetspeed", check.getDefaultDecorator(Fragment.LAYOUT));
assertEquals("gray-gradient", check.getDefaultDecorator(Fragment.PORTLET));
assertEquals("skin-1", check.getSkin());
assertEquals("default-page.psml", check.getDefaultPage());
assertEquals("Root", check.getShortTitle());
assertNotNull(check.getMetadata());
assertEquals("[fr] Root Folder", check.getTitle(Locale.FRENCH));
assertNotNull(check.getSecurityConstraints());
assertEquals("admin", check.getSecurityConstraints().getOwner());
assertNotNull(check.getSecurityConstraints().getSecurityConstraintsRefs());
assertEquals(2, check.getSecurityConstraints().getSecurityConstraintsRefs().size());
assertEquals("public-edit", (String)check.getSecurityConstraints().getSecurityConstraintsRefs().get(1));
assertNotNull(check.getSecurityConstraints().getSecurityConstraints());
assertEquals(2, check.getSecurityConstraints().getSecurityConstraints().size());
assertEquals("user,admin", Shared.makeCSVFromList(((SecurityConstraint)check.getSecurityConstraints().getSecurityConstraints().get(0)).getUsers()));
assertEquals("manager", Shared.makeCSVFromList(((SecurityConstraint)check.getSecurityConstraints().getSecurityConstraints().get(0)).getRoles()));
assertEquals("*", Shared.makeCSVFromList(((SecurityConstraint)check.getSecurityConstraints().getSecurityConstraints().get(0)).getGroups()));
assertEquals("edit", Shared.makeCSVFromList(((SecurityConstraint)check.getSecurityConstraints().getSecurityConstraints().get(1)).getPermissions()));
assertNotNull(check.getDocumentOrder());
assertEquals(2, check.getDocumentOrder().size());
assertEquals("some-other-page.psml", (String)check.getDocumentOrder().get(0));
assertEquals("default-page.psml", (String)check.getDocumentOrder().get(1));
assertNull(check.getParent());
assertNotNull(check.getPageSecurity());
assertNotNull(check.getPages());
assertEquals(3, check.getPages().size());
assertNotNull(check.getLinks());
assertEquals(1, check.getLinks().size());
assertNotNull(check.getFolders());
assertEquals(1, check.getFolders().size());
assertNotNull(check.getAll());
assertEquals(6, check.getAll().size());
Iterator all = check.getAll().iterator();
assertEquals("some-other-page.psml", ((Node)all.next()).getName());
assertEquals("default-page.psml", ((Node)all.next()).getName());
assertEquals("__subsite-rootx", ((Node)all.next()).getName());
assertEquals("another-page.psml", ((Node)all.next()).getName());
assertEquals("default.link", ((Node)all.next()).getName());
assertEquals("page.security", ((Node)all.next()).getName());
assertNotNull(check.getMenuDefinitions());
assertEquals(2, check.getMenuDefinitions().size());
MenuDefinition checkMenu = (MenuDefinition)check.getMenuDefinitions().get(0);
assertEquals("folder-breadcrumb-menu", checkMenu.getName());
assertEquals("bread-crumbs", checkMenu.getSkin());
assertEquals("./", checkMenu.getOptions());
assertTrue(checkMenu.isPaths());
assertNotNull(checkMenu.getMenuElements());
assertTrue(checkMenu.getMenuElements().isEmpty());
checkMenu = (MenuDefinition)check.getMenuDefinitions().get(1);
assertEquals("folder-menu", checkMenu.getName());
assertEquals("The Test Folder Menu", checkMenu.getTitle());
assertEquals("Folder Menu", checkMenu.getShortTitle());
assertEquals("group-fallback", checkMenu.getProfile());
assertEquals("[fr] Folder Menu", checkMenu.getShortTitle(Locale.FRENCH));
assertEquals("[fr] The Test Folder Menu", checkMenu.getTitle(Locale.FRENCH));
assertNotNull(checkMenu.getMenuElements());
assertEquals(6,checkMenu.getMenuElements().size());
assertTrue(checkMenu.getMenuElements().get(0) instanceof MenuSeparatorDefinition);
assertEquals("-- Folder Menu --", ((MenuSeparatorDefinition)checkMenu.getMenuElements().get(0)).getText());
assertEquals("Rollover: Folder Menu", ((MenuSeparatorDefinition)checkMenu.getMenuElements().get(0)).getTitle());
assertEquals("header", ((MenuSeparatorDefinition)checkMenu.getMenuElements().get(0)).getSkin());
assertEquals("-- [fr] Folder Menu --", ((MenuSeparatorDefinition)checkMenu.getMenuElements().get(0)).getText(Locale.FRENCH));
assertEquals("[fr] Rollover: Folder Menu", ((MenuSeparatorDefinition)checkMenu.getMenuElements().get(0)).getTitle(Locale.FRENCH));
assertTrue(checkMenu.getMenuElements().get(1) instanceof MenuOptionsDefinition);
assertEquals("/*.psml", ((MenuOptionsDefinition)checkMenu.getMenuElements().get(1)).getOptions());
assertTrue(((MenuOptionsDefinition)checkMenu.getMenuElements().get(1)).isRegexp());
assertEquals("flash", ((MenuOptionsDefinition)checkMenu.getMenuElements().get(1)).getSkin());
assertTrue(checkMenu.getMenuElements().get(2) instanceof MenuOptionsDefinition);
assertEquals("/folder0", ((MenuOptionsDefinition)checkMenu.getMenuElements().get(2)).getOptions());
assertEquals("role-fallback", ((MenuOptionsDefinition)checkMenu.getMenuElements().get(2)).getProfile());
assertEquals("/folder*", ((MenuOptionsDefinition)checkMenu.getMenuElements().get(2)).getOrder());
assertEquals(1, ((MenuOptionsDefinition)checkMenu.getMenuElements().get(2)).getDepth());
assertTrue(((MenuOptionsDefinition)checkMenu.getMenuElements().get(2)).isPaths());
assertTrue(checkMenu.getMenuElements().get(3) instanceof MenuDefinition);
assertEquals("/*/", ((MenuDefinition)checkMenu.getMenuElements().get(3)).getOptions());
assertTrue(((MenuDefinition)checkMenu.getMenuElements().get(3)).isRegexp());
assertEquals(2, ((MenuDefinition)checkMenu.getMenuElements().get(3)).getDepth());
assertEquals("/x*/,/y*/,/z*/", ((MenuDefinition)checkMenu.getMenuElements().get(3)).getOrder());
assertEquals("bold", ((MenuDefinition)checkMenu.getMenuElements().get(3)).getSkin());
assertNotNull(((MenuDefinition)checkMenu.getMenuElements().get(3)).getMenuElements());
assertTrue(((MenuDefinition)checkMenu.getMenuElements().get(3)).getMenuElements().isEmpty());
assertTrue(checkMenu.getMenuElements().get(4) instanceof MenuExcludeDefinition);
assertEquals("exclude-menu", ((MenuExcludeDefinition)checkMenu.getMenuElements().get(4)).getName());
assertTrue(checkMenu.getMenuElements().get(5) instanceof MenuIncludeDefinition);
assertEquals("include-menu", ((MenuIncludeDefinition)checkMenu.getMenuElements().get(5)).getName());
assertTrue(((MenuIncludeDefinition)checkMenu.getMenuElements().get(5)).isNest());
}
catch (FolderNotFoundException e)
{
assertTrue("Folder / NOT FOUND", false);
}
try
{
Page check = pageManager.getPage("/another-page.psml");
assertEquals("/another-page.psml", check.getPath());
assertEquals("another-page.psml", check.getName());
assertEquals("Another Page", check.getTitle());
assertEquals("jetspeed", check.getEffectiveDefaultDecorator(Fragment.LAYOUT));
assertEquals("gray-gradient", check.getEffectiveDefaultDecorator(Fragment.PORTLET));
assertNull(check.getDefaultDecorator(Fragment.LAYOUT));
assertNull(check.getDefaultDecorator(Fragment.PORTLET));
}
catch (PageNotFoundException e)
{
assertTrue("Page /default-page.psml NOT FOUND", false);
}
try
{
Page check = pageManager.getPage(deepPagePath);
assertEquals(deepPagePath, check.getPath());
assertNotNull(check.getParent());
}
catch (PageNotFoundException e)
{
assertTrue("Page " + deepPagePath + " NOT FOUND", false);
}
try
{
Folder check = pageManager.getFolder(deepFolderPath);
assertEquals(deepFolderPath, check.getPath());
assertNotNull(check.getParent());
}
catch (FolderNotFoundException e)
{
assertTrue("Folder " + deepFolderPath + " NOT FOUND", false);
}