• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

LibreSign / libresign / 28239333371

26 Jun 2026 12:54PM UTC coverage: 59.15%. First build
28239333371

Pull #7070

github

web-flow
Merge 77a61e7d3 into e2c998e26
Pull Request #7070: feat: setup check implementation

346 of 374 new or added lines in 12 files covered. (92.51%)

11371 of 19224 relevant lines covered (59.15%)

7.08 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

78.57
/lib/Service/SetupCheckResultService.php
1
<?php
2

3
declare(strict_types=1);
4
/**
5
 * SPDX-FileCopyrightText: 2026 LibreCode coop and contributors
6
 * SPDX-License-Identifier: AGPL-3.0-or-later
7
 */
8

9
namespace OCA\Libresign\Service;
10

11
use OCA\Libresign\Handler\CertificateEngine\CertificateEngineFactory;
12
use OCA\Libresign\Helper\ConfigureCheckHelper;
13
use OCA\Libresign\Service\SetupCheck\ConfigureCheckResult;
14
use OCA\Libresign\SetupCheck\ImagickSetupCheck;
15
use OCA\Libresign\SetupCheck\JavaSetupCheck;
16
use OCA\Libresign\SetupCheck\JSignPdfSetupCheck;
17
use OCA\Libresign\SetupCheck\PDFtkSetupCheck;
18
use OCA\Libresign\SetupCheck\PopplerSetupCheck;
19
use OCP\SetupCheck\ISetupCheck;
20

21
class SetupCheckResultService {
22

23
        public function __construct(
24
                private CertificateEngineFactory $certificateEngineFactory,
25
                private JavaSetupCheck $javaSetupCheck,
26
                private JSignPdfSetupCheck $jSignPdfSetupCheck,
27
                private PDFtkSetupCheck $pdftkSetupCheck,
28
                private PopplerSetupCheck $popplerSetupCheck,
29
                private ImagickSetupCheck $imagickSetupCheck,
30
        ) {
31
        }
13✔
32

33
        /**
34
         * @return list<ConfigureCheckResult>
35
         */
36
        public function getFormattedChecks(): array {
37
                return array_merge(
6✔
38
                        $this->getBinaryChecks(),
6✔
39
                        $this->getCertificateEngineChecks(),
6✔
40
                );
6✔
41
        }
42

43
        /**
44
         * @return list<ConfigureCheckResult>
45
         */
46
        private function getBinaryChecks(): array {
47
                /** @var array<string, ISetupCheck> $checks */
48
                $checks = [
6✔
49
                        'java' => $this->javaSetupCheck,
6✔
50
                        'jsignpdf' => $this->jSignPdfSetupCheck,
6✔
51
                        'pdftk' => $this->pdftkSetupCheck,
6✔
52
                        'poppler' => $this->popplerSetupCheck,
6✔
53
                        'imagick' => $this->imagickSetupCheck,
6✔
54
                ];
6✔
55

56
                $formatted = [];
6✔
57
                foreach ($checks as $resource => $check) {
6✔
58
                        $result = $check->run();
6✔
59
                        $formatted[] = new ConfigureCheckResult(
6✔
60
                                $this->mapSeverityToStatus($result->getSeverity()),
6✔
61
                                $resource,
6✔
62
                                (string)$result->getDescription(),
6✔
63
                                $result->getLinkToDoc() ?? '',
6✔
64
                                $check->getCategory(),
6✔
65
                        );
6✔
66
                }
67

68
                return $formatted;
6✔
69
        }
70

71
        /**
72
         * @return list<ConfigureCheckResult>
73
         */
74
        private function getCertificateEngineChecks(): array {
75
                $engineChecks = $this->certificateEngineFactory->getEngine()->configureCheck();
6✔
76

77
                $formatted = [];
6✔
78
                foreach ($engineChecks as $check) {
6✔
NEW
79
                        if (!$check instanceof ConfigureCheckHelper) {
×
NEW
80
                                continue;
×
81
                        }
NEW
82
                        $formatted[] = new ConfigureCheckResult(
×
NEW
83
                                $check->getStatus(),
×
NEW
84
                                $check->getResource(),
×
NEW
85
                                $check->getMessage(),
×
NEW
86
                                $check->getTip(),
×
NEW
87
                                'security',
×
NEW
88
                        );
×
89
                }
90

91
                return $formatted;
6✔
92
        }
93

94
        /**
95
         * Map SetupResult severity to legacy status string.
96
         *
97
         * @param string $severity (error, warning, success)
98
         * @return 'error'|'info'|'success'
99
         */
100
        private function mapSeverityToStatus(string $severity): string {
101
                return match ($severity) {
6✔
102
                        'error' => 'error',
1✔
103
                        'warning' => 'info',
2✔
104
                        'success' => 'success',
6✔
105
                        default => 'info',
6✔
106
                };
6✔
107
        }
108
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc