From f2693c118c6e05e2e914dd454063c4376b421d46 Mon Sep 17 00:00:00 2001 From: "Misha M.-Kupriyanov" Date: Fri, 16 May 2025 15:16:43 +0200 Subject: [PATCH] chore(test): add unit tests for RegisterTemplateFileCreatorListener Signed-off-by: Misha M.-Kupriyanov --- ...egisterTemplateFileCreatorListenerTest.php | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 tests/lib/Listener/RegisterTemplateFileCreatorListenerTest.php diff --git a/tests/lib/Listener/RegisterTemplateFileCreatorListenerTest.php b/tests/lib/Listener/RegisterTemplateFileCreatorListenerTest.php new file mode 100644 index 0000000000..562eb33e71 --- /dev/null +++ b/tests/lib/Listener/RegisterTemplateFileCreatorListenerTest.php @@ -0,0 +1,110 @@ +l10n = $this->createMock(IL10N::class); + $this->config = $this->createMock(IConfig::class); + $this->appManager = $this->createMock(IAppManager::class); + $this->capabilitiesService = $this->createMock(CapabilitiesService::class); + $this->permissionManager = $this->createMock(PermissionManager::class); + $this->templateManager = $this->createMock(ITemplateManager::class); + } + + public function testHandleDoesNotRegisterIfEventIsNotRegisterTemplateCreatorEvent() { + $listener = new RegisterTemplateFileCreatorListener( + $this->l10n, + $this->config, + $this->appManager, + $this->capabilitiesService, + $this->permissionManager + ); + $event = $this->createMock(Event::class); + $this->templateManager->expects($this->never())->method('registerTemplateFileCreator'); + $listener->handle($event); + } + + public function testHandleDoesNotRegisterIfPermissionOrCapabilitiesMissing() { + $event = $this->createMock(RegisterTemplateCreatorEvent::class); + $event->method('getTemplateManager')->willReturn($this->templateManager); + $this->permissionManager->method('isEnabledForUser')->willReturn(false); + $this->capabilitiesService->method('getCapabilities')->willReturn([]); + + $listener = new RegisterTemplateFileCreatorListener( + $this->l10n, + $this->config, + $this->appManager, + $this->capabilitiesService, + $this->permissionManager + ); + $this->templateManager->expects($this->never())->method('registerTemplateFileCreator'); + $listener->handle($event); + } + + public function testHandleRegistersTemplateFileCreators() { + $event = $this->createMock(RegisterTemplateCreatorEvent::class); + $event->method('getTemplateManager')->willReturn($this->templateManager); + $this->permissionManager->method('isEnabledForUser')->willReturn(true); + $this->capabilitiesService->method('getCapabilities')->willReturn(['something']); + $this->capabilitiesService->method('hasDrawSupport')->willReturn(true); + $this->config->method('getAppValue')->willReturn('ooxml'); + $this->appManager->method('getAppPath')->willReturn('/tmp'); + + $this->templateManager->expects($this->exactly(4))->method('registerTemplateFileCreator'); + + $listener = new RegisterTemplateFileCreatorListener( + $this->l10n, + $this->config, + $this->appManager, + $this->capabilitiesService, + $this->permissionManager + ); + $listener->handle($event); + } + + public function testHandleRegistersWithoutDrawSupport() { + $event = $this->createMock(RegisterTemplateCreatorEvent::class); + $event->method('getTemplateManager')->willReturn($this->templateManager); + $this->permissionManager->method('isEnabledForUser')->willReturn(true); + $this->capabilitiesService->method('getCapabilities')->willReturn(['something']); + $this->capabilitiesService->method('hasDrawSupport')->willReturn(false); + $this->config->method('getAppValue')->willReturn('ooxml'); + $this->appManager->method('getAppPath')->willReturn('/tmp'); + + $this->templateManager->expects($this->exactly(3))->method('registerTemplateFileCreator'); + + $listener = new RegisterTemplateFileCreatorListener( + $this->l10n, + $this->config, + $this->appManager, + $this->capabilitiesService, + $this->permissionManager + ); + $listener->handle($event); + } +}