You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2003/06/25 16:55:10 UTC

cvs commit: cocoon-lenya/src/test/org/apache/lenya/cms/ac AccessControlTest.java FileRoleTest.java RoleManagerTest.java FileGroupTest.java LDAPUserTest.java UserManagerTest.java GroupManagerTest.java FileUserTest.java

andreas     2003/06/25 07:55:10

  Modified:    src/test/org/apache/lenya/cms/ac FileRoleTest.java
                        RoleManagerTest.java FileGroupTest.java
                        LDAPUserTest.java UserManagerTest.java
                        GroupManagerTest.java FileUserTest.java
  Added:       src/test/org/apache/lenya/cms/ac AccessControlTest.java
  Log:
  - coupling access control tests with AccessControlTest clas
  - reflecting changes to access control API
  
  Revision  Changes    Path
  1.2       +20 -47    cocoon-lenya/src/test/org/apache/lenya/cms/ac/FileRoleTest.java
  
  Index: FileRoleTest.java
  ===================================================================
  RCS file: /home/cvs/cocoon-lenya/src/test/org/apache/lenya/cms/ac/FileRoleTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FileRoleTest.java	3 Jun 2003 13:52:12 -0000	1.1
  +++ FileRoleTest.java	25 Jun 2003 14:55:10 -0000	1.2
  @@ -51,74 +51,47 @@
   
   import java.io.File;
   
  -import org.apache.lenya.cms.publication.Publication;
  -import org.apache.lenya.cms.publication.PublicationFactory;
  -
  -import junit.framework.TestCase;
  +import org.apache.lenya.cms.PublicationHelper;
   
   /**
    * @author egli
    * 
    * 
    */
  -public class FileRoleTest extends TestCase {
  +public class FileRoleTest extends AccessControlTest {
   
   	/**
   	 * Constructor for FileRoleTest.
  -	 * @param arg0
  +	 * @param arg0 The test to execute.
   	 */
   	public FileRoleTest(String arg0) {
   		super(arg0);
   	}
   
   	public static void main(String[] args) {
  +        PublicationHelper.extractPublicationArguments(args);
   		junit.textui.TestRunner.run(FileRoleTest.class);
   	}
   
  -	final public Publication getPublication() {
  -		String publicationId = "default";
  -		String servletContext = "/home/egli/build/jakarta-tomcat-4.1.21-LE-jdk14/webapps/lenya/";
  -		Publication pub = PublicationFactory.getPublication(publicationId, servletContext);
  -		return pub;		
  -	}
  -	
  -	final public void testFileRole() {
  +	final public void testFileRole() throws AccessControlException {
   		String name = "test";
  -		Publication pub = getPublication();
  -		FileRole role = new FileRole(pub, name);
  -		try {
  -			role.save();
  -		} catch (AccessControlException e) {
  -			e.printStackTrace();
  -		}
  +        File configDir = getConfigurationDirectory();
  +		FileRole role = new FileRole(configDir, name);
  +		role.save();
   		File path = null;
  -		try {
  -			path = RoleManager.instance(pub).getPath();
  -		} catch (AccessControlException e1) {
  -			e1.printStackTrace();
  -		}
  +		path = RoleManager.instance(configDir).getConfigurationDirectory();
   		File roleFile = new File(path, name + RoleManager.SUFFIX);
   		assertNotNull(roleFile);
   		assertTrue(roleFile.exists());	
   	}
   
  -	final public void testSave() {
  +	final public void testSave() throws AccessControlException {
  +        File configDir = getConfigurationDirectory();
   		String name = "test";
  -		String publicationId = "default";
  -		String servletContext = "/home/egli/build/jakarta-tomcat-4.1.21-LE-jdk14/webapps/lenya/";
  -		Publication pub = PublicationFactory.getPublication(publicationId, servletContext);
  -		FileRole role = new FileRole(pub, name);
  -		try {
  -			role.save();
  -		} catch (AccessControlException e) {
  -			e.printStackTrace();
  -		}
  +		FileRole role = new FileRole(configDir, name);
  +		role.save();
   		File path = null;
  -		try {
  -			path = RoleManager.instance(pub).getPath();
  -		} catch (AccessControlException e1) {
  -			e1.printStackTrace();
  -		}
  +		path = RoleManager.instance(configDir).getConfigurationDirectory();
   		File roleFile = new File(path, name + RoleManager.SUFFIX);
   		assertNotNull(roleFile);
   		assertTrue(roleFile.exists());
  @@ -126,8 +99,8 @@
   
   	final public void testGetName() {
   		String name = "test";
  -		Publication pub = getPublication();
  -		FileRole role = new FileRole(pub, name);
  +        File configDir = getConfigurationDirectory();
  +		FileRole role = new FileRole(configDir, name);
   		assertTrue(role.getName().equals(name));
   	}
   
  @@ -136,9 +109,9 @@
   	 */
   	final public void testEqualsObject() {
   		String name = "test";
  -		Publication pub = getPublication();
  -		FileRole role1 = new FileRole(pub, name);
  -		FileRole role2 = new FileRole(pub, name);
  +        File configDir = getConfigurationDirectory();
  +		FileRole role1 = new FileRole(configDir, name);
  +		FileRole role2 = new FileRole(configDir, name);
   		assertEquals(role1, role2);
   	}
   }
  
  
  
  1.3       +14 -36    cocoon-lenya/src/test/org/apache/lenya/cms/ac/RoleManagerTest.java
  
  Index: RoleManagerTest.java
  ===================================================================
  RCS file: /home/cvs/cocoon-lenya/src/test/org/apache/lenya/cms/ac/RoleManagerTest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RoleManagerTest.java	11 Jun 2003 12:02:39 -0000	1.2
  +++ RoleManagerTest.java	25 Jun 2003 14:55:10 -0000	1.3
  @@ -49,19 +49,17 @@
    
   package org.apache.lenya.cms.ac;
   
  +import java.io.File;
   import java.util.Iterator;
   
  -import org.apache.lenya.cms.publication.Publication;
  -import org.apache.lenya.cms.publication.PublicationFactory;
  -
  -import junit.framework.TestCase;
  +import org.apache.lenya.cms.PublicationHelper;
   
   /**
    * @author egli
    * 
    * 
    */
  -public class RoleManagerTest extends TestCase {
  +public class RoleManagerTest extends AccessControlTest {
   
   	/**
   	 * Constructor for RoleManagerTest.
  @@ -72,31 +70,15 @@
   	}
   
   	public static void main(String[] args) {
  +        PublicationHelper.extractPublicationArguments(args);
   		junit.textui.TestRunner.run(RoleManagerTest.class);
   	}
   	
  -	final public Publication getPublication() {
  -		String publicationId = "default";
  -		String servletContext = "/home/egli/build/jakarta-tomcat-4.1.21-LE-jdk14/webapps/lenya/";
  -		Publication pub = PublicationFactory.getPublication(publicationId, servletContext);
  -		return pub;
  -	}
  -
  -	final public void testInstance() {
  -		Publication pub = getPublication();
  -		RoleManager manager = null;
  -		try {
  -			manager = RoleManager.instance(pub);
  -		} catch (AccessControlException e) {
  -			e.printStackTrace();
  -		}
  +	final public void testInstance() throws AccessControlException {
  +		File configDir = getConfigurationDirectory();
  +		RoleManager manager = RoleManager.instance(configDir);
   		assertNotNull(manager);
  -		RoleManager anotherManager = null;
  -		try {
  -			anotherManager = RoleManager.instance(pub);
  -		} catch (AccessControlException e1) {
  -			e1.printStackTrace();
  -		}
  +		RoleManager anotherManager = RoleManager.instance(configDir);
   		assertNotNull(anotherManager);
   		assertEquals(manager, anotherManager);
   	}
  @@ -107,16 +89,12 @@
   	/*
   	 * Test for void add(Role)
   	 */
  -	final public void testAddRole() {
  -		Publication pub = getPublication();
  +	final public void testAddRole() throws AccessControlException {
  +        File configDir = getConfigurationDirectory();
   		String name = "test";
   		Role role = new Role(name);
   		RoleManager manager = null;
  -		try {
  -			manager = RoleManager.instance(pub);
  -		} catch (AccessControlException e) {
  -			e.printStackTrace();
  -		}
  +		manager = RoleManager.instance(configDir);
   		assertNotNull(manager);
   		manager.add(role);
   
  @@ -127,12 +105,12 @@
   	 * Test for void remove(Role)
   	 */
   	final public void testRemoveRole() {
  -		Publication pub = getPublication();
  +        File configDir = getConfigurationDirectory();
   		String name = "test2";
   		Role role = new Role(name);
   		RoleManager manager = null;
   		try {
  -			manager = RoleManager.instance(pub);
  +			manager = RoleManager.instance(configDir);
   		} catch (AccessControlException e) {
   			e.printStackTrace();
   		}
  
  
  
  1.2       +30 -45    cocoon-lenya/src/test/org/apache/lenya/cms/ac/FileGroupTest.java
  
  Index: FileGroupTest.java
  ===================================================================
  RCS file: /home/cvs/cocoon-lenya/src/test/org/apache/lenya/cms/ac/FileGroupTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FileGroupTest.java	3 Jun 2003 13:52:12 -0000	1.1
  +++ FileGroupTest.java	25 Jun 2003 14:55:10 -0000	1.2
  @@ -50,22 +50,20 @@
   package org.apache.lenya.cms.ac;
   
   import java.io.File;
  -import java.util.Iterator;
  +import java.io.IOException;
   
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
   import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
  -import org.apache.lenya.cms.publication.Publication;
  -import org.apache.lenya.cms.publication.PublicationFactory;
  -
  -import junit.framework.TestCase;
  +import org.apache.lenya.cms.PublicationHelper;
  +import org.xml.sax.SAXException;
   
   /**
    * @author egli
    * 
    * 
    */
  -public class FileGroupTest extends TestCase {
  +public class FileGroupTest extends AccessControlTest {
   
   	/**
   	 * Constructor for FileGroupTest.
  @@ -76,57 +74,43 @@
   	}
   
   	public static void main(String[] args) {
  +        PublicationHelper.extractPublicationArguments(args);
   		junit.textui.TestRunner.run(FileGroupTest.class);
   	}
   
  -	final public Publication getPublication() {
  -		String publicationId = "default";
  -		String servletContext = "/home/egli/build/jakarta-tomcat-4.1.21-LE-jdk14/webapps/lenya/";
  -		Publication pub = PublicationFactory.getPublication(publicationId, servletContext);
  -		return pub;
  -	}
  -	
  -	final public void testFileGroup() {
  +	final public void testFileGroup() throws AccessControlException, ConfigurationException, SAXException, IOException {
   		String groupName = "testGroup";
   		String roleName = "testRole";
  -		Publication pub = getPublication();
  -		FileGroup group = new FileGroup(pub, groupName);
  -		FileRole role = new FileRole(pub, roleName);
  -		group.addRole(role);
  -		try {
  -			role.save();
  -		} catch (AccessControlException e2) {
  -			e2.printStackTrace();
  -		}
  -		try {
  -			group.save();
  -		} catch (AccessControlException e) {
  -			e.printStackTrace();
  -		}
  -		File path = null;
  -		try {
  -			path = RoleManager.instance(pub).getPath();
  -		} catch (AccessControlException e1) {
  -			e1.printStackTrace();
  -		}
  +        File configurationDirectory = getConfigurationDirectory();
  +        
  +        System.out.println("Configuration directory: " + configurationDirectory);
  +        
  +		FileGroup group = new FileGroup(configurationDirectory, groupName);
  +		FileRole role = new FileRole(configurationDirectory, roleName);
  +//		group.addRole(role);
  +
  +        role.save();
  +        group.save();
  +        
  +        File path = null;
  +        path = RoleManager.instance(configurationDirectory).getConfigurationDirectory();
  +        
   		File groupFile = new File(path, groupName + GroupManager.SUFFIX);
   		assertNotNull(groupFile);
   		assertTrue(groupFile.exists());
   		Configuration config = null;
  -		try {
  -			config = new DefaultConfigurationBuilder().buildFromFile(groupFile);
  -		} catch (Exception e3) {
  -			e3.printStackTrace();
  -		}
  +        config = new DefaultConfigurationBuilder().buildFromFile(groupFile);
   		assertNotNull(config);
  +        
   		FileGroup newGroup = null;
  -		try {
  -			newGroup = new FileGroup(pub, config);
  -		} catch (ConfigurationException e4) {
  -			e4.printStackTrace();
  -		}
  +    	newGroup = new FileGroup();
  +        newGroup.setConfigurationDirectory(configurationDirectory);
  +        newGroup.configure(config);
   		assertNotNull(newGroup);
  +        
   		assertTrue(newGroup.getName().equals(groupName));
  +        
  +        /*
   		int roleCount = 0;
   		for (Iterator roles = newGroup.getRoles(); roles.hasNext();) {
   			Role newRole = (Role) roles.next();
  @@ -134,6 +118,7 @@
   			assertTrue(newRole.getName().equals(roleName));	
   		}
   		assertEquals(1, roleCount);
  +        */
   	}
   
   }
  
  
  
  1.4       +29 -22    cocoon-lenya/src/test/org/apache/lenya/cms/ac/LDAPUserTest.java
  
  Index: LDAPUserTest.java
  ===================================================================
  RCS file: /home/cvs/cocoon-lenya/src/test/org/apache/lenya/cms/ac/LDAPUserTest.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- LDAPUserTest.java	25 Jun 2003 09:15:45 -0000	1.3
  +++ LDAPUserTest.java	25 Jun 2003 14:55:10 -0000	1.4
  @@ -49,18 +49,20 @@
   
   package org.apache.lenya.cms.ac;
   
  +import java.io.File;
  +
   import org.apache.avalon.framework.configuration.ConfigurationException;
  +import org.apache.lenya.cms.PublicationHelper;
   import org.apache.lenya.cms.publication.Publication;
   import org.apache.lenya.cms.publication.PublicationFactory;
   
  -import junit.framework.TestCase;
   
   /**
    * @author egli
    * 
    * 
    */
  -public class LDAPUserTest extends TestCase {
  +public class LDAPUserTest extends AccessControlTest {
   
       /**
        * Constructor for LDAPUserTest.
  @@ -75,6 +77,7 @@
   	 * @param args an array of <code>String</code>
   	 */
       public static void main(String[] args) {
  +        PublicationHelper.extractPublicationArguments(args);
           junit.textui.TestRunner.run(LDAPUserTest.class);
       }
   
  @@ -113,44 +116,46 @@
   	 * @param email of the user
   	 * @param ldapId ldap id of the user
   	 * @throws AccessControlException if the creating or the saving fails
  +     * @throws ConfigurationException if the creating or the saving fails
   	 */
       final public void createAndSaveUser(
           String userName,
           String email,
           String ldapId)
  -        throws AccessControlException {
  +        throws AccessControlException, ConfigurationException {
   
  -        Publication publication = getPublication();
           String editorGroupName = "editorGroup";
           String adminGroupName = "adminGroup";
           String editorRoleName = "editorRole";
           String adminRoleName = "adminRole";
   
  -        FileRole editorRole = new FileRole(publication, editorRoleName);
  -        FileRole adminRole = new FileRole(publication, adminRoleName);
  +        File configDir = getConfigurationDirectory();
  +        FileRole editorRole = new FileRole();
  +        editorRole.setName(editorRoleName);
  +        editorRole.setConfigurationDirectory(configDir);
  +        
  +        FileRole adminRole = new FileRole();
  +        adminRole.setName(adminRoleName);
  +        adminRole.setConfigurationDirectory(configDir);
   
  -        FileGroup editorGroup = new FileGroup(publication, editorGroupName);
  -        FileGroup adminGroup = new FileGroup(publication, adminGroupName);
  +        FileGroup editorGroup = new FileGroup(configDir, editorGroupName);
  +        FileGroup adminGroup = new FileGroup(configDir, adminGroupName);
   
  -        LDAPUser user = null;
  -        try {
  -            user = new LDAPUser(publication, userName, email, ldapId);
  -        } catch (ConfigurationException e) {
  -			throw new AccessControlException("Could not create user", e);
  -        }
  +        LDAPUser user = new LDAPUser(configDir, userName, email, ldapId);
   
           editorRole.save();
           adminRole.save();
   
  +/*
           editorGroup.addRole(editorRole);
           user.addGroup(editorGroup);
           adminGroup.addRole(editorRole);
           adminGroup.addRole(adminRole);
  -
  +*/
           editorGroup.save();
           adminGroup.save();
   
  -        user.addGroup(adminGroup);
  +        adminGroup.add(user);
           user.save();
   
       }
  @@ -164,8 +169,7 @@
   	 */
       final public LDAPUser loadUser(String userName)
           throws AccessControlException {
  -        Publication publication = getPublication();
  -        UserManager manager = UserManager.instance(publication);
  +        UserManager manager = UserManager.instance(getConfigurationDirectory());
           return (LDAPUser) manager.getUser(userName);
       }
   
  @@ -200,8 +204,9 @@
   	 * Test the ldap id getter
   	 * 
   	 * @throws AccessControlException if the test fails
  +     * @throws ConfigurationException if the creating or the saving fails
   	 */
  -    final public void testGetLdapId() throws AccessControlException {
  +    final public void testGetLdapId() throws ConfigurationException, AccessControlException {
           String userName = "felix";
           String ldapId = "m400032";
           createAndSaveUser(userName, "felix@wyona.com", ldapId);
  @@ -215,8 +220,9 @@
   	 * Test settinf the ldap id
   	 * 
   	 * @throws AccessControlException if the test fails
  +     * @throws ConfigurationException if the creating or the saving fails
   	 */
  -    final public void testSetLdapId() throws AccessControlException {
  +    final public void testSetLdapId() throws ConfigurationException, AccessControlException {
           String userName = "felix";
           String newLdapId = "foo";
           createAndSaveUser(userName, "felix@wyona.com", "bar");
  @@ -235,8 +241,9 @@
   	 * Test save
   	 * 
   	 * @throws AccessControlException if the test fails
  +     * @throws ConfigurationException if the creating or the saving fails
   	 */
  -    final public void testSave() throws AccessControlException {
  +    final public void testSave() throws ConfigurationException, AccessControlException {
           String userName = "felix";
           createAndSaveUser(userName, "felix@wyona.com", "m400032");
           User user = null;
  
  
  
  1.6       +33 -65    cocoon-lenya/src/test/org/apache/lenya/cms/ac/UserManagerTest.java
  
  Index: UserManagerTest.java
  ===================================================================
  RCS file: /home/cvs/cocoon-lenya/src/test/org/apache/lenya/cms/ac/UserManagerTest.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- UserManagerTest.java	11 Jun 2003 14:59:11 -0000	1.5
  +++ UserManagerTest.java	25 Jun 2003 14:55:10 -0000	1.6
  @@ -49,17 +49,18 @@
   
   package org.apache.lenya.cms.ac;
   
  +import java.io.File;
  +
  +import org.apache.lenya.cms.PublicationHelper;
   import org.apache.lenya.cms.publication.Publication;
   import org.apache.lenya.cms.publication.PublicationFactory;
   
  -import junit.framework.TestCase;
  -
   /**
    * @author egli
    * 
    * 
    */
  -public class UserManagerTest extends TestCase {
  +public class UserManagerTest extends AccessControlTest {
   
   	/**
   	 * Constructor for UserManagerTest.
  @@ -70,6 +71,7 @@
   	}
   
   	public static void main(String[] args) {
  +        PublicationHelper.extractPublicationArguments(args);
   		junit.textui.TestRunner.run(UserManagerTest.class);
   	}
   
  @@ -87,83 +89,52 @@
   		super.tearDown();
   	}
   
  -	final public Publication getPublication() {
  -		String publicationId = "default";
  -		String servletContextPath =
  -			"/home/egli/build/jakarta-tomcat-4.1.21-LE-jdk14/webapps/lenya/";
  -		return PublicationFactory.getPublication(
  -			publicationId,
  -			servletContextPath);
  -	}
  +	final public void testInstance() throws AccessControlException {
   
  -	final public void testInstance() {
  -
  -		Publication publication = getPublication();
  -		UserManager manager = null;
  -		try {
  -			manager = (UserManager) UserManager.instance(publication);
  -		} catch (AccessControlException e) {
  -		}
  +        File configDir = getConfigurationDirectory();
  +		UserManager manager = UserManager.instance(configDir);
   		assertNotNull(manager);
   	}
   
  -	final public void testLoadConfig() {
  -		Publication publication = getPublication();
  +	final public void testLoadConfig() throws AccessControlException {
  +        File configDir = getConfigurationDirectory();
  +        
   		String userName = "alice";
   		String editorGroupName = "editorGroup";
   		String adminGroupName = "adminGroup";
   		String editorRoleName = "editorRole";
   		String adminRoleName = "adminRole";
   
  -		FileRole editorRole = new FileRole(publication, editorRoleName);
  -		FileRole adminRole = new FileRole(publication, adminRoleName);
  +		FileRole editorRole = new FileRole(configDir, editorRoleName);
  +		FileRole adminRole = new FileRole(configDir, adminRoleName);
   
   		User user =
   			new FileUser(
  -				publication,
  +                configDir,
   				userName,
   				"Alice in Wonderland",
   				"alice@test.com",
   				"secret");
   
  -		try {
  -			editorRole.save();
  -			adminRole.save();
  -		} catch (AccessControlException e5) {
  -			e5.printStackTrace();
  -		}
  -		FileGroup editorGroup = new FileGroup(publication, editorGroupName);
  -		editorGroup.addRole(editorRole);
  -		user.addGroup(editorGroup);
  -		FileGroup adminGroup = new FileGroup(publication, adminGroupName);
  -		adminGroup.addRole(editorRole);
  -		adminGroup.addRole(adminRole);
  -		try {
  -			editorGroup.save();
  -			adminGroup.save();
  -		} catch (AccessControlException e2) {
  -			e2.printStackTrace();
  -		}
  -		user.addGroup(adminGroup);
  -		try {
  -			user.save();
  -		} catch (AccessControlException e3) {
  -			e3.printStackTrace();
  -		}
  +		editorRole.save();
  +		adminRole.save();
  +		FileGroup editorGroup = new FileGroup(configDir, editorGroupName);
  +//		editorGroup.addRole(editorRole);
  +        editorGroup.add(user);
  +		FileGroup adminGroup = new FileGroup(configDir, adminGroupName);
  +//		adminGroup.addRole(editorRole);
  +//		adminGroup.addRole(adminRole);
  +		editorGroup.save();
  +		adminGroup.save();
  +        adminGroup.add(user);
  +		user.save();
   
   		UserManager userManager = null;
   		GroupManager groupManager = null;
  -		try {
  -			userManager = UserManager.instance(publication);
  -		} catch (AccessControlException e) {
  -		}
  +		userManager = UserManager.instance(configDir);
   		assertNotNull(userManager);
   
  -		try {
  -			groupManager = GroupManager.instance(publication);
  -		} catch (AccessControlException e4) {
  -			e4.printStackTrace();
  -		}
  +		groupManager = GroupManager.instance(configDir);
   		assertNotNull(groupManager);
   
   		Group fetchedGroup = groupManager.getGroup(editorGroupName);
  @@ -173,21 +144,18 @@
   		assertTrue(adminGroup.equals(fetchedGroup));
   	}
   
  -	final public void testGetUser() {
  -		Publication publication = getPublication();
  +	final public void testGetUser() throws AccessControlException {
  +        File configDir = getConfigurationDirectory();
   		UserManager manager = null;
   		String userName = "test-user";
   		FileUser user =
   			new FileUser(
  -				publication,
  +                configDir,
   				userName,
   				"Alice in Wonderland",
   				"alice@wonderland.com",
   				"secret");
  -		try {
  -			manager = (UserManager) UserManager.instance(publication);
  -		} catch (AccessControlException e) {
  -		}
  +		manager = (UserManager) UserManager.instance(configDir);
   		assertNotNull(manager);
   		manager.add(user);
   
  
  
  
  1.3       +10 -21    cocoon-lenya/src/test/org/apache/lenya/cms/ac/GroupManagerTest.java
  
  Index: GroupManagerTest.java
  ===================================================================
  RCS file: /home/cvs/cocoon-lenya/src/test/org/apache/lenya/cms/ac/GroupManagerTest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- GroupManagerTest.java	3 Jun 2003 16:41:04 -0000	1.2
  +++ GroupManagerTest.java	25 Jun 2003 14:55:10 -0000	1.3
  @@ -49,6 +49,9 @@
    
   package org.apache.lenya.cms.ac;
   
  +import java.io.File;
  +
  +import org.apache.lenya.cms.PublicationHelper;
   import org.apache.lenya.cms.publication.Publication;
   import org.apache.lenya.cms.publication.PublicationFactory;
   
  @@ -59,7 +62,7 @@
    * 
    * 
    */
  -public class GroupManagerTest extends TestCase {
  +public class GroupManagerTest extends AccessControlTest {
   
   	/**
   	 * Constructor for GroupManagerTest.
  @@ -70,31 +73,17 @@
   	}
   
   	public static void main(String[] args) {
  +        PublicationHelper.extractPublicationArguments(args);
   		junit.textui.TestRunner.run(GroupManagerTest.class);
   	}
   
  -	public final Publication getPublication() {
  -		String publicationId = "default";
  -		String servletContext = "/home/egli/build/jakarta-tomcat-4.1.21-LE-jdk14/webapps/lenya/";
  -		Publication pub = PublicationFactory.getPublication(publicationId, servletContext);
  -		return pub;		
  -	}
  -	
  -	public final void testInstance() {
  -		Publication pub = getPublication();
  +	public final void testInstance() throws AccessControlException {
   		GroupManager manager = null;
  -		try {
  -			manager = GroupManager.instance(pub);
  -		} catch (AccessControlException e) {
  -			e.printStackTrace();
  -		}
  +        File configDir = getConfigurationDirectory();
  +		manager = GroupManager.instance(configDir);
   		assertNotNull(manager);
   		GroupManager anotherManager = null;
  -		try {
  -			anotherManager = GroupManager.instance(pub);
  -		} catch (AccessControlException e1) {
  -			e1.printStackTrace();
  -		}
  +		anotherManager = GroupManager.instance(configDir);
   		assertNotNull(anotherManager);
   		assertEquals(manager, anotherManager);
   	}
  
  
  
  1.6       +47 -84    cocoon-lenya/src/test/org/apache/lenya/cms/ac/FileUserTest.java
  
  Index: FileUserTest.java
  ===================================================================
  RCS file: /home/cvs/cocoon-lenya/src/test/org/apache/lenya/cms/ac/FileUserTest.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FileUserTest.java	12 Jun 2003 15:44:18 -0000	1.5
  +++ FileUserTest.java	25 Jun 2003 14:55:10 -0000	1.6
  @@ -51,20 +51,16 @@
   
   import java.io.File;
   import java.util.HashMap;
  -import java.util.Iterator;
   import java.util.Map;
   
  -import org.apache.lenya.cms.publication.Publication;
  -import org.apache.lenya.cms.publication.PublicationFactory;
  -
  -import junit.framework.TestCase;
  +import org.apache.lenya.cms.PublicationHelper;
   
   /**
    * @author egli
    * 
    * 
    */
  -public class FileUserTest extends TestCase {
  +public class FileUserTest extends AccessControlTest {
   
   	private HashMap roles = new HashMap();
   	private HashMap groups = new HashMap();
  @@ -77,6 +73,7 @@
   	}
   
   	public static void main(String[] args) {
  +        PublicationHelper.extractPublicationArguments(args);
   		junit.textui.TestRunner.run(FileUserTest.class);
   	}
   
  @@ -94,15 +91,6 @@
   		super.tearDown();
   	}
   
  -	final public Publication getPublication() {
  -		String publicationId = "default";
  -		String servletContextPath =
  -			"/home/egli/build/jakarta-tomcat-4.1.21-LE-jdk14/webapps/lenya/";
  -		return PublicationFactory.getPublication(
  -			publicationId,
  -			servletContextPath);
  -	}
  -
   	final public Map getRoles() {
   		return roles;
   	}
  @@ -115,75 +103,65 @@
   		String userName,
   		String fullName,
   		String email,
  -		String password) {
  +		String password) throws AccessControlException {
   
  -		Publication publication = getPublication();
  +        File configDir = getConfigurationDirectory();
  +        
   		String editorGroupName = "editorGroup";
   		String adminGroupName = "adminGroup";
   		String editorRoleName = "editorRole";
   		String adminRoleName = "adminRole";
  +        
  +        this.roles.clear();
   
  -		FileRole editorRole = new FileRole(publication, editorRoleName);
  -		FileRole adminRole = new FileRole(publication, adminRoleName);
  +		FileRole editorRole = new FileRole(configDir, editorRoleName);
  +		FileRole adminRole = new FileRole(configDir, adminRoleName);
   		this.roles.put(editorRoleName, editorRole);
   		this.roles.put(adminRoleName, adminRole);
   
  -		FileGroup editorGroup = new FileGroup(publication, editorGroupName);
  -		FileGroup adminGroup = new FileGroup(publication, adminGroupName);
  +		FileGroup editorGroup = new FileGroup(configDir, editorGroupName);
  +		FileGroup adminGroup = new FileGroup(configDir, adminGroupName);
   		this.groups.put(editorGroupName, editorGroup);
   		this.groups.put(adminGroupName, adminGroup);
   
   		FileUser user =
  -			new FileUser(publication, userName, fullName, email, password);
  -
  -		try {
  -			editorRole.save();
  -			adminRole.save();
  -		} catch (AccessControlException e5) {
  -			e5.printStackTrace();
  -		}
  -		editorGroup.addRole(editorRole);
  -		user.addGroup(editorGroup);
  -		adminGroup.addRole(editorRole);
  -		adminGroup.addRole(adminRole);
  -		try {
  -			editorGroup.save();
  -			adminGroup.save();
  -		} catch (AccessControlException e2) {
  -			e2.printStackTrace();
  -		}
  -		user.addGroup(adminGroup);
  -		try {
  -			user.save();
  -		} catch (AccessControlException e3) {
  -			e3.printStackTrace();
  -		}
  +			new FileUser(configDir, userName, fullName, email, password);
  +            
  +        editorGroup.add(user);
  +        adminGroup.add(user);
  +
  +		editorRole.save();
  +		adminRole.save();
  +//		editorGroup.addRole(editorRole);
  +//		adminGroup.addRole(editorRole);
  +//		adminGroup.addRole(adminRole);
  +		editorGroup.save();
  +		adminGroup.save();
  +		user.save();
   		return user;
   	}
   
   	final public FileUser loadUser(String userName)
   		throws AccessControlException {
  -		Publication publication = getPublication();
  -		UserManager manager = UserManager.instance(publication);
  +        File configDir = getConfigurationDirectory();
  +		UserManager manager = UserManager.instance(configDir);
   		return (FileUser) manager.getUser(userName);
   	}
   
  -	final public void testSave() {
  -		Publication publication = getPublication();
  +	final public void testSave() throws AccessControlException {
   		String userName = "alice";
   		createAndSaveUser(
   			userName,
   			"Alice Wonderland",
   			"alice@wonderland.org",
   			"secret");
  +        File configDir = getConfigurationDirectory();
   		File xmlFile =
  -			new File(
  -				publication.getDirectory(),
  -				ItemManager.PATH + File.separator + userName + ".iml");
  +			new File(configDir, userName + ".iml");
   		assertTrue(xmlFile.exists());
   	}
   
  -	final public void testGetEmail() {
  +	final public void testGetEmail() throws AccessControlException {
   		String userName = "alice";
   		String email = "alice@wonderland.org";
   		FileUser user =
  @@ -197,7 +175,7 @@
   		assertTrue(user.getEmail().equals(email));
   	}
   
  -	final public void testGetFullName() {
  +	final public void testGetFullName() throws AccessControlException {
   		String userName = "alice";
   		String fullName = "Alice Wonderland";
   		FileUser user =
  @@ -207,15 +185,11 @@
   				"alice@wonderland.org",
   				"secret");
   		assertTrue(user.getFullName().equals(fullName));
  -		try {
  -			user = loadUser(userName);
  -		} catch (AccessControlException e) {
  -			e.printStackTrace();
  -		}
  +        user = loadUser(userName);
   		assertTrue(user.getFullName().equals(fullName));
   	}
   
  -	final public void testGetGroups() {
  +	final public void testGetGroups() throws AccessControlException {
   		FileUser user =
   			createAndSaveUser(
   				"alice",
  @@ -223,15 +197,16 @@
   				"alice@wonderland.org",
   				"secret");
   		int groupCount = 0;
  -		for (Iterator groups = user.getGroups(); groups.hasNext();) {
  -			Group group = (Group) groups.next();
  +        Group groups[] = user.getGroups();
  +        
  +		for (int i = 0; i < groups.length; i++) {
   			groupCount += 1;
  -			assertTrue(getGroups().containsKey(group.getName()));
  +			assertTrue(getGroups().containsKey(groups[i].getName()));
   		}
   		assertEquals(groupCount, getGroups().size());
   	}
   
  -	final public void testGetId() {
  +	final public void testGetId() throws AccessControlException {
   		String id = "alice";
   		FileUser user =
   			createAndSaveUser(
  @@ -242,7 +217,7 @@
   		assertTrue(user.getId().equals(id));
   	}
   
  -	final public void testDelete() {
  +	final public void testDelete() throws AccessControlException {
   		String id = "albert";
   		FileUser user =
   			createAndSaveUser(
  @@ -250,25 +225,17 @@
   				"Albert Einstein",
   				"albert@physics.org",
   				"secret");
  -		Publication publication = getPublication();
  +        File configDir = getConfigurationDirectory();
   		UserManager manager = null;
  -		try {
  -			manager = UserManager.instance(publication);
  -		} catch (AccessControlException e1) {
  -			e1.printStackTrace();
  -		}
  +        manager = UserManager.instance(configDir);
   		assertNotNull(manager);
   
   		assertNotNull(manager.getUser(id));
  -		try {
  -			user.delete();
  -		} catch (AccessControlException e) {
  -			e.printStackTrace();
  -		}
  +        user.delete();
   		assertNull(manager.getUser(id));
   	}
   
  -	final public void testAuthenticate() {
  +	final public void testAuthenticate() throws AccessControlException {
   		String password = "daisy";
   		FileUser user =
   			createAndSaveUser(
  @@ -278,13 +245,9 @@
   				password);
   		assertTrue(user.authenticate(password));
   
  -		Publication publication = getPublication();
  +        File configDir = getConfigurationDirectory();
   		UserManager manager = null;
  -		try {
  -			manager = UserManager.instance(publication);
  -		} catch (AccessControlException e1) {
  -			e1.printStackTrace();
  -		}
  +        manager = UserManager.instance(configDir);
   		assertNotNull(manager);
   
   		User lenya = manager.getUser("lenya");
  
  
  
  1.1                  cocoon-lenya/src/test/org/apache/lenya/cms/ac/AccessControlTest.java
  
  Index: AccessControlTest.java
  ===================================================================
  /*
   * $Id
   * <License>
   * The Apache Software License
   *
   * Copyright (c) 2002 lenya. All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without modification,
   * are permitted provided that the following conditions are met:
   *
   * 1. Redistributions of source code must retain the above copyright notice, this
   *    list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright notice, this
   *    list of conditions and the following disclaimer in the documentation and/or
   *    other materials provided with the distribution.
   *
   * 3. All advertising materials mentioning features or use of this software must
   *    display the following acknowledgment: "This product includes software developed
   *    by lenya (http://www.lenya.org)"
   *
   * 4. The name "lenya" must not be used to endorse or promote products derived from
   *    this software without prior written permission. For written permission, please
   *    contact contact@lenya.org
   *
   * 5. Products derived from this software may not be called "lenya" nor may "lenya"
   *    appear in their names without prior written permission of lenya.
   *
   * 6. Redistributions of any form whatsoever must retain the following acknowledgment:
   *    "This product includes software developed by lenya (http://www.lenya.org)"
   *
   * THIS SOFTWARE IS PROVIDED BY lenya "AS IS" WITHOUT ANY WARRANTY EXPRESS OR IMPLIED,
   * INCLUDING THE WARRANTY OF NON-INFRINGEMENT AND THE IMPLIED WARRANTIES OF MERCHANTI-
   * BILITY AND FITNESS FOR A PARTICULAR PURPOSE. lenya WILL NOT BE LIABLE FOR ANY DAMAGES
   * SUFFERED BY YOU AS A RESULT OF USING THIS SOFTWARE. IN NO EVENT WILL lenya BE LIABLE
   * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR LOST PROFITS EVEN IF lenya HAS
   * BEEN ADVISED OF THE POSSIBILITY OF THEIR OCCURRENCE. lenya WILL NOT BE LIABLE FOR ANY
   * THIRD PARTY CLAIMS AGAINST YOU.
   *
   * Lenya includes software developed by the Apache Software Foundation, W3C,
   * DOM4J Project, BitfluxEditor and Xopus.
   * </License>
   */
  package org.apache.lenya.cms.ac;
  
  import java.io.File;
  
  import org.apache.lenya.cms.PublicationHelper;
  import org.apache.lenya.cms.ac2.AccessController;
  import org.apache.lenya.cms.ac2.PolicyTest;
  import org.apache.lenya.cms.ac2.file.FileAccessController;
  import org.apache.lenya.cms.publication.Publication;
  
  import junit.framework.Test;
  import junit.framework.TestCase;
  import junit.framework.TestSuite;
  import junit.textui.TestRunner;
  
  /**
   * @author andreas
   *
   * To change the template for this generated type comment go to
   * Window>Preferences>Java>Code Generation>Code and Comments
   */
  public class AccessControlTest extends TestCase {
      
      /**
       * Constructor.
       * @param test The test to execute.
       */
      public AccessControlTest(String test) {
          super(test);
      }
  
      /**
       * The main method.
       * @param args The command-line arguments.
       */
      public static void main(String[] args) {
          PublicationHelper.extractPublicationArguments(args);
          TestRunner.run(getSuite());
      }
      
      protected static final Class classes[] = {
          FileGroupTest.class,
          FileRoleTest.class,
          FileUserTest.class,
  //        LDAPUserTest.class,
          GroupManagerTest.class,
          RoleManagerTest.class,
          UserManagerTest.class,
          PolicyTest.class
      };
      
      /**
       * Creates a test suite.
       * @return a test suite.
       */
      public static Test getSuite() {
          TestSuite suite = new TestSuite();
          for (int i = 0; i < classes.length; i++) {
              suite.addTestSuite(classes[i]);
          }
          return suite;
      }
  
      /**
       * Returns the configuration directory.
       * @return A file object.
       */
      public static final File getConfigurationDirectory() {
          Publication publication = PublicationHelper.getPublication();
          return new File(publication.getDirectory(), ItemManager.PATH);
      }
      
      /**
       * Returns the access controller.
       * @return An access controller object.
       */
      public static final AccessController getAccessController() {
          Publication publication = PublicationHelper.getPublication();
          File configDir = new File(publication.getDirectory(), "config/ac");
          return new FileAccessController(configDir);
      }
      
      /** @see junit.framework.TestCase#setUp() */
      protected void setUp() throws Exception {
          if (PublicationHelper.getPublication() == null) {
              String args[] = {
                  "D:\\Development\\build\\tomcat-4.1.24\\webapps\\lenya",
                  "test"
              };
              PublicationHelper.extractPublicationArguments(args);
          }
      }
      
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: lenya-cvs-unsubscribe@cocoon.apache.org
For additional commands, e-mail: lenya-cvs-help@cocoon.apache.org