⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 groupmanagertest.java

📁 jspwiki source code,jspwiki source code
💻 JAVA
字号:
package com.ecyrd.jspwiki.auth;import java.security.Principal;import java.util.Properties;import org.apache.commons.lang.ArrayUtils;import junit.framework.Test;import junit.framework.TestCase;import junit.framework.TestSuite;import com.ecyrd.jspwiki.TestEngine;import com.ecyrd.jspwiki.WikiException;import com.ecyrd.jspwiki.WikiSession;import com.ecyrd.jspwiki.WikiSessionTest;import com.ecyrd.jspwiki.auth.authorize.Group;import com.ecyrd.jspwiki.auth.authorize.GroupManager;import com.ecyrd.jspwiki.event.WikiSecurityEvent;public class GroupManagerTest extends TestCase{    private TestEngine        m_engine;    private GroupManager      m_groupMgr;    private SecurityEventTrap m_trap = new SecurityEventTrap();    private WikiSession       m_session;    public GroupManagerTest( String s )    {        super( s );    }    public void setUp() throws Exception    {        Properties props = new Properties();        props.load( TestEngine.findTestProperties() );        m_engine = new TestEngine( props );        m_groupMgr = m_engine.getGroupManager();        m_session = WikiSessionTest.adminSession( m_engine );        // Flush any pre-existing groups (left over from previous failures, perhaps)        try        {            m_groupMgr.removeGroup( "Test" );            m_groupMgr.removeGroup( "Test2" );            m_groupMgr.removeGroup( "Test3" );        }        catch ( NoSuchPrincipalException e )        {            // It's not a problem if we can't find the principals...        }        m_groupMgr.addWikiEventListener( m_trap );        m_trap.clearEvents();        // Add 3 test groups        Group group;        group = m_groupMgr.parseGroup( "Test", "Alice \n Bob \n Charlie", true );        m_groupMgr.setGroup( m_session, group );        group = m_groupMgr.parseGroup( "Test2", "Bob", true );        m_groupMgr.setGroup( m_session, group );        group = m_groupMgr.parseGroup( "Test3", "Fred Flintstone", true );        m_groupMgr.setGroup( m_session, group );        // We should see 3 events: 1 for each group add        assertEquals( 3, m_trap.events().length );        m_trap.clearEvents();    }    public void tearDown() throws WikiException    {        m_groupMgr.removeGroup( "Test" );        m_groupMgr.removeGroup( "Test2" );        m_groupMgr.removeGroup( "Test3" );   }    public void testParseGroup() throws WikiSecurityException    {        String members = "Biff";        Group group = m_groupMgr.parseGroup( "Group1", members, true );        assertEquals( 1, group.members().length );        assertTrue ( group.isMember( new WikiPrincipal( "Biff" ) ) );        members = "Biff \n SteveAustin \n FredFlintstone";        group = m_groupMgr.parseGroup( "Group2", members, true );        assertEquals( 3, group.members().length );        assertTrue ( group.isMember( new WikiPrincipal( "Biff" ) ) );        assertTrue ( group.isMember( new WikiPrincipal( "SteveAustin" ) ) );        assertTrue ( group.isMember( new WikiPrincipal( "FredFlintstone" ) ) );    }    public void testGetRoles()    {        Principal[] roles = m_groupMgr.getRoles();        assertTrue( "Found Test", ArrayUtils.contains( roles, new GroupPrincipal( "Test" ) ) );        assertTrue( "Found Test2", ArrayUtils.contains( roles, new GroupPrincipal( "Test2" ) ) );        assertTrue( "Found Test3", ArrayUtils.contains( roles, new GroupPrincipal( "Test3" ) ) );    }    public void testGroupMembership() throws Exception    {        WikiSession s;        // Anonymous; should belong to NO groups        s = WikiSessionTest.anonymousSession( m_engine );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test2" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test3" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "NonExistant" ) ) );        // Alice is asserted; should belong to NO groups        s = WikiSessionTest.assertedSession( m_engine, Users.ALICE );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test2" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test3" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "NonExistant" ) ) );        // Alice is authenticated; should belong to Test        s = WikiSessionTest.authenticatedSession( m_engine, Users.ALICE, Users.ALICE_PASS );        assertTrue( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test2" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test3" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "NonExistant" ) ) );        // Bob is authenticated; should belong to Test & Test2        s = WikiSessionTest.authenticatedSession( m_engine, Users.BOB, Users.BOB_PASS );        assertTrue( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test" ) ) );        assertTrue( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test2" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test3" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "NonExistant" ) ) );        // Charlie is authenticated; should belong to Test        s = WikiSessionTest.authenticatedSession( m_engine, Users.CHARLIE, Users.CHARLIE_PASS );        assertTrue( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test2" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test3" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "NonExistant" ) ) );        // Fred is authenticated; should belong to Test3        s = WikiSessionTest.authenticatedSession( m_engine, Users.FRED, Users.FRED_PASS );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test2" ) ) );        assertTrue( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test3" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "NonExistant" ) ) );        // Nobody loves Biff!        s = WikiSessionTest.authenticatedSession( m_engine, Users.BIFF, Users.BIFF_PASS );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test2" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "Test3" ) ) );        assertFalse( m_groupMgr.isUserInRole( s, new GroupPrincipal( "NonExistant" ) ) );    }    public void testGroupAddEvents() throws Exception    {        // Flush any pre-existing groups (left over from previous failures, perhaps)        try        {            m_groupMgr.removeGroup( "Events" );        }        catch ( NoSuchPrincipalException e )        {            // It's not a problem if we get here...        }        m_trap.clearEvents();        Group group = m_groupMgr.parseGroup( "Events", "", true );        m_groupMgr.setGroup( m_session, group );        WikiSecurityEvent event;        group = m_groupMgr.getGroup( "Events" );        group.add( new WikiPrincipal( "Alice" ) );        group.add( new WikiPrincipal( "Bob" ) );        group.add( new WikiPrincipal( "Charlie" ) );        // We should see a GROUP_ADD event        WikiSecurityEvent[] events = m_trap.events();        assertEquals( 1, events.length );        event = events[0];        assertEquals( m_groupMgr, event.getSource() );        assertEquals( WikiSecurityEvent.GROUP_ADD, event.getType() );        assertEquals( group, event.getTarget() );        // Clean up        m_groupMgr.removeGroup( "Events" );    }    public static Test suite()    {        TestSuite suite = new TestSuite("Group manager tests");        suite.addTestSuite( GroupManagerTest.class );        return suite;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -