aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Steinmetz <richard@steinmetz.cloud>2025-04-28 10:15:35 +0200
committerRichard Steinmetz <richard@steinmetz.cloud>2025-04-28 10:15:35 +0200
commit3aa1feba41898681abbfd8aa8a0ae090fde2fe95 (patch)
tree174e9d1c42298c35c1c1c459b8e2b08cb315dea0
parente5676ce0a93dc6e93208ec2133bab9d0481550c4 (diff)
downloadnextcloud-server-fix/default-contact-error-verbosity.tar.gz
nextcloud-server-fix/default-contact-error-verbosity.zip
fix: don't log error when default contact template does not existfix/default-contact-error-verbosity
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
-rw-r--r--apps/dav/lib/Service/DefaultContactService.php5
-rw-r--r--apps/dav/tests/unit/Service/DefaultContactServiceTest.php25
2 files changed, 21 insertions, 9 deletions
diff --git a/apps/dav/lib/Service/DefaultContactService.php b/apps/dav/lib/Service/DefaultContactService.php
index 193f3b285c6..9d788b2f129 100644
--- a/apps/dav/lib/Service/DefaultContactService.php
+++ b/apps/dav/lib/Service/DefaultContactService.php
@@ -10,15 +10,14 @@ declare(strict_types=1);
namespace OCA\DAV\Service;
use OCA\DAV\CardDAV\CardDavBackend;
-use OCP\App\IAppManager;
use OCP\Files\AppData\IAppDataFactory;
+use OCP\Files\NotFoundException;
use Psr\Log\LoggerInterface;
use Symfony\Component\Uid\Uuid;
class DefaultContactService {
public function __construct(
private CardDavBackend $cardDav,
- private IAppManager $appManager,
private IAppDataFactory $appDataFactory,
private LoggerInterface $logger,
) {
@@ -30,6 +29,8 @@ class DefaultContactService {
$folder = $appData->getFolder('defaultContact');
$defaultContactFile = $folder->getFile('defaultContact.vcf');
$data = $defaultContactFile->getContent();
+ } catch (NotFoundException $e) {
+ return;
} catch (\Exception $e) {
$this->logger->error('Couldn\'t get default contact file', ['exception' => $e]);
return;
diff --git a/apps/dav/tests/unit/Service/DefaultContactServiceTest.php b/apps/dav/tests/unit/Service/DefaultContactServiceTest.php
index 9540e77ce6c..18d76195f3c 100644
--- a/apps/dav/tests/unit/Service/DefaultContactServiceTest.php
+++ b/apps/dav/tests/unit/Service/DefaultContactServiceTest.php
@@ -11,7 +11,6 @@ namespace OCA\DAV\Tests\Unit\Service;
use OCA\DAV\CardDAV\CardDavBackend;
use OCA\DAV\Service\DefaultContactService;
-use OCP\App\IAppManager;
use OCP\Files\AppData\IAppDataFactory;
use OCP\Files\IAppData;
use OCP\Files\NotFoundException;
@@ -25,7 +24,6 @@ use Test\TestCase;
class DefaultContactServiceTest extends TestCase {
private DefaultContactService $service;
private MockObject|CardDavBackend $cardDav;
- private MockObject|IAppManager $appManager;
private MockObject|IAppDataFactory $appDataFactory;
private MockObject|LoggerInterface $logger;
@@ -33,13 +31,11 @@ class DefaultContactServiceTest extends TestCase {
parent::setUp();
$this->cardDav = $this->createMock(CardDavBackend::class);
- $this->appManager = $this->createMock(IAppManager::class);
$this->appDataFactory = $this->createMock(IAppDataFactory::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->service = new DefaultContactService(
$this->cardDav,
- $this->appManager,
$this->appDataFactory,
$this->logger
);
@@ -79,7 +75,7 @@ class DefaultContactServiceTest extends TestCase {
$folder->method('getFile')->willReturn($file);
$appData->method('getFolder')->willReturn($folder);
$this->appDataFactory->method('get')->willReturn($appData);
-
+
$capturedCardData = null;
$this->cardDav->expects($this->once())
->method('createCard')
@@ -92,9 +88,9 @@ class DefaultContactServiceTest extends TestCase {
}),
$this->anything()
)->willReturn(null);
-
+
$this->service->createDefaultContact(123);
-
+
$vcard = \Sabre\VObject\Reader::read($capturedCardData);
$this->assertNotEquals($originalUid, $vcard->UID->getValue());
$this->assertTrue(Uuid::isValid($vcard->UID->getValue()));
@@ -106,6 +102,21 @@ class DefaultContactServiceTest extends TestCase {
$appData->method('getFolder')->willThrowException(new NotFoundException());
$this->appDataFactory->method('get')->willReturn($appData);
+ $this->logger->expects($this->never())
+ ->method('error');
+ $this->cardDav->expects($this->never())
+ ->method('createCard');
+
+ $this->service->createDefaultContact(123);
+ }
+
+ public function testDefaultContactFileException(): void {
+ $appData = $this->createMock(IAppData::class);
+ $appData->method('getFolder')->willThrowException(new \Exception());
+ $this->appDataFactory->method('get')->willReturn($appData);
+
+ $this->logger->expects($this->once())
+ ->method('error');
$this->cardDav->expects($this->never())
->method('createCard');