function testGoodLogin() { $cm = new MockCookieManager($this); $dao = new MockUserDao($this); $dar = new MockDataAccessResult($this); $user123 = new MockUser($this); $um = new UserManagerTestVersion($this); $em = new MockEventManager($this); $um->setReturnReference('_getEventManager', $em); $hash = 'valid_hash'; $dao->setReturnValue('createSession', $hash); $user123->setReturnValue('getId', 123); $user123->setReturnValue('getUserName', 'user_123'); $user123->setReturnValue('getUserPw', md5('pwd')); $user123->setReturnValue('getStatus', 'A'); $user123->setReturnValue('isAnonymous', false); $user123->expectOnce('setSessionHash', array($hash)); $cm->expectOnce('setCookie', array('session_hash', $hash, 0)); $um->setReturnReference('_getCookieManager', $cm); $dao->setReturnReference('searchByUserName', $dar, array('user_123')); $dar->setReturnValue('getRow', array('user_name' => 'user_123', 'user_id' => 123)); $um->setReturnReference('getUserInstanceFromRow', $user123, array(array('user_name' => 'user_123', 'user_id' => 123))); $dao->expectNever('storeLoginFailure'); $um->setReturnReference('getDao', $dao); $this->assertReference($user123, $um->login('user_123', 'pwd', 0)); }
function testGoodLogin() { $cm = new MockCookieManager($this); $dao = new MockUserDao($this); $dar = new MockDataAccessResult($this); $user123 = mock('PFUser'); $user_manager = new UserManagerTestVersion($this); $em = new MockEventManager($this); $password_handler = PasswordHandlerFactory::getPasswordHandler(); $user_manager->setReturnReference('_getEventManager', $em); $hash = 'valid_hash'; $token_value = 'token'; $token = stub('Rest_Token')->getTokenValue()->returns($token_value); $token_manager = stub('REST_TokenManager')->generateTokenForUser()->returns($token); $dao->setReturnValue('createSession', $hash); $user123->setReturnValue('getId', 123); $user123->setReturnValue('getUserName', 'user_123'); $user123->setReturnValue('getUserPw', $password_handler->computeHashPassword(self::PASSWORD)); $user123->setReturnValue('getStatus', 'A'); $user123->setReturnValue('isAnonymous', false); $user123->expectOnce('setSessionHash', array($hash)); $cm->expectOnce('setHTTPOnlyCookie', array('session_hash', $hash, 0)); expect($cm)->setGlobalCookie( 'user_token', $token_value, $_SERVER['REQUEST_TIME'] + Rest_TokenManager::TOKENS_EXPIRATION_TIME )->at(0); expect($cm)->setGlobalCookie('user_id', 123, 0)->at(1); $user_manager->setReturnReference('getCookieManager', $cm); stub($user_manager)->getTokenManager()->returns($token_manager); $dao->setReturnReference('searchByUserName', $dar, array('user_123')); $dar->setReturnValue('getRow', array('user_name' => 'user_123', 'user_id' => 123)); $user_manager->setReturnReference('getUserInstanceFromRow', $user123, array(array('user_name' => 'user_123', 'user_id' => 123))); $dao->expectNever('storeLoginFailure'); $user_manager->setReturnReference('getDao', $dao); $this->assertReference($user123, $user_manager->login('user_123', self::PASSWORD, 0)); }