public final void testImpliesMember() { GroupPermission p1; Permission p2; Subject s; // <groupmember> implies TestGroup if Subject has GroupPermission("TestGroup") p1 = new GroupPermission("*:<groupmember>", "view"); p2 = new GroupPermission("*:TestGroup", "view"); s = new Subject(); s.getPrincipals().add(new GroupPrincipal("MyWiki", "TestGroup")); assertTrue(subjectImplies(s, p1, p2)); // <groupmember> doesn't imply it if Subject has no GroupPermission("TestGroup") s = new Subject(); s.getPrincipals().add(new WikiPrincipal("TestGroup")); assertFalse(subjectImplies(s, p1, p2)); // <groupmember> doesn't imply it if Subject's GP doesn't match s = new Subject(); s.getPrincipals().add(new GroupPrincipal("MyWiki", "FooGroup")); assertFalse(subjectImplies(s, p1, p2)); // <groupmember> doesn't imply it if p2 isn't GroupPermission type p2 = new PagePermission("*:TestGroup", "view"); s = new Subject(); s.getPrincipals().add(new GroupPrincipal("MyWiki", "TestGroup")); assertFalse(subjectImplies(s, p1, p2)); // <groupmember> implies TestGroup if not called with Subject combiner p1 = new GroupPermission("*:<groupmember>", "view"); p2 = new GroupPermission("*:TestGroup", "view"); assertFalse(p1.impliesMember(p2)); }