39 public static function setUpBeforeClass()
41 parent::setUpBeforeClass();
42 SecurityTestHelper::createSuperAdmin();
44 Yii::app()->user->userModel = $super;
45 $user = UserTestHelper::createBasicUser(
'Tilly');
46 TaskTestHelper::createTaskByNameForOwner(
'My Task', $super);
47 AccountTestHelper::createAccountByNameForOwner(
'anAccount', $super);
50 public function setUp()
62 $steven = UserTestHelper::createBasicUser(
'steven');
65 $task->name =
'MyTest';
66 $nowStamp = DateTimeUtil::convertTimestampToDbFormatDateTime(time());
67 $this->assertTrue($task->save());
70 $user = Yii::app()->user->userModel;
72 $notificationSubscriber->person = $steven;
73 $notificationSubscriber->hasReadLatest =
false;
74 $task->notificationSubscribers->add($notificationSubscriber);
75 $this->assertTrue($task->save());
82 $this->assertEquals(0, $task->notificationSubscribers->offsetGet(0)->hasReadLatest);
83 $this->assertEquals(0, $task->notificationSubscribers->offsetGet(1)->hasReadLatest);
92 foreach ($task->notificationSubscribers as $position => $subscriber)
94 $this->assertEquals(1, $subscriber->hasReadLatest);
106 $tasks = Task::getByName(
'MyTest');
110 $this->assertContains(
'gravatar', $content);
111 $this->assertContains(
'users/default/details', $content);
121 $tasks = Task::getByName(
'MyTest');
126 foreach ($subscribers as $subscriber)
128 if ($subscriber->id == $user->id)
133 $this->assertTrue($found);
141 $tasks = Task::getByName(
'MyTest');
143 $sally = UserTestHelper::createBasicUser(
'sally');
144 $maggi = UserTestHelper::createBasicUser(
'maggi');
145 $task->owner = $sally;
146 $task->requestedByUser = $maggi;
151 $notificationSubscriber->person = Yii::app()->user->userModel;
152 $task->notificationSubscribers->add($notificationSubscriber);
156 $this->assertContains(
'unsubscribe-model-link', $link);
158 foreach ($task->notificationSubscribers as $notificationSubscriber)
160 $user = $notificationSubscriber->person->castDown(array($modelDerivationPathToItem));
161 if ($user->id == Yii::app()->user->userModel->id)
163 $task->notificationSubscribers->remove($notificationSubscriber);
168 $this->assertContains(
'subscribe-model-link', $link);
176 $tasks = Task::getByName(
'MyTest');
181 $notificationSubscriber->person = Yii::app()->user->userModel;
182 $task->notificationSubscribers->add($notificationSubscriber);
186 $this->assertContains(
'detail-unsubscribe-model-link', $link);
188 foreach ($task->notificationSubscribers as $index => $notificationSubscriber)
190 $user = $notificationSubscriber->person->castDown(array($modelDerivationPathToItem));
191 if ($user->id == Yii::app()->user->userModel->id)
193 $task->notificationSubscribers->remove($notificationSubscriber);
198 $this->assertContains(
'detail-subscribe-model-link', $link);
209 $task->name =
'MyTest';
210 $task->owner = $user;
211 $nowStamp = DateTimeUtil::convertTimestampToDbFormatDateTime(time());
212 $this->assertTrue($task->save());
213 $this->assertEquals($user, $task->owner);
216 $this->assertEquals(2, count($task->notificationSubscribers));
217 $user = Yii::app()->user->userModel;
220 $this->assertEquals(2, count($task->notificationSubscribers));
228 $hellodear = UserTestHelper::createBasicUser(
'hellodear');
230 $task->name =
'MyCardTest';
231 $task->owner = $hellodear;
232 $this->assertTrue($task->save());
235 $user = Yii::app()->user->userModel;
237 $this->assertTrue($task->save());
239 $this->assertContains(
'gravatar', $content);
240 $this->assertContains(
'users/default/details', $content);
241 $this->assertContains(
'hellodear', $content);
242 $this->assertContains(
'task-owner', $content);
252 $mark = UserTestHelper::createBasicUser(
'mark');
253 $jim = UserTestHelper::createBasicUser(
'jim');
255 $task = TaskTestHelper::createTaskByNameForOwner(
'SubTask', Yii::app()->user->userModel);
256 $this->assertEquals(1, count($task->notificationSubscribers));
257 $subscribedUser = $task->notificationSubscribers[0]->person->castDown(array($modelDerivationPathToItem));
258 $this->assertEquals(Yii::app()->user->userModel->id, $subscribedUser->id);
261 $this->assertEquals(2, count($task->notificationSubscribers));
262 $subscribedUser1 = $task->notificationSubscribers[0]->person->castDown(array($modelDerivationPathToItem));
263 $subscribedUser2 = $task->notificationSubscribers[1]->person->castDown(array($modelDerivationPathToItem));
264 $this->assertTrue(in_array(Yii::app()->user->userModel->id, array($subscribedUser1->id, $subscribedUser2->id)));
265 $this->assertTrue(in_array($mark->id, array($subscribedUser1->id, $subscribedUser2->id)));
268 $this->assertEquals(3, count($task->notificationSubscribers));
269 $subscribedUser1 = $task->notificationSubscribers[0]->person->castDown(array($modelDerivationPathToItem));
270 $subscribedUser2 = $task->notificationSubscribers[1]->person->castDown(array($modelDerivationPathToItem));
271 $subscribedUser3 = $task->notificationSubscribers[2]->person->castDown(array($modelDerivationPathToItem));
272 $this->assertTrue(in_array(Yii::app()->user->userModel->id, array($subscribedUser1->id, $subscribedUser2->id, $subscribedUser3->id)));
273 $this->assertTrue(in_array($mark->id, array($subscribedUser1->id, $subscribedUser2->id, $subscribedUser3->id)));
274 $this->assertTrue(in_array($jim->id, array($subscribedUser1->id, $subscribedUser2->id, $subscribedUser3->id)));
285 $maria = UserTestHelper::createBasicUser(
'maria');
286 $john = UserTestHelper::createBasicUser(
'john');
288 $task = TaskTestHelper::createTaskByNameForOwner(
'SubTask2', Yii::app()->user->userModel);
292 $this->assertEquals(3, count($task->notificationSubscribers));
295 $this->assertEquals(2, count($task->notificationSubscribers));
296 $subscribedUser1 = $task->notificationSubscribers[0]->person->castDown(array($modelDerivationPathToItem));
297 $subscribedUser2 = $task->notificationSubscribers[1]->person->castDown(array($modelDerivationPathToItem));
298 $this->assertTrue(in_array(Yii::app()->user->userModel->id, array($subscribedUser1->id, $subscribedUser2->id)));
299 $this->assertTrue(in_array($john->id, array($subscribedUser1->id, $subscribedUser2->id)));
302 $this->assertEquals(1, count($task->notificationSubscribers));
303 $subscribedUser = $task->notificationSubscribers[0]->person->castDown(array($modelDerivationPathToItem));
304 $this->assertEquals(Yii::app()->user->userModel->id, $subscribedUser->id);
testProcessSubscriptionRequest()
static addSubscriber(User $user, OwnedSecurableItem $model, $hasReadLatest=false)
static getByUsername($username)
testAddSubscriberToModel()
testResolveAndRenderTaskCardDetailsSubscribersContent()
static processUnsubscriptionRequest(OwnedSecurableItem $model, User $user)
testMarkUserHasReadLatest()
static getDetailSubscriptionLink(OwnedSecurableItem $model, $row)
static markUserHasReadLatest(OwnedSecurableItem $model, User $user, $hasReadLatest=true)
static resolveAndRenderTaskCardDetailsSubscribersContent(OwnedSecurableItem $model)
static processSubscriptionRequest(OwnedSecurableItem $model, User $user)
testProcessUnsubscriptionRequest()
static getModelDerivationPathToItem($modelClassName)
static doNotificationSubscribersContainPerson(OwnedSecurableItem $model, Item $item)
static getById($id, $modelClassName=null)
testResolveDetailSubscriptionLink()
testResolveSubscriptionLink()
static getKanbanSubscriptionLink(OwnedSecurableItem $model, $row)
static getSubscriberData(OwnedSecurableItem $model)
static getModelSubscribers(OwnedSecurableItem $model)