@@ -267,6 +267,14 @@ public function dataParseMessage(): array {
267267 'You removed {user} ' ,
268268 ['actor ' => ['id ' => 'actor ' , 'type ' => 'user ' ], 'user ' => ['id ' => 'user ' , 'type ' => 'user ' ]],
269269 ],
270+ ['user_added ' , ['user ' => 'user ' ], null ,
271+ '{actor} added {user} ' ,
272+ ['actor ' => ['id ' => 'actor ' , 'type ' => 'user ' ], 'user ' => ['id ' => 'user ' , 'type ' => 'user ' ]],
273+ ],
274+ ['user_removed ' , ['user ' => 'user ' ], null ,
275+ '{actor} removed {user} ' ,
276+ ['actor ' => ['id ' => 'actor ' , 'type ' => 'user ' ], 'user ' => ['id ' => 'user ' , 'type ' => 'user ' ]],
277+ ],
270278 ['group_added ' , ['group ' => 'g1 ' ], 'recipient ' ,
271279 '{actor} added group {group} ' ,
272280 ['actor ' => ['id ' => 'actor ' , 'type ' => 'user ' ], 'group ' => ['id ' => 'g1 ' , 'type ' => 'group ' ]],
@@ -339,6 +347,22 @@ public function dataParseMessage(): array {
339347 'You demoted {user} from moderator ' ,
340348 ['actor ' => ['id ' => 'actor ' , 'type ' => 'user ' ], 'user ' => ['id ' => 'moderator ' , 'type ' => 'guest ' ]],
341349 ],
350+ ['moderator_promoted ' , ['user ' => 'user ' ], null ,
351+ '{actor} promoted {user} to moderator ' ,
352+ ['actor ' => ['id ' => 'actor ' , 'type ' => 'user ' ], 'user ' => ['id ' => 'user ' , 'type ' => 'user ' ]],
353+ ],
354+ ['moderator_demoted ' , ['user ' => 'user ' ], null ,
355+ '{actor} demoted {user} from moderator ' ,
356+ ['actor ' => ['id ' => 'actor ' , 'type ' => 'user ' ], 'user ' => ['id ' => 'user ' , 'type ' => 'user ' ]],
357+ ],
358+ ['guest_moderator_promoted ' , ['session ' => 'moderator ' ], null ,
359+ '{actor} promoted {user} to moderator ' ,
360+ ['actor ' => ['id ' => 'actor ' , 'type ' => 'user ' ], 'user ' => ['id ' => 'moderator ' , 'type ' => 'guest ' ]],
361+ ],
362+ ['guest_moderator_demoted ' , ['session ' => 'moderator ' ], null ,
363+ '{actor} demoted {user} from moderator ' ,
364+ ['actor ' => ['id ' => 'actor ' , 'type ' => 'user ' ], 'user ' => ['id ' => 'moderator ' , 'type ' => 'guest ' ]],
365+ ],
342366 ['file_shared ' , ['share ' => '42 ' ], 'recipient ' ,
343367 '{file} ' ,
344368 ['actor ' => ['id ' => 'actor ' , 'type ' => 'user ' ], 'file ' => ['id ' => 'file-from-share ' ]],
@@ -430,14 +454,16 @@ public function dataParseMessage(): array {
430454 * @dataProvider dataParseMessage
431455 * @param string $message
432456 * @param array $parameters
433- * @param $recipientId
457+ * @param string|null $recipientId
434458 * @param string $expectedMessage
435459 * @param array $expectedParameters
436460 */
437- public function testParseMessage (string $ message , array $ parameters , $ recipientId , string $ expectedMessage , array $ expectedParameters ) {
461+ public function testParseMessage (string $ message , array $ parameters , ? string $ recipientId , string $ expectedMessage , array $ expectedParameters ) {
438462 /** @var Participant|MockObject $participant */
439463 $ participant = $ this ->createMock (Participant::class);
440- if ($ recipientId && strpos ($ recipientId , 'guest:: ' ) !== false ) {
464+ if ($ recipientId === null ) {
465+ $ participant = null ;
466+ } elseif ($ recipientId && strpos ($ recipientId , 'guest:: ' ) !== false ) {
441467 $ attendee = Attendee::fromRow ([
442468 'actor_type ' => 'guests ' ,
443469 'actor_id ' => substr ($ recipientId , strlen ('guest:: ' )),
@@ -448,6 +474,12 @@ public function testParseMessage(string $message, array $parameters, $recipientI
448474 $ participant ->expects ($ this ->atLeastOnce ())
449475 ->method ('isGuest ' )
450476 ->willReturn (true );
477+ $ participant ->expects ($ this ->any ())
478+ ->method ('getAttendee ' )
479+ ->willReturn ($ attendee );
480+ $ participant ->expects ($ this ->any ())
481+ ->method ('getSession ' )
482+ ->willReturn ($ session );
451483 } else {
452484 $ participant ->expects ($ this ->atLeastOnce ())
453485 ->method ('isGuest ' )
@@ -457,13 +489,13 @@ public function testParseMessage(string $message, array $parameters, $recipientI
457489 'actor_id ' => $ recipientId ,
458490 ]);
459491 $ session = null ;
492+ $ participant ->expects ($ this ->any ())
493+ ->method ('getAttendee ' )
494+ ->willReturn ($ attendee );
495+ $ participant ->expects ($ this ->any ())
496+ ->method ('getSession ' )
497+ ->willReturn ($ session );
460498 }
461- $ participant ->expects ($ this ->any ())
462- ->method ('getAttendee ' )
463- ->willReturn ($ attendee );
464- $ participant ->expects ($ this ->any ())
465- ->method ('getSession ' )
466- ->willReturn ($ session );
467499
468500 /** @var IComment|MockObject $comment */
469501 $ comment = $ this ->createMock (IComment::class);
0 commit comments