use OCP\Files\FileInfo;
use OCP\Files\IRootFolder;
use OCP\Util;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
class HookConnector {
/** @var IRootFolder */
/** @var FileInfo[] */
private $deleteMetaCache = [];
- /** @var EventDispatcherInterface */
- private $legacyDispatcher;
-
/** @var IEventDispatcher */
private $dispatcher;
- /**
- * HookConnector constructor.
- *
- * @param Root $root
- * @param View $view
- */
public function __construct(
IRootFolder $root,
View $view,
- EventDispatcherInterface $legacyDispatcher,
IEventDispatcher $dispatcher) {
$this->root = $root;
$this->view = $view;
- $this->legacyDispatcher = $legacyDispatcher;
$this->dispatcher = $dispatcher;
}
public function write($arguments) {
$node = $this->getNodeForPath($arguments['path']);
$this->root->emit('\OC\Files', 'preWrite', [$node]);
- $this->legacyDispatcher->dispatch('\OCP\Files::preWrite', new GenericEvent($node));
+ $this->dispatcher->dispatch('\OCP\Files::preWrite', new GenericEvent($node));
$event = new BeforeNodeWrittenEvent($node);
$this->dispatcher->dispatchTyped($event);
public function postWrite($arguments) {
$node = $this->getNodeForPath($arguments['path']);
$this->root->emit('\OC\Files', 'postWrite', [$node]);
- $this->legacyDispatcher->dispatch('\OCP\Files::postWrite', new GenericEvent($node));
+ $this->dispatcher->dispatch('\OCP\Files::postWrite', new GenericEvent($node));
$event = new NodeWrittenEvent($node);
$this->dispatcher->dispatchTyped($event);
public function create($arguments) {
$node = $this->getNodeForPath($arguments['path']);
$this->root->emit('\OC\Files', 'preCreate', [$node]);
- $this->legacyDispatcher->dispatch('\OCP\Files::preCreate', new GenericEvent($node));
+ $this->dispatcher->dispatch('\OCP\Files::preCreate', new GenericEvent($node));
$event = new BeforeNodeCreatedEvent($node);
$this->dispatcher->dispatchTyped($event);
public function postCreate($arguments) {
$node = $this->getNodeForPath($arguments['path']);
$this->root->emit('\OC\Files', 'postCreate', [$node]);
- $this->legacyDispatcher->dispatch('\OCP\Files::postCreate', new GenericEvent($node));
+ $this->dispatcher->dispatch('\OCP\Files::postCreate', new GenericEvent($node));
$event = new NodeCreatedEvent($node);
$this->dispatcher->dispatchTyped($event);
$node = $this->getNodeForPath($arguments['path']);
$this->deleteMetaCache[$node->getPath()] = $node->getFileInfo();
$this->root->emit('\OC\Files', 'preDelete', [$node]);
- $this->legacyDispatcher->dispatch('\OCP\Files::preDelete', new GenericEvent($node));
+ $this->dispatcher->dispatch('\OCP\Files::preDelete', new GenericEvent($node));
$event = new BeforeNodeDeletedEvent($node);
$this->dispatcher->dispatchTyped($event);
$node = $this->getNodeForPath($arguments['path']);
unset($this->deleteMetaCache[$node->getPath()]);
$this->root->emit('\OC\Files', 'postDelete', [$node]);
- $this->legacyDispatcher->dispatch('\OCP\Files::postDelete', new GenericEvent($node));
+ $this->dispatcher->dispatch('\OCP\Files::postDelete', new GenericEvent($node));
$event = new NodeDeletedEvent($node);
$this->dispatcher->dispatchTyped($event);
public function touch($arguments) {
$node = $this->getNodeForPath($arguments['path']);
$this->root->emit('\OC\Files', 'preTouch', [$node]);
- $this->legacyDispatcher->dispatch('\OCP\Files::preTouch', new GenericEvent($node));
+ $this->dispatcher->dispatch('\OCP\Files::preTouch', new GenericEvent($node));
$event = new BeforeNodeTouchedEvent($node);
$this->dispatcher->dispatchTyped($event);
public function postTouch($arguments) {
$node = $this->getNodeForPath($arguments['path']);
$this->root->emit('\OC\Files', 'postTouch', [$node]);
- $this->legacyDispatcher->dispatch('\OCP\Files::postTouch', new GenericEvent($node));
+ $this->dispatcher->dispatch('\OCP\Files::postTouch', new GenericEvent($node));
$event = new NodeTouchedEvent($node);
$this->dispatcher->dispatchTyped($event);
$source = $this->getNodeForPath($arguments['oldpath']);
$target = $this->getNodeForPath($arguments['newpath']);
$this->root->emit('\OC\Files', 'preRename', [$source, $target]);
- $this->legacyDispatcher->dispatch('\OCP\Files::preRename', new GenericEvent([$source, $target]));
+ $this->dispatcher->dispatch('\OCP\Files::preRename', new GenericEvent([$source, $target]));
$event = new BeforeNodeRenamedEvent($source, $target);
$this->dispatcher->dispatchTyped($event);
$source = $this->getNodeForPath($arguments['oldpath']);
$target = $this->getNodeForPath($arguments['newpath']);
$this->root->emit('\OC\Files', 'postRename', [$source, $target]);
- $this->legacyDispatcher->dispatch('\OCP\Files::postRename', new GenericEvent([$source, $target]));
+ $this->dispatcher->dispatch('\OCP\Files::postRename', new GenericEvent([$source, $target]));
$event = new NodeRenamedEvent($source, $target);
$this->dispatcher->dispatchTyped($event);
$source = $this->getNodeForPath($arguments['oldpath']);
$target = $this->getNodeForPath($arguments['newpath']);
$this->root->emit('\OC\Files', 'preCopy', [$source, $target]);
- $this->legacyDispatcher->dispatch('\OCP\Files::preCopy', new GenericEvent([$source, $target]));
+ $this->dispatcher->dispatch('\OCP\Files::preCopy', new GenericEvent([$source, $target]));
$event = new BeforeNodeCopiedEvent($source, $target);
$this->dispatcher->dispatchTyped($event);
$source = $this->getNodeForPath($arguments['oldpath']);
$target = $this->getNodeForPath($arguments['newpath']);
$this->root->emit('\OC\Files', 'postCopy', [$source, $target]);
- $this->legacyDispatcher->dispatch('\OCP\Files::postCopy', new GenericEvent([$source, $target]));
+ $this->dispatcher->dispatch('\OCP\Files::postCopy', new GenericEvent([$source, $target]));
$event = new NodeCopiedEvent($source, $target);
$this->dispatcher->dispatchTyped($event);
public function read($arguments) {
$node = $this->getNodeForPath($arguments['path']);
$this->root->emit('\OC\Files', 'read', [$node]);
- $this->legacyDispatcher->dispatch('\OCP\Files::read', new GenericEvent([$node]));
+ $this->dispatcher->dispatch('\OCP\Files::read', new GenericEvent([$node]));
$event = new BeforeNodeReadEvent($node);
$this->dispatcher->dispatchTyped($event);
use OCP\Files\Events\Node\NodeWrittenEvent;
use OCP\Files\Node;
use OCP\IUserManager;
-use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\GenericEvent;
use Test\TestCase;
use Test\Traits\MountProviderTrait;
use UserTrait;
use MountProviderTrait;
- /** @var EventDispatcherInterface|MockObject */
- protected $legacyDispatcher;
-
/** @var IEventDispatcher */
protected $eventDispatcher;
$this->createMock(IUserManager::class),
$this->createMock(IEventDispatcher::class)
);
- $this->legacyDispatcher = \OC::$server->getEventDispatcher();
$this->eventDispatcher = \OC::$server->query(IEventDispatcher::class);
}
* @dataProvider viewToNodeProvider
*/
public function testViewToNode(callable $operation, $expectedHook, $expectedLegacyEvent, $expectedEvent) {
- $connector = new HookConnector($this->root, $this->view, $this->legacyDispatcher, $this->eventDispatcher);
+ $connector = new HookConnector($this->root, $this->view, $this->eventDispatcher);
$connector->viewToNode();
$hookCalled = false;
/** @var Node $hookNode */
$dispatcherCalled = false;
/** @var Node $dispatcherNode */
$dispatcherNode = null;
- $this->legacyDispatcher->addListener($expectedLegacyEvent, function ($event) use (&$dispatcherCalled, &$dispatcherNode) {
+ $this->eventDispatcher->addListener($expectedLegacyEvent, function ($event) use (&$dispatcherCalled, &$dispatcherNode) {
/** @var GenericEvent|APIGenericEvent $event */
$dispatcherCalled = true;
$dispatcherNode = $event->getSubject();
* @dataProvider viewToNodeProviderCopyRename
*/
public function testViewToNodeCopyRename(callable $operation, $expectedHook, $expectedLegacyEvent, $expectedEvent) {
- $connector = new HookConnector($this->root, $this->view, $this->legacyDispatcher, $this->eventDispatcher);
+ $connector = new HookConnector($this->root, $this->view, $this->eventDispatcher);
$connector->viewToNode();
$hookCalled = false;
/** @var Node $hookSourceNode */
$dispatcherSourceNode = null;
/** @var Node $dispatcherTargetNode */
$dispatcherTargetNode = null;
- $this->legacyDispatcher->addListener($expectedLegacyEvent, function ($event) use (&$dispatcherSourceNode, &$dispatcherTargetNode, &$dispatcherCalled) {
+ $this->eventDispatcher->addListener($expectedLegacyEvent, function ($event) use (&$dispatcherSourceNode, &$dispatcherTargetNode, &$dispatcherCalled) {
/** @var GenericEvent|APIGenericEvent $event */
$dispatcherCalled = true;
[$dispatcherSourceNode, $dispatcherTargetNode] = $event->getSubject();
}
public function testPostDeleteMeta() {
- $connector = new HookConnector($this->root, $this->view, $this->legacyDispatcher, $this->eventDispatcher);
+ $connector = new HookConnector($this->root, $this->view, $this->eventDispatcher);
$connector->viewToNode();
$hookCalled = false;
/** @var Node $hookNode */
$dispatcherCalled = false;
/** @var Node $dispatcherNode */
$dispatcherNode = null;
- $this->legacyDispatcher->addListener('\OCP\Files::postDelete', function ($event) use (&$dispatcherCalled, &$dispatcherNode) {
+ $this->eventDispatcher->addListener('\OCP\Files::postDelete', function ($event) use (&$dispatcherCalled, &$dispatcherNode) {
/** @var GenericEvent|APIGenericEvent $event */
$dispatcherCalled = true;
$dispatcherNode = $event->getSubject();