All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opencms.file.TestGroupOperations Maven / Gradle / Ivy

Go to download

OpenCms is an enterprise-ready, easy to use website content management system based on Java and XML technology. Offering a complete set of features, OpenCms helps content managers worldwide to create and maintain beautiful websites fast and efficiently.

There is a newer version: 18.0
Show newest version
/*
 * This library is part of OpenCms -
 * the Open Source Content Management System
 *
 * Copyright (c) Alkacon Software GmbH & Co. KG (http://www.alkacon.com)
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * For further information about Alkacon Software GmbH & Co. KG, please see the
 * company website: http://www.alkacon.com
 *
 * For further information about OpenCms, please see the
 * project website: http://www.opencms.org
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

package org.opencms.file;

import org.opencms.db.CmsDbEntryNotFoundException;
import org.opencms.main.OpenCms;
import org.opencms.test.OpenCmsTestCase;
import org.opencms.test.OpenCmsTestProperties;

import java.util.List;

import junit.extensions.TestSetup;
import junit.framework.Test;
import junit.framework.TestSuite;

/**
 * Unit tests for basic group operations without test import.

*/ public class TestGroupOperations extends OpenCmsTestCase { /** * Default JUnit constructor.

* * @param arg0 JUnit parameters */ public TestGroupOperations(String arg0) { super(arg0); } /** * Test suite for this test class.

* * @return the test suite */ public static Test suite() { OpenCmsTestProperties.initialize(org.opencms.test.AllTests.TEST_PROPERTIES_PATH); TestSuite suite = new TestSuite(); suite.setName(TestGroupOperations.class.getName()); suite.addTest(new TestGroupOperations("testGetUsersOfGroup")); suite.addTest(new TestGroupOperations("testParentGroups")); suite.addTest(new TestGroupOperations("testChildGroups")); suite.addTest(new TestGroupOperations("testDeleteGroup")); suite.addTest(new TestGroupOperations("testDeleteGroupWithChildren")); TestSetup wrapper = new TestSetup(suite) { @Override protected void setUp() { setupOpenCms(null, null, false); } @Override protected void tearDown() { removeOpenCms(); } }; return wrapper; } /** * Tests the "getChildren" method.

* * @throws Throwable if something goes wrong */ public void testChildGroups() throws Throwable { CmsObject cms = getCmsObject(); echo("Testing the child group mechanism"); CmsGroup g1 = cms.readGroup("g1"); CmsGroup g2 = cms.readGroup("g2"); CmsGroup g3 = cms.readGroup("g3"); CmsGroup g4 = cms.readGroup("g4"); CmsGroup g5 = cms.readGroup("g5"); List children = cms.getChildren(g1.getName(), false); assertEquals(2, children.size()); assertTrue(children.contains(g2)); assertTrue(children.contains(g3)); children = cms.getChildren(g1.getName(), true); assertEquals(4, children.size()); assertTrue(children.contains(g2)); assertTrue(children.contains(g3)); assertTrue(children.contains(g4)); assertTrue(children.contains(g5)); children = cms.getChildren(g2.getName(), false); assertEquals(2, children.size()); assertTrue(children.contains(g4)); assertTrue(children.contains(g5)); children = cms.getChildren(g2.getName(), true); assertEquals(2, children.size()); assertTrue(children.contains(g4)); assertTrue(children.contains(g5)); children = cms.getChildren(g3.getName(), false); assertTrue(children.isEmpty()); children = cms.getChildren(g3.getName(), true); assertTrue(children.isEmpty()); children = cms.getChildren(g4.getName(), false); assertTrue(children.isEmpty()); children = cms.getChildren(g4.getName(), true); assertTrue(children.isEmpty()); children = cms.getChildren(g5.getName(), false); assertTrue(children.isEmpty()); children = cms.getChildren(g5.getName(), true); assertTrue(children.isEmpty()); } /** * Tests group deletion.

* * @throws Throwable if something goes wrong */ public void testDeleteGroup() throws Throwable { CmsObject cms = getCmsObject(); echo("Testing group deletion"); // get all groups List groups = OpenCms.getOrgUnitManager().getGroups(cms, "", true); CmsGroup group = cms.createGroup("testDeleteGroup", "group for deletion", 0, null); assertTrue(cms.getUsersOfGroup(group.getName()).isEmpty()); assertEquals(groups.size() + 1, OpenCms.getOrgUnitManager().getGroups(cms, "", true).size()); assertTrue(OpenCms.getOrgUnitManager().getGroups(cms, "", true).contains(group)); CmsUser user = cms.readUser("Guest"); List userGroups = cms.getGroupsOfUser(user.getName(), true); cms.addUserToGroup(user.getName(), group.getName()); assertEquals(1, cms.getUsersOfGroup(group.getName()).size()); assertTrue(cms.getUsersOfGroup(group.getName()).contains(user)); assertEquals(userGroups.size() + 1, cms.getGroupsOfUser(user.getName(), true).size()); assertTrue(cms.getGroupsOfUser(user.getName(), true).contains(group)); cms.deleteGroup(group.getName()); try { cms.readGroup(group.getName()); fail("should not be able to read a deleted group"); } catch (CmsDbEntryNotFoundException e) { // ok, ignore } assertEquals(groups.size(), OpenCms.getOrgUnitManager().getGroups(cms, "", true).size()); assertFalse(OpenCms.getOrgUnitManager().getGroups(cms, "", true).contains(group)); assertEquals(userGroups.size(), cms.getGroupsOfUser(user.getName(), true).size()); assertFalse(cms.getGroupsOfUser(user.getName(), true).contains(group)); } /** * Tests group deletion with children groups.

* * @throws Throwable if something goes wrong */ public void testDeleteGroupWithChildren() throws Throwable { CmsObject cms = getCmsObject(); echo("Testing group deletion with children"); // get all groups List groups = OpenCms.getOrgUnitManager().getGroups(cms, "", true); CmsGroup groupA = cms.createGroup("testDeleteGroupA", "group for deletion", 0, null); CmsGroup groupB = cms.createGroup("testDeleteGroupB", "child group for deletion", 0, groupA.getName()); assertEquals(groups.size() + 2, OpenCms.getOrgUnitManager().getGroups(cms, "", true).size()); cms.deleteGroup(groupA.getName()); try { cms.readGroup(groupA.getName()); fail("should not be able to read a deleted group"); } catch (CmsDbEntryNotFoundException e) { // ok, ignore } cms.readGroup(groupB.getName()); assertEquals(groups.size() + 1, OpenCms.getOrgUnitManager().getGroups(cms, "", true).size()); assertFalse(OpenCms.getOrgUnitManager().getGroups(cms, "", true).contains(groupA)); assertTrue(OpenCms.getOrgUnitManager().getGroups(cms, "", true).contains(groupB)); } /** * Tests the "getUsersOfGroup" method.

* * @throws Throwable if something goes wrong */ public void testGetUsersOfGroup() throws Throwable { CmsObject cms = getCmsObject(); echo("Testing testGetUsersOfGroup"); List users = cms.getUsersOfGroup("Guests"); CmsUser exportUser = cms.readUser("Export"); CmsUser guestUser = cms.readUser("Guest"); assertTrue(users.contains(exportUser) || users.contains(guestUser)); } /** * Tests the "getParentGroup" method.

* * @throws Throwable if something goes wrong */ public void testParentGroups() throws Throwable { CmsObject cms = getCmsObject(); echo("Testing the parent group mechanism"); CmsGroup g1 = cms.createGroup("g1", "g1", 0, null); CmsGroup g2 = cms.createGroup("g2", "g2", 0, g1.getName()); CmsGroup g3 = cms.createGroup("g3", "g3", 0, g1.getName()); CmsGroup g4 = cms.createGroup("g4", "g4", 0, g2.getName()); CmsGroup g5 = cms.createGroup("g5", "g5", 0, g2.getName()); CmsUser u1 = cms.createUser("u1", "password", "u1", null); cms.addUserToGroup(u1.getName(), g1.getName()); List g1Users = cms.getUsersOfGroup(g1.getName()); assertEquals(1, g1Users.size()); assertTrue(g1Users.contains(u1)); List g2Users = cms.getUsersOfGroup(g2.getName()); assertTrue(g2Users.isEmpty()); List g3Users = cms.getUsersOfGroup(g3.getName()); assertTrue(g3Users.isEmpty()); List g4Users = cms.getUsersOfGroup(g4.getName()); assertTrue(g4Users.isEmpty()); List g5Users = cms.getUsersOfGroup(g5.getName()); assertTrue(g5Users.isEmpty()); List u1Groups = cms.getGroupsOfUser(u1.getName(), false); assertEquals(1, u1Groups.size()); assertTrue(u1Groups.contains(g1)); CmsUser u2 = cms.createUser("u2", "password", "u2", null); cms.addUserToGroup(u2.getName(), g2.getName()); g1Users = cms.getUsersOfGroup(g1.getName()); assertEquals(1, g1Users.size()); assertTrue(g1Users.contains(u1)); g2Users = cms.getUsersOfGroup(g2.getName()); assertEquals(1, g2Users.size()); assertTrue(g2Users.contains(u2)); g3Users = cms.getUsersOfGroup(g3.getName()); assertTrue(g3Users.isEmpty()); g4Users = cms.getUsersOfGroup(g4.getName()); assertTrue(g4Users.isEmpty()); g5Users = cms.getUsersOfGroup(g5.getName()); assertTrue(g5Users.isEmpty()); u1Groups = cms.getGroupsOfUser(u1.getName(), false); assertEquals(1, u1Groups.size()); assertTrue(u1Groups.contains(g1)); List u2Groups = cms.getGroupsOfUser(u2.getName(), false); assertEquals(2, u2Groups.size()); assertTrue(u2Groups.contains(g2)); assertTrue(u2Groups.contains(g1)); CmsUser u3 = cms.createUser("u3", "password", "u3", null); cms.addUserToGroup(u3.getName(), g3.getName()); g1Users = cms.getUsersOfGroup(g1.getName()); assertEquals(1, g1Users.size()); assertTrue(g1Users.contains(u1)); g2Users = cms.getUsersOfGroup(g2.getName()); assertEquals(1, g2Users.size()); assertTrue(g2Users.contains(u2)); g3Users = cms.getUsersOfGroup(g3.getName()); assertEquals(1, g3Users.size()); assertTrue(g3Users.contains(u3)); g4Users = cms.getUsersOfGroup(g4.getName()); assertTrue(g4Users.isEmpty()); g5Users = cms.getUsersOfGroup(g5.getName()); assertTrue(g5Users.isEmpty()); u1Groups = cms.getGroupsOfUser(u1.getName(), false); assertEquals(1, u1Groups.size()); assertTrue(u1Groups.contains(g1)); u2Groups = cms.getGroupsOfUser(u2.getName(), false); assertEquals(2, u2Groups.size()); assertTrue(u2Groups.contains(g2)); assertTrue(u2Groups.contains(g1)); List u3Groups = cms.getGroupsOfUser(u3.getName(), false); assertEquals(2, u3Groups.size()); assertTrue(u3Groups.contains(g3)); assertTrue(u3Groups.contains(g1)); CmsUser u4 = cms.createUser("u4", "password", "u4", null); cms.addUserToGroup(u4.getName(), g4.getName()); g1Users = cms.getUsersOfGroup(g1.getName()); assertEquals(1, g1Users.size()); assertTrue(g1Users.contains(u1)); g2Users = cms.getUsersOfGroup(g2.getName()); assertEquals(1, g2Users.size()); assertTrue(g2Users.contains(u2)); g3Users = cms.getUsersOfGroup(g3.getName()); assertEquals(1, g3Users.size()); assertTrue(g3Users.contains(u3)); g4Users = cms.getUsersOfGroup(g4.getName()); assertEquals(1, g4Users.size()); assertTrue(g4Users.contains(u4)); g5Users = cms.getUsersOfGroup(g5.getName()); assertTrue(g5Users.isEmpty()); u1Groups = cms.getGroupsOfUser(u1.getName(), false); assertEquals(1, u1Groups.size()); assertTrue(u1Groups.contains(g1)); u2Groups = cms.getGroupsOfUser(u2.getName(), false); assertEquals(2, u2Groups.size()); assertTrue(u2Groups.contains(g2)); assertTrue(u2Groups.contains(g1)); u3Groups = cms.getGroupsOfUser(u3.getName(), false); assertEquals(2, u3Groups.size()); assertTrue(u3Groups.contains(g3)); assertTrue(u3Groups.contains(g1)); List u4Groups = cms.getGroupsOfUser(u4.getName(), false); assertEquals(3, u4Groups.size()); assertTrue(u4Groups.contains(g4)); assertTrue(u4Groups.contains(g2)); assertTrue(u4Groups.contains(g1)); CmsUser u5 = cms.createUser("u5", "password", "u5", null); cms.addUserToGroup(u5.getName(), g5.getName()); g1Users = cms.getUsersOfGroup(g1.getName()); assertEquals(1, g1Users.size()); assertTrue(g1Users.contains(u1)); g2Users = cms.getUsersOfGroup(g2.getName()); assertEquals(1, g2Users.size()); assertTrue(g2Users.contains(u2)); g3Users = cms.getUsersOfGroup(g3.getName()); assertEquals(1, g3Users.size()); assertTrue(g3Users.contains(u3)); g4Users = cms.getUsersOfGroup(g4.getName()); assertEquals(1, g4Users.size()); assertTrue(g4Users.contains(u4)); g5Users = cms.getUsersOfGroup(g5.getName()); assertEquals(1, g5Users.size()); assertTrue(g5Users.contains(u5)); u1Groups = cms.getGroupsOfUser(u1.getName(), false); assertEquals(1, u1Groups.size()); assertTrue(u1Groups.contains(g1)); u2Groups = cms.getGroupsOfUser(u2.getName(), false); assertEquals(2, u2Groups.size()); assertTrue(u2Groups.contains(g2)); assertTrue(u2Groups.contains(g1)); u3Groups = cms.getGroupsOfUser(u3.getName(), false); assertEquals(2, u3Groups.size()); assertTrue(u3Groups.contains(g3)); assertTrue(u3Groups.contains(g1)); u4Groups = cms.getGroupsOfUser(u4.getName(), false); assertEquals(3, u4Groups.size()); assertTrue(u4Groups.contains(g4)); assertTrue(u4Groups.contains(g2)); assertTrue(u4Groups.contains(g1)); List u5Groups = cms.getGroupsOfUser(u5.getName(), false); assertEquals(3, u5Groups.size()); assertTrue(u5Groups.contains(g5)); assertTrue(u5Groups.contains(g2)); assertTrue(u5Groups.contains(g1)); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy