if (count(array_diff($randomFriendIds, $currentIds)) > 0) {
            $isRandom = true;
            break;
        }
    }
    $t->is($isRandom, true, 'getFriends() returns random in limitation');
} else {
    $t->skip('getFriends() returns random in limitation (too few friends)');
}
//------------------------------------------------------------
$t->diag('MemberRelationshipTable::friendConfirmList()');
$event = new sfEvent('subject', 'name', array('member' => Doctrine::getTable('Member')->find(1)));
MemberRelationshipTable::friendConfirmList($event);
$t->is(count($event->getReturnValue()), 1);
//------------------------------------------------------------
$t->diag('MemberRelationshipTable::processFriendConfirm()');
$memberRelationship1 = new MemberRelationship();
$memberRelationship1->setMemberIdTo(1);
$memberRelationship1->setMemberIdFrom(3);
$memberRelationship1->setFriendPre();
$t->ok($memberRelationship1->isFriendPre());
$event = new sfEvent('subject', 'name', array('member' => Doctrine::getTable('Member')->find(1), 'id' => 3, 'is_accepted' => false));
MemberRelationshipTable::processFriendConfirm($event);
$t->ok(!$memberRelationship1->isFriendPre());
$memberRelationship2 = $table->retrieveByFromAndTo(4, 1);
$t->ok($memberRelationship2->isFriendPre());
$event = new sfEvent('subject', 'name', array('member' => Doctrine::getTable('Member')->find(1), 'id' => 4, 'is_accepted' => true));
MemberRelationshipTable::processFriendConfirm($event);
$t->ok($memberRelationship2->isFriend());
$event = new sfEvent('subject', 'name', array('member' => Doctrine::getTable('Member')->find(3), 'id' => 1, 'is_accepted' => true));
$t->ok(!MemberRelationshipTable::processFriendConfirm($event));
Exemplo n.º 2
0
 public function executeFriendRequest(sfWebRequest $request)
 {
     $memberId = $this->getUser()->getMemberId();
     if (isset($request['member_id'])) {
         $targetMemberId = $request['member_id'];
     } elseif (isset($request['id'])) {
         $targetMemberId = $request['id'];
     } else {
         $this->forward400('member_id parameter not specified.');
     }
     if ($memberId === $targetMemberId) {
         $this->forward400('Friend request to myself is not allowed.');
     }
     $relation = Doctrine::getTable('MemberRelationship')->retrieveByFromAndTo($memberId, $targetMemberId);
     if (!$relation) {
         $relation = new MemberRelationship();
         $relation->setMemberIdFrom($memberId);
         $relation->setMemberIdTo($targetMemberId);
     }
     if (isset($request['unlink'])) {
         if (!$relation->isFriend()) {
             $this->forward400('This member is not your friend.');
         }
         $relation->removeFriend();
     } else {
         if ($relation->isAccessBlocked()) {
             $this->forward403('Friend request is blocked.');
         }
         if ($relation->isFriend()) {
             $this->forward400('This member already belongs to your friend.');
         }
         if ($relation->isFriendPreFrom()) {
             $this->forward400('Friend request is already sent.');
         }
         $relation->setFriendPre();
     }
     $relation->free(true);
     return $this->renderJSON(array('status' => 'success'));
 }
Exemplo n.º 3
0
$t->ok(!$relation1->isFriendPre());
$t->ok(!$relation2->isFriendPre());
$t->ok($relation3->isFriendPre());
$t->ok($dummyRelation1->isFriendPre());
//------------------------------------------------------------
$t->diag('MemberRelationship::isSelf()');
$t->ok(!$dummyRelation1->isSelf());
$t->ok($dummyRelation2->isSelf());
//------------------------------------------------------------
$t->diag('MemberRelationship::isAccessBlocked()');
$t->ok(!$relation4->isAccessBlocked());
$t->ok($dummyRelation3->isAccessBlocked());
//------------------------------------------------------------
$t->diag('MemberRelationship::setFriendPre()');
$t->ok(!$newRelation1->isFriendPre());
$newRelation1->setFriendPre();
$t->ok($newRelation1->isFriendPre());
//------------------------------------------------------------
$t->diag('MemberRelationship::setFriend()');
$t->ok(!$newRelation1->isFriend());
$newRelation1->setFriend();
$t->ok($newRelation1->isFriend());
//------------------------------------------------------------
$t->diag('MemberRelationship::removeFriend()');
$t->ok($newRelation1->isFriend());
$newRelation1->removeFriend();
$t->ok(!$newRelation1->isFriend());
//------------------------------------------------------------
$t->diag('MemberRelationship::removeFriendPre()');
$newRelation1->setFriendPre();
$t->ok($newRelation1->isFriendPre());