}
}
public void testGroupsNode() throws Exception
{
GroupImpl group1 = new GroupImpl("platform");
GroupImpl group2 = new GroupImpl();
group2.setId("/platform/users");
GroupImpl group3 = new GroupImpl("my-group-name2");
group3.setParentId("/platform");
groupListener.preSave(group1, true);
Node node = (Node)session.getItem("/Groups/Path/Home/" + group1.getGroupName());
assertNotNull(node);
node = node.getNode("ApplicationData");
assertTrue(node.isNodeType("nt:folder"));
assertFalse(node.canAddMixin("mix:referenceable"));
assertFalse(node.canAddMixin("exo:privilegeable"));
assertTrue(((ExtendedNode)node).getACL().hasPermissions());
assertNotNull(((ExtendedNode)node).getACL().getPermissions("*:/platform/administrators"));
groupListener.preSave(group2, true);
node = (Node)session.getItem("/Groups/Path/Home" + group2.getId());
assertNotNull(node);
node = node.getNode("ApplicationData");
assertTrue(node.isNodeType("nt:folder"));
assertFalse(node.canAddMixin("mix:referenceable"));
assertFalse(node.canAddMixin("exo:privilegeable"));
assertTrue(((ExtendedNode)node).getACL().hasPermissions());
assertNotNull(((ExtendedNode)node).getACL().getPermissions("*:/platform/administrators"));
groupListener.preDelete(group2);
try
{
session.getItem("/Groups/Path/Home" + group2.getId());
fail("A PathNotFoundException is expected");
}
catch (PathNotFoundException e)
{
// ignore me
}
groupListener.preSave(group3, true);
node = (Node)session.getItem("/Groups/Path/Home" + group3.getParentId() + "/" + group3.getGroupName());
assertNotNull(node);
node = node.getNode("ApplicationData");
assertTrue(node.isNodeType("nt:folder"));
assertFalse(node.canAddMixin("mix:referenceable"));
assertFalse(node.canAddMixin("exo:privilegeable"));
assertTrue(((ExtendedNode)node).getACL().hasPermissions());
assertNotNull(((ExtendedNode)node).getACL().getPermissions("*:/platform/administrators"));
groupListener.preDelete(group3);
try
{
session.getItem("/Groups/Path/Home" + group3.getParentId() + "/" + group3.getGroupName());
fail("A PathNotFoundException is expected");
}
catch (PathNotFoundException e)
{
// ignore me