diff --git a/lib/Activity/ActivityManager.php b/lib/Activity/ActivityManager.php index 881c55cf2..ebecf0df6 100644 --- a/lib/Activity/ActivityManager.php +++ b/lib/Activity/ActivityManager.php @@ -377,6 +377,9 @@ class ActivityManager { $subjectParams['stackBefore'] = $this->stackMapper->find($additionalParams['before']); } + $subjectParams['author'] = $this->userId; + + $event = $this->manager->generateEvent(); $event->setApp('deck') ->setType('deck') diff --git a/lib/Activity/DeckProvider.php b/lib/Activity/DeckProvider.php index 83f689955..c99bbe468 100644 --- a/lib/Activity/DeckProvider.php +++ b/lib/Activity/DeckProvider.php @@ -81,6 +81,11 @@ class DeckProvider implements IProvider { */ $author = $event->getAuthor(); + // get author if + if ($author === '' && array_key_exists('author', $subjectParams)) { + $author = $subjectParams['author']; + unset($subjectParams['author']); + } $user = $this->userManager->get($author); $params = [ 'user' => [ @@ -90,6 +95,9 @@ class DeckProvider implements IProvider { ], ]; if ($event->getObjectType() === ActivityManager::DECK_OBJECT_BOARD) { + if ($event->getObjectName() === '') { + $event->setObject($event->getObjectType(), $event->getObjectId(), $subjectParams['board']['title']); + } $board = [ 'type' => 'highlight', 'id' => $event->getObjectId(), @@ -100,6 +108,9 @@ class DeckProvider implements IProvider { } if ($event->getObjectType() === ActivityManager::DECK_OBJECT_CARD) { + if ($event->getObjectName() === '') { + $event->setObject($event->getObjectType(), $event->getObjectId(), $subjectParams['card']['title']); + } $card = [ 'type' => 'highlight', 'id' => $event->getObjectId(), @@ -149,6 +160,7 @@ class DeckProvider implements IProvider { $event->setParsedSubject(str_replace($placeholders, $replacements, $subject)) ->setRichSubject($subject, $parameters); + $event->setSubject($subject, $parameters); } private function getIcon(IEvent $event) { @@ -301,6 +313,6 @@ class DeckProvider implements IProvider { } public function deckUrl($endpoint) { - return $this->urlGenerator->linkToRoute('deck.page.index') . '#!' . $endpoint; + return $this->urlGenerator->linkToRouteAbsolute('deck.page.index') . '#!' . $endpoint; } } diff --git a/tests/unit/Activity/CommentEventHandlerTest.php b/tests/unit/Activity/CommentEventHandlerTest.php index 1e149f528..5a0b3902a 100644 --- a/tests/unit/Activity/CommentEventHandlerTest.php +++ b/tests/unit/Activity/CommentEventHandlerTest.php @@ -53,13 +53,17 @@ class CommentEventHandlerTest extends TestCase { private $activityManager; /** @var NotificationHelper */ private $notificationHelper; + /** @var CardMapper */ + private $cardMapper; public function setUp() { $this->activityManager = $this->createMock(ActivityManager::class); $this->notificationHelper = $this->createMock(NotificationHelper::class); + $this->cardMapper = $this->createMock(CardMapper::class); $this->commentEventHandler = new CommentEventHandler( $this->activityManager, - $this->notificationHelper + $this->notificationHelper, + $this->cardMapper ); } @@ -67,10 +71,15 @@ class CommentEventHandlerTest extends TestCase { $comment = $this->createMock(IComment::class); $comment->expects($this->any())->method('getId')->willReturn(1); $comment->expects($this->any())->method('getObjectType')->willReturn('deckCard'); + $comment->expects($this->any())->method('getMessage')->willReturn('Hello world'); + $card = $this->createMock(Card::class); + $this->cardMapper->expects($this->once()) + ->method('find') + ->willReturn($card); $commentsEvent = new CommentsEvent(CommentsEvent::EVENT_ADD, $comment); $this->activityManager->expects($this->once()) ->method('triggerEvent') - ->with(ActivityManager::DECK_OBJECT_CARD, $comment, ActivityManager::SUBJECT_CARD_COMMENT_CREATE, ['comment' => 1]); + ->with(ActivityManager::DECK_OBJECT_CARD, $card, ActivityManager::SUBJECT_CARD_COMMENT_CREATE, ['comment' => $comment]); $this->notificationHelper->expects($this->once()) ->method('sendMention') ->with($comment); diff --git a/tests/unit/Activity/DeckProviderTest.php b/tests/unit/Activity/DeckProviderTest.php index 657dd01d5..2c405ff1f 100644 --- a/tests/unit/Activity/DeckProviderTest.php +++ b/tests/unit/Activity/DeckProviderTest.php @@ -139,7 +139,7 @@ class DeckProviderTest extends TestCase { public function testDeckUrl() { $this->urlGenerator->expects($this->once()) - ->method('linkToRoute') + ->method('linkToRouteAbsolute') ->with('deck.page.index') ->willReturn('http://localhost/index.php/apps/deck/'); $this->assertEquals(