function testDeletedUserGetSession() { $cm = new MockCookieManager($this); $dar_valid_hash = new MockDataAccessResult($this); $user123 = new MockUser($this); $userAnonymous = new MockUser($this); $dao = new MockUserDao($this); $um = new UserManagerTestVersion($this); $user123->setReturnValue('getId', 123); $user123->setReturnValue('getUserName', 'user_123'); $user123->setReturnValue('isAnonymous', false); $user123->setReturnValue('isDeleted', true); $userAnonymous->setReturnValue('isAnonymous', true); $cm->setReturnValue('getCookie', 'valid_hash'); $um->setReturnValue('_getServerIp', '212.212.123.12'); $dar_valid_hash->setReturnValue('getRow', array('user_name' => 'user_123', 'user_id' => 123)); $dao->setReturnReference('searchBySessionHashAndIp', $dar_valid_hash, array('valid_hash', '212.212.123.12')); $um->setReturnReference('getUserInstanceFromRow', $user123, array(array('user_name' => 'user_123', 'user_id' => 123))); $um->setReturnReference('getUserInstanceFromRow', $userAnonymous, array(array('user_id' => 0))); $dao->expectNever('storeLastAccessDate'); $dao->expectOnce('deleteAllUserSessions', array(123)); $um->setReturnReference('getDao', $dao); $um->setReturnReference('_getCookieManager', $cm); $user = $um->getCurrentUser(); $this->assertTrue($user->isAnonymous(), 'A deleted user should not be able to use a valid session'); }
function testInternalCachingByUserName() { $dao = new MockUserDao($this); $dar = new MockDataAccessResult($this); $dao->setReturnReference('searchByUserName', $dar); $dar->setReturnValueAt(0, 'getRow', array('user_name' => 'user_name', 'realname' => 'realname', 'user_id' => 123)); $dar->setReturnValueAt(1, 'getRow', false); $dao->expectNever('searchByUserId', 'User should be cached'); $um = new MockUserManager(); $um->setReturnValue('isUserLoadedById', false, array(123)); $um->setReturnValue('isUserLoadedByUserName', false, array('user_name')); $um->expectNever('getUserById'); $um->expectNever('getUserByUserName'); $uh = new UserHelperTestVersion($this); $uh->setReturnValue('_getUserManager', $um); $uh->setReturnValue('_isUserNameNone', false); $uh->setReturnValue('_getCurrentUserUsernameDisplayPreference', 1); $uh->setReturnReference('_getUserDao', $dao); $uh->__construct(); $this->assertEqual("user_name (realname)", $uh->getDisplayNameFromUserName('user_name')); $this->assertEqual("user_name (realname)", $uh->getDisplayNameFromUserId(123)); }