Path: blob/master/src/applications/conpherence/__tests__/ConpherenceRoomTestCase.php
12256 views
<?php12final class ConpherenceRoomTestCase extends ConpherenceTestCase {34protected function getPhabricatorTestCaseConfiguration() {5return array(6self::PHABRICATOR_TESTCONFIG_BUILD_STORAGE_FIXTURES => true,7);8}910public function testOneUserRoomCreate() {11$creator = $this->generateNewTestUser();12$participant_phids = array($creator->getPHID());1314$conpherence = $this->createRoom($creator, $participant_phids);1516$this->assertTrue((bool)$conpherence->getID());17$this->assertEqual(1, count($conpherence->getParticipants()));18}1920public function testNUserRoomCreate() {21$creator = $this->generateNewTestUser();22$friend_1 = $this->generateNewTestUser();23$friend_2 = $this->generateNewTestUser();24$friend_3 = $this->generateNewTestUser();2526$participant_phids = array(27$creator->getPHID(),28$friend_1->getPHID(),29$friend_2->getPHID(),30$friend_3->getPHID(),31);3233$conpherence = $this->createRoom($creator, $participant_phids);3435$this->assertTrue((bool)$conpherence->getID());36$this->assertEqual(4, count($conpherence->getParticipants()));37}3839public function testRoomParticipantAddition() {40$creator = $this->generateNewTestUser();41$friend_1 = $this->generateNewTestUser();42$friend_2 = $this->generateNewTestUser();43$friend_3 = $this->generateNewTestUser();4445$participant_phids = array(46$creator->getPHID(),47$friend_1->getPHID(),48);4950$conpherence = $this->createRoom($creator, $participant_phids);5152$this->assertTrue((bool)$conpherence->getID());53$this->assertEqual(2, count($conpherence->getParticipants()));5455// test add by creator56$participant_phids[] = $friend_2->getPHID();57$this->addParticipants($creator, $conpherence, array($friend_2->getPHID()));58$this->assertEqual(3, count($conpherence->getParticipants()));5960// test add by other participant, so recent participation should61// meaningfully change62$participant_phids = array(63$friend_2->getPHID(), // actor64$creator->getPHID(), // last actor65$friend_1->getPHID(),66$friend_3->getPHID(), // new addition67);68$this->addParticipants(69$friend_2,70$conpherence,71array($friend_3->getPHID()));72$this->assertEqual(4, count($conpherence->getParticipants()));73}7475public function testRoomParticipantDeletion() {76$creator = $this->generateNewTestUser();77$friend_1 = $this->generateNewTestUser();78$friend_2 = $this->generateNewTestUser();79$friend_3 = $this->generateNewTestUser();8081$participant_map = array(82$creator->getPHID() => $creator,83$friend_1->getPHID() => $friend_1,84$friend_2->getPHID() => $friend_2,85$friend_3->getPHID() => $friend_3,86);8788$conpherence = $this->createRoom(89$creator,90array_keys($participant_map));9192foreach ($participant_map as $phid => $user) {93$this->removeParticipants($user, $conpherence, array($phid));94unset($participant_map[$phid]);95$this->assertEqual(96count($participant_map),97count($conpherence->getParticipants()));98}99}100101private function createRoom(102PhabricatorUser $creator,103array $participant_phids) {104105$conpherence = ConpherenceThread::initializeNewRoom($creator);106107$xactions = array();108$xactions[] = id(new ConpherenceTransaction())109->setTransactionType(110ConpherenceThreadParticipantsTransaction::TRANSACTIONTYPE)111->setNewValue(array('+' => $participant_phids));112$xactions[] = id(new ConpherenceTransaction())113->setTransactionType(114ConpherenceThreadTitleTransaction::TRANSACTIONTYPE)115->setNewValue(pht('Test'));116117id(new ConpherenceEditor())118->setActor($creator)119->setContentSource($this->newContentSource())120->setContinueOnNoEffect(true)121->applyTransactions($conpherence, $xactions);122123return $conpherence;124}125126private function changeEditPolicy(127PhabricatorUser $actor,128ConpherenceThread $room,129$policy) {130131$xactions = array();132$xactions[] = id(new ConpherenceTransaction())133->setTransactionType(PhabricatorTransactions::TYPE_EDIT_POLICY)134->setNewValue($policy);135136id(new ConpherenceEditor())137->setActor($actor)138->setContentSource($this->newContentSource())139->setContinueOnNoEffect(true)140->applyTransactions($room, $xactions);141}142143144}145146147