1 9 package org.jboss.portal.test.core.plugins.security; 10 11 import java.util.HashSet ; 12 13 import org.jboss.portal.common.util.Tools; 14 import org.jboss.portal.core.metadata.ItemMetaData; 15 import org.jboss.portal.core.metadata.ModelMetaData; 16 import org.jboss.portal.core.metadata.PermissionDescriptionMetaData; 17 import org.jboss.portal.core.metadata.PermissionMetaData; 18 import org.jboss.portal.core.metadata.SchemeMetaData; 19 import org.jboss.portal.core.plugins.security.ModelPlugin; 20 import org.jboss.portal.core.security.Scheme; 21 22 import junit.framework.TestCase; 23 24 28 public class ModelPluginTestCase extends TestCase 29 { 30 31 public ModelPluginTestCase(String name) 32 { 33 super(name); 34 } 35 36 private ModelMetaData modelMD; 37 38 public void setUp() throws Exception 39 { 40 modelMD = new ModelMetaData(); 41 modelMD.setPermissionDescriptions(new HashSet ()); 42 43 PermissionDescriptionMetaData permissionDescription1MD = new PermissionDescriptionMetaData("p1"); 44 permissionDescription1MD.setDescription("this is p1"); 45 permissionDescription1MD.setImpliedSet(Tools.toSet(new Object []{"p2"})); 46 modelMD.getPermissionDescriptions().add(permissionDescription1MD); 47 48 PermissionDescriptionMetaData permissionDescription2MD = new PermissionDescriptionMetaData("p2"); 49 permissionDescription2MD.setDescription("this is p2"); 50 permissionDescription2MD.setImpliedSet(Tools.toSet(new Object []{"p3"})); 51 modelMD.getPermissionDescriptions().add(permissionDescription2MD); 52 53 PermissionDescriptionMetaData permissionDescription3MD = new PermissionDescriptionMetaData("p3"); 54 permissionDescription3MD.setDescription("this is p3"); 55 permissionDescription3MD.setImpliedSet(Tools.toSet(new Object []{})); 56 modelMD.getPermissionDescriptions().add(permissionDescription3MD); 57 58 SchemeMetaData schemeMD = new SchemeMetaData("default"); 59 schemeMD.setItems(new HashSet ()); 60 modelMD.setScheme(schemeMD); 61 62 ItemMetaData itemMD = new ItemMetaData("/"); 63 itemMD.setPermissions(new HashSet ()); 64 PermissionMetaData permission1MD = new PermissionMetaData("p1"); 65 permission1MD.setRoleNames(Tools.toSet(new Object []{"Admins"})); 66 itemMD.getPermissions().add(permission1MD); 67 PermissionMetaData permission2MD = new PermissionMetaData("p2"); 68 permission2MD.setRoleNames(Tools.toSet(new Object []{"Admins","Users"})); 69 itemMD.getPermissions().add(permission2MD); 70 PermissionMetaData permission3MD = new PermissionMetaData("p3"); 71 permission3MD.setRoleNames(Tools.toSet(new Object []{"Users"})); 72 itemMD.getPermissions().add(permission3MD); 73 schemeMD.getItems().add(itemMD); 74 } 75 76 public void tearDown() 77 { 78 modelMD = null; 79 } 80 81 public void testScheme() throws Exception 82 { 83 ModelPlugin model = new ModelPlugin(); 84 model.setMetaData(modelMD); 85 model.create(); 86 model.start(); 87 88 Scheme scheme = model.getDefaultScheme(); 89 assertEquals(Tools.toSet(new Object []{"p1","p2"}), scheme.get(new String [0], "Admins")); 90 assertEquals(Tools.toSet(new Object []{"p2","p3"}), scheme.get(new String [0], "Users")); 91 assertEquals(Tools.toSet(new Object []{"p1","p2","p3"}), scheme.get(new String [0], Tools.toSet(new Object []{"Admins","Users"}))); 92 } 93 94 public void testImplies() throws Exception 95 { 96 ModelPlugin model = new ModelPlugin(); 97 model.setMetaData(modelMD); 98 model.create(); 99 model.start(); 100 101 assertTrue(model.implies("p1", "p2")); 102 assertTrue(model.implies("p2", "p3")); 103 assertTrue(model.implies("p1", "p3")); 104 105 assertFalse(model.implies("p2", "p1")); 106 assertFalse(model.implies("p3", "p1")); 107 assertFalse(model.implies("p3", "p2")); 108 109 assertFalse(model.implies("p1", "")); 110 assertFalse(model.implies("p", "p1")); 111 assertFalse(model.implies("p2", "")); 112 assertFalse(model.implies("p", "p2")); 113 assertFalse(model.implies("p2", "")); 114 assertFalse(model.implies("p", "p2")); 115 116 try { assertFalse(model.implies("p1", null)); fail(); } catch(Exception expected) { } 117 try { assertFalse(model.implies(null, "p1")); fail(); } catch(Exception expected) { } 118 119 model.stop(); 120 model.destroy(); 121 } 122 123 public void testMissingTargetDetection() 124 { 125 try 126 { 127 PermissionDescriptionMetaData permissionDescription3MD = new PermissionDescriptionMetaData("p3"); 128 permissionDescription3MD.setDescription("this is p3"); 129 permissionDescription3MD.setImpliedSet(Tools.toSet(new Object []{"p4"})); 130 modelMD.getPermissionDescriptions().remove(permissionDescription3MD); 131 modelMD.getPermissionDescriptions().add(permissionDescription3MD); 132 133 ModelPlugin model = new ModelPlugin(); 134 model.setMetaData(modelMD); 135 model.create(); 136 model.start(); 137 fail(); 138 } 139 catch (Exception expected) 140 { 141 } 142 } 143 144 public void testCycleDetection() 145 { 146 try 147 { 148 PermissionDescriptionMetaData permissionDescription3MD = new PermissionDescriptionMetaData("p3"); 149 permissionDescription3MD.setDescription("this is p3"); 150 permissionDescription3MD.setImpliedSet(Tools.toSet(new Object []{"p1"})); 151 modelMD.getPermissionDescriptions().remove(permissionDescription3MD); 152 modelMD.getPermissionDescriptions().add(permissionDescription3MD); 153 154 ModelPlugin model = new ModelPlugin(); 155 model.setMetaData(modelMD); 156 model.create(); 157 model.start(); 158 fail(); 159 } 160 catch (Exception expected) 161 { 162 } 163 } 164 165 } 166 | Popular Tags |