/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.security;
import org.junit.After;
import org.junit.Test;
import com.enonic.cms.core.security.user.UserKey;
import static org.junit.Assert.*;
public class PortalSecurityHolderTest
{
@After
public void after()
{
// Be sure to reset after usage since stuff is stored statically
PortalSecurityHolder.setImpersonatedUser( null );
PortalSecurityHolder.setLoggedInUser( null );
}
@Test
public void getLoggedInUser_returns_logged_in_user_when_no_impersonation_is_done()
{
PortalSecurityHolder.setLoggedInUser( new UserKey( "ABC" ) );
assertEquals( new UserKey( "ABC" ), PortalSecurityHolder.getLoggedInUser() );
}
@Test
public void getLoggedInUser_returns_same_logged_in_user_when_impersonation_is_done()
{
PortalSecurityHolder.setLoggedInUser( new UserKey( "ABC" ) );
PortalSecurityHolder.setImpersonatedUser( new UserKey( "CCC" ) );
assertEquals( new UserKey( "ABC" ), PortalSecurityHolder.getLoggedInUser() );
}
@Test
public void getImpersonatedUser_returns_logged_in_user_when_impersonation_is_not_done()
{
PortalSecurityHolder.setLoggedInUser( new UserKey( "ABC" ) );
assertEquals( new UserKey( "ABC" ), PortalSecurityHolder.getImpersonatedUser() );
}
@Test
public void getImpersonatedUser_returns_impersonated_user_when_impersonation_is_done()
{
PortalSecurityHolder.setLoggedInUser( new UserKey( "ABC" ) );
PortalSecurityHolder.setImpersonatedUser( new UserKey( "CCC" ) );
assertEquals( new UserKey( "CCC" ), PortalSecurityHolder.getImpersonatedUser() );
}
@Test
public void getImpersonatedUser_returns_logged_in_user_after_impersonation_is_removed()
{
PortalSecurityHolder.setLoggedInUser( new UserKey( "ABC" ) );
PortalSecurityHolder.setImpersonatedUser( new UserKey( "CCC" ) );
assertEquals( new UserKey( "CCC" ), PortalSecurityHolder.getImpersonatedUser() );
PortalSecurityHolder.removeImpersonatedUser();
assertEquals( new UserKey( "ABC" ), PortalSecurityHolder.getImpersonatedUser() );
}
}