From c3bc575d992c6816a89bb18734146c67ecdd17d2 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 11 Jul 2023 11:06:29 +0200 Subject: [PATCH] fix(comments): Emit CommentsEntityEvent as typed event Signed-off-by: Joas Schilling --- apps/comments/lib/AppInfo/Application.php | 2 +- apps/dav/lib/Comments/RootCollection.php | 9 +++++---- apps/dav/lib/RootCollection.php | 2 +- .../tests/unit/Comments/RootCollectionTest.php | 16 ++++++---------- lib/public/Comments/CommentsEntityEvent.php | 10 ++++------ 5 files changed, 17 insertions(+), 22 deletions(-) diff --git a/apps/comments/lib/AppInfo/Application.php b/apps/comments/lib/AppInfo/Application.php index bfd66c43ecd..db147970a64 100644 --- a/apps/comments/lib/AppInfo/Application.php +++ b/apps/comments/lib/AppInfo/Application.php @@ -66,7 +66,7 @@ class Application extends App implements IBootstrap { LoadSidebarScripts::class ); $context->registerEventListener( - CommentsEntityEvent::EVENT_ENTITY, + CommentsEntityEvent::class, CommentsEntityEventListener::class ); $context->registerSearchProvider(CommentsSearchProvider::class); diff --git a/apps/dav/lib/Comments/RootCollection.php b/apps/dav/lib/Comments/RootCollection.php index 39d644b4766..956980c900d 100644 --- a/apps/dav/lib/Comments/RootCollection.php +++ b/apps/dav/lib/Comments/RootCollection.php @@ -26,6 +26,7 @@ namespace OCA\DAV\Comments; use OCP\Comments\CommentsEntityEvent; use OCP\Comments\ICommentsManager; +use OCP\EventDispatcher\IEventDispatcher; use OCP\IUserManager; use OCP\IUserSession; use Psr\Log\LoggerInterface; @@ -33,7 +34,6 @@ use Sabre\DAV\Exception\Forbidden; use Sabre\DAV\Exception\NotAuthenticated; use Sabre\DAV\Exception\NotFound; use Sabre\DAV\ICollection; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; class RootCollection implements ICollection { /** @var EntityTypeCollection[]|null */ @@ -43,13 +43,13 @@ class RootCollection implements ICollection { protected LoggerInterface $logger; protected IUserManager $userManager; protected IUserSession $userSession; - protected EventDispatcherInterface $dispatcher; + protected IEventDispatcher $dispatcher; public function __construct( ICommentsManager $commentsManager, IUserManager $userManager, IUserSession $userSession, - EventDispatcherInterface $dispatcher, + IEventDispatcher $dispatcher, LoggerInterface $logger) { $this->commentsManager = $commentsManager; $this->logger = $logger; @@ -74,7 +74,8 @@ class RootCollection implements ICollection { throw new NotAuthenticated(); } - $event = new CommentsEntityEvent(CommentsEntityEvent::EVENT_ENTITY); + $event = new CommentsEntityEvent(); + $this->dispatcher->dispatchTyped($event); $this->dispatcher->dispatch(CommentsEntityEvent::EVENT_ENTITY, $event); $this->entityTypeCollections = []; diff --git a/apps/dav/lib/RootCollection.php b/apps/dav/lib/RootCollection.php index 80d96f0d748..e4fd814ed81 100644 --- a/apps/dav/lib/RootCollection.php +++ b/apps/dav/lib/RootCollection.php @@ -139,7 +139,7 @@ class RootCollection extends SimpleCollection { \OC::$server->getCommentsManager(), $userManager, \OC::$server->getUserSession(), - \OC::$server->getEventDispatcher(), + $dispatcher, $logger ); diff --git a/apps/dav/tests/unit/Comments/RootCollectionTest.php b/apps/dav/tests/unit/Comments/RootCollectionTest.php index 8e5e4ecad7c..b985d0b08c6 100644 --- a/apps/dav/tests/unit/Comments/RootCollectionTest.php +++ b/apps/dav/tests/unit/Comments/RootCollectionTest.php @@ -26,15 +26,14 @@ namespace OCA\DAV\Tests\unit\Comments; use OC\EventDispatcher\EventDispatcher; -use OC\EventDispatcher\SymfonyAdapter; use OCA\DAV\Comments\EntityTypeCollection as EntityTypeCollectionImplementation; use OCP\Comments\CommentsEntityEvent; use OCP\Comments\ICommentsManager; +use OCP\EventDispatcher\IEventDispatcher; use OCP\IUser; use OCP\IUserManager; use OCP\IUserSession; use Psr\Log\LoggerInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; class RootCollectionTest extends \Test\TestCase { @@ -48,7 +47,7 @@ class RootCollectionTest extends \Test\TestCase { protected $collection; /** @var \OCP\IUserSession|\PHPUnit\Framework\MockObject\MockObject */ protected $userSession; - /** @var EventDispatcherInterface */ + /** @var IEventDispatcher */ protected $dispatcher; /** @var \OCP\IUser|\PHPUnit\Framework\MockObject\MockObject */ protected $user; @@ -72,12 +71,9 @@ class RootCollectionTest extends \Test\TestCase { $this->logger = $this->getMockBuilder(LoggerInterface::class) ->disableOriginalConstructor() ->getMock(); - $this->dispatcher = new SymfonyAdapter( - new EventDispatcher( - new \Symfony\Component\EventDispatcher\EventDispatcher(), - \OC::$server, - $this->logger - ), + $this->dispatcher = new EventDispatcher( + new \Symfony\Component\EventDispatcher\EventDispatcher(), + \OC::$server, $this->logger ); @@ -99,7 +95,7 @@ class RootCollectionTest extends \Test\TestCase { ->method('getUser') ->willReturn($this->user); - $this->dispatcher->addListener(CommentsEntityEvent::EVENT_ENTITY, function (CommentsEntityEvent $event): void { + $this->dispatcher->addListener(CommentsEntityEvent::class, function (CommentsEntityEvent $event): void { $event->addEntityCollection('files', function () { return true; }); diff --git a/lib/public/Comments/CommentsEntityEvent.php b/lib/public/Comments/CommentsEntityEvent.php index e4b4c78f03c..3336b80d6b5 100644 --- a/lib/public/Comments/CommentsEntityEvent.php +++ b/lib/public/Comments/CommentsEntityEvent.php @@ -29,26 +29,24 @@ use OCP\EventDispatcher\Event; * Class CommentsEntityEvent * * @since 9.1.0 + * @since 28.0.0 Dispatched as a typed event */ class CommentsEntityEvent extends Event { /** - * @deprecated 22.0.0 + * @deprecated 22.0.0 - Listen to the typed event instead. */ public const EVENT_ENTITY = 'OCP\Comments\ICommentsManager::registerEntity'; - /** @var string */ - protected $event; /** @var \Closure[] */ protected $collections; /** * DispatcherEvent constructor. * - * @param string $event * @since 9.1.0 */ - public function __construct($event) { - $this->event = $event; + public function __construct() { + parent::__construct(); $this->collections = []; } -- 2.39.5