Skip to content

Commit 8f5b7ea

Browse files
chore(test): add unit tests for RegisterTemplateFileCreatorListener
Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
1 parent 4c7646a commit 8f5b7ea

1 file changed

Lines changed: 107 additions & 0 deletions

File tree

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace OCA\Richdocuments\Tests\Listener;
6+
7+
use OCA\Richdocuments\Listener\RegisterTemplateFileCreatorListener;
8+
use OCA\Richdocuments\PermissionManager;
9+
use OCA\Richdocuments\Service\CapabilitiesService;
10+
use OCP\App\IAppManager;
11+
use OCP\EventDispatcher\Event;
12+
use OCP\Files\Template\ITemplateManager;
13+
use OCP\Files\Template\RegisterTemplateCreatorEvent;
14+
use OCP\IConfig;
15+
use OCP\IL10N;
16+
use PHPUnit\Framework\TestCase;
17+
18+
class RegisterTemplateFileCreatorListenerTest extends TestCase {
19+
private $l10n;
20+
private $config;
21+
private $appManager;
22+
private $capabilitiesService;
23+
private $permissionManager;
24+
private $templateManager;
25+
26+
protected function setUp(): void {
27+
parent::setUp();
28+
$this->l10n = $this->createMock(IL10N::class);
29+
$this->config = $this->createMock(IConfig::class);
30+
$this->appManager = $this->createMock(IAppManager::class);
31+
$this->capabilitiesService = $this->createMock(CapabilitiesService::class);
32+
$this->permissionManager = $this->createMock(PermissionManager::class);
33+
$this->templateManager = $this->createMock(ITemplateManager::class);
34+
}
35+
36+
public function testHandleDoesNotRegisterIfEventIsNotRegisterTemplateCreatorEvent() {
37+
$listener = new RegisterTemplateFileCreatorListener(
38+
$this->l10n,
39+
$this->config,
40+
$this->appManager,
41+
$this->capabilitiesService,
42+
$this->permissionManager
43+
);
44+
$event = $this->createMock(Event::class);
45+
$this->templateManager->expects($this->never())->method('registerTemplateFileCreator');
46+
$listener->handle($event);
47+
}
48+
49+
public function testHandleDoesNotRegisterIfPermissionOrCapabilitiesMissing() {
50+
$event = $this->createMock(RegisterTemplateCreatorEvent::class);
51+
$event->method('getTemplateManager')->willReturn($this->templateManager);
52+
$this->permissionManager->method('isEnabledForUser')->willReturn(false);
53+
$this->capabilitiesService->method('getCapabilities')->willReturn([]);
54+
55+
$listener = new RegisterTemplateFileCreatorListener(
56+
$this->l10n,
57+
$this->config,
58+
$this->appManager,
59+
$this->capabilitiesService,
60+
$this->permissionManager
61+
);
62+
$this->templateManager->expects($this->never())->method('registerTemplateFileCreator');
63+
$listener->handle($event);
64+
}
65+
66+
public function testHandleRegistersTemplateFileCreators() {
67+
$event = $this->createMock(RegisterTemplateCreatorEvent::class);
68+
$event->method('getTemplateManager')->willReturn($this->templateManager);
69+
$this->permissionManager->method('isEnabledForUser')->willReturn(true);
70+
$this->capabilitiesService->method('getCapabilities')->willReturn(['something']);
71+
$this->capabilitiesService->method('hasDrawSupport')->willReturn(true);
72+
$this->config->method('getAppValue')->willReturn('ooxml');
73+
$this->appManager->method('getAppPath')->willReturn('/tmp');
74+
75+
$this->templateManager->expects($this->exactly(4))->method('registerTemplateFileCreator');
76+
77+
$listener = new RegisterTemplateFileCreatorListener(
78+
$this->l10n,
79+
$this->config,
80+
$this->appManager,
81+
$this->capabilitiesService,
82+
$this->permissionManager
83+
);
84+
$listener->handle($event);
85+
}
86+
87+
public function testHandleRegistersWithoutDrawSupport() {
88+
$event = $this->createMock(RegisterTemplateCreatorEvent::class);
89+
$event->method('getTemplateManager')->willReturn($this->templateManager);
90+
$this->permissionManager->method('isEnabledForUser')->willReturn(true);
91+
$this->capabilitiesService->method('getCapabilities')->willReturn(['something']);
92+
$this->capabilitiesService->method('hasDrawSupport')->willReturn(false);
93+
$this->config->method('getAppValue')->willReturn('ooxml');
94+
$this->appManager->method('getAppPath')->willReturn('/tmp');
95+
96+
$this->templateManager->expects($this->exactly(3))->method('registerTemplateFileCreator');
97+
98+
$listener = new RegisterTemplateFileCreatorListener(
99+
$this->l10n,
100+
$this->config,
101+
$this->appManager,
102+
$this->capabilitiesService,
103+
$this->permissionManager
104+
);
105+
$listener->handle($event);
106+
}
107+
}

0 commit comments

Comments
 (0)