Add a unit test for guests as well
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
77918356d6
commit
092d34d9df
|
@ -155,13 +155,21 @@ class CommentTest extends TestCase {
|
|||
[
|
||||
'Also @"user with spaces" are now supported', ['user with spaces']
|
||||
],
|
||||
[
|
||||
'Also @"guest/0123456789abcdef" are now supported', [], null, ['guest/0123456789abcdef']
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider mentionsProvider
|
||||
*
|
||||
* @param string $message
|
||||
* @param array $expectedUids
|
||||
* @param string|null $author
|
||||
* @param array $expectedGuests
|
||||
*/
|
||||
public function testMentions($message, $expectedUids, $author = null) {
|
||||
public function testMentions(string $message, array $expectedUids, ?string $author = null, array $expectedGuests = []): void {
|
||||
$comment = new Comment();
|
||||
$comment->setMessage($message);
|
||||
if(!is_null($author)) {
|
||||
|
@ -169,9 +177,15 @@ class CommentTest extends TestCase {
|
|||
}
|
||||
$mentions = $comment->getMentions();
|
||||
while($mention = array_shift($mentions)) {
|
||||
$uid = array_shift($expectedUids);
|
||||
$this->assertSame('user', $mention['type']);
|
||||
$this->assertSame($uid, $mention['id']);
|
||||
if ($mention['type'] === 'user') {
|
||||
$id = array_shift($expectedUids);
|
||||
} else if ($mention['type'] === 'guest') {
|
||||
$id = array_shift($expectedGuests);
|
||||
} else {
|
||||
$this->fail('Unexpected mention type');
|
||||
continue;
|
||||
}
|
||||
$this->assertSame($id, $mention['id']);
|
||||
}
|
||||
$this->assertEmpty($mentions);
|
||||
$this->assertEmpty($expectedUids);
|
||||
|
|
Loading…
Reference in New Issue