1 /* 2 * Copyright (c) 2003 3 * Information Desire GmbH 4 * All rights reserved. 5 */ 6 package com.infodesire.infobit; 7 8 import junit.framework.TestCase; 9 import junit.framework.TestSuite; 10 11 import com.infodesire.infobit.data.Acl; 12 import com.infodesire.infobit.data.Capability; 13 14 /*** 15 * test for creation and modification of ACLs and capabilities 16 * 17 * @author konstantin 18 * @created August 8, 2003 19 * @version $Revision: 1.7 $ 20 */ 21 public class AclTest extends InfobitTestBase { 22 23 /*** 24 * constructor for test suite. 25 * 26 * @param name test suite name 27 */ 28 public AclTest(String name) { 29 super(name); 30 } 31 32 33 /*** 34 * test creation and manipulation of acl. 35 * 36 * @exception Exception Description of Exception 37 */ 38 public void testAclCreation() throws Exception { 39 InfobitPool pool = _configuration.getPool("superuser_pool"); 40 AclManager manager = pool.getAclManager(); 41 42 Acl acl = manager.createAcl("blabla"); 43 // flish pool before artifically creating exception 44 pool.flush(); 45 assertEquals(acl.getName(), "blabla"); 46 Acl acl2 = manager.getAcl("blabla"); 47 assertEquals(acl, acl2); 48 assertEquals(acl.hashCode(), acl2.hashCode()); 49 assertEquals(1, manager.listAcl().size()); 50 51 boolean bombed = false; 52 try { 53 manager.createAcl("blabla"); 54 } catch (InfobitException ie) { 55 bombed = true; 56 } 57 assertTrue("allowed creation of duplicate acl", bombed); 58 59 } 60 61 62 /*** 63 * A unit test for JUnit 64 * 65 * @exception Exception Description of Exception 66 */ 67 public void testAclRemoval() throws Exception { 68 InfobitPool pool = _configuration.getPool("superuser_pool"); 69 AclManager manager = pool.getAclManager(); 70 Acl acl = manager.createAcl("blabla"); 71 manager.removeAcl(acl); 72 assertNull(manager.getAcl("blabla")); 73 74 assertTrue(manager.listAcl().isEmpty()); 75 } 76 77 78 /*** 79 * we test that it's impossible to modify acl without proper security role 80 * 81 * @exception Exception junit likes to throw exceptions... 82 */ 83 public void testAclSecurity() throws Exception { 84 boolean bombed = false; 85 InfobitPool pool = _configuration.getPool("pool_one"); 86 InfobitPool supool = _configuration.getPool("superuser_pool"); 87 supool.getAclManager().createAcl("foobar"); 88 pool.flush(); 89 try { 90 pool.getAclManager().createAcl("foobar"); 91 } catch (InfobitSecurityException ex) { 92 bombed = true; 93 } 94 95 assertTrue("Allowed ACL creaton without proper permissions", bombed); 96 bombed = false; 97 98 Acl foobar = pool.getAclManager().getAcl("foobar"); 99 try { 100 pool.getAclManager().updateAcl(foobar); 101 } catch (InfobitSecurityException ex) { 102 bombed = true; 103 } 104 assertTrue("Allowed acl update without proper permissions", bombed); 105 bombed = false; 106 107 try { 108 pool.getAclManager().removeAcl(foobar); 109 } catch (InfobitSecurityException ex) { 110 bombed = true; 111 } 112 113 assertTrue("Allowed acl removal without proper permissions", bombed); 114 115 } 116 117 }

This page was automatically generated by Maven