diff --git a/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php b/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php
index 768b867234c7a..ddef430c248d2 100644
--- a/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php
+++ b/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php
@@ -28,15 +28,27 @@
use OCA\DAV\CardDAV\CardDavBackend;
use OCA\DAV\CardDAV\ContactsManager;
use OCP\Contacts\IManager;
+use OCP\IConfig;
use OCP\IL10N;
use OCP\IURLGenerator;
use Test\TestCase;
class ContactsManagerTest extends TestCase {
- public function test() {
+
+ public function dataForContactsManagerTest() {
+ return [
+ ['yes'],
+ ['no']
+ ];
+ }
+
+ /**
+ * @dataProvider dataForContactsManagerTest
+ */
+ public function test(string $syncSystemAddressBook) {
/** @var IManager | \PHPUnit_Framework_MockObject_MockObject $cm */
$cm = $this->getMockBuilder(IManager::class)->disableOriginalConstructor()->getMock();
- $cm->expects($this->exactly(2))->method('registerAddressBook');
+ $cm->expects($this->exactly($syncSystemAddressBook === 'yes' ? 2 : 1))->method('registerAddressBook');
$urlGenerator = $this->getMockBuilder(IURLGenerator::class)->disableOriginalConstructor()->getMock();
/** @var CardDavBackend | \PHPUnit_Framework_MockObject_MockObject $backEnd */
$backEnd = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
@@ -45,7 +57,11 @@ public function test() {
]);
$l = $this->createMock(IL10N::class);
- $app = new ContactsManager($backEnd, $l);
+ $config = $this->createMock(IConfig::class);
+
+ $config->method('getAppValue')->with('dav', 'syncSystemAddressbook', 'yes')->willReturn($syncSystemAddressBook);
+
+ $app = new ContactsManager($backEnd, $l, $config);
$app->setupContactsProvider($cm, 'user01', $urlGenerator);
}
}
diff --git a/apps/dav/tests/unit/CardDAV/SyncServiceTest.php b/apps/dav/tests/unit/CardDAV/SyncServiceTest.php
index 7d444571fac8c..2e7d310573e4c 100644
--- a/apps/dav/tests/unit/CardDAV/SyncServiceTest.php
+++ b/apps/dav/tests/unit/CardDAV/SyncServiceTest.php
@@ -171,6 +171,19 @@ public function testUpdateAndDeleteUser($activated, $createCalls, $updateCalls,
$ss->deleteUser($user);
}
+ public function testPurgeSystemAddressBook()
+ {
+ $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
+ $logger = $this->getMockBuilder(ILogger::class)->disableOriginalConstructor()->getMock();
+ $userManager = $this->getMockBuilder(IUserManager::class)->disableOriginalConstructor()->getMock();
+ $accountManager = $this->getMockBuilder(AccountManager::class)->disableOriginalConstructor()->getMock();
+
+ $backend->expects($this->once())->method('emptyAddressBook');
+
+ $ss = new SyncService($backend, $userManager, $logger, $accountManager);
+ $ss->purgeSystemAddressBook();
+ }
+
/**
* @param int $createCount
* @param int $updateCount
diff --git a/apps/dav/tests/unit/Command/SyncSystemAddressBookTest.php b/apps/dav/tests/unit/Command/SyncSystemAddressBookTest.php
new file mode 100644
index 0000000000000..7ca71c7623690
--- /dev/null
+++ b/apps/dav/tests/unit/Command/SyncSystemAddressBookTest.php
@@ -0,0 +1,71 @@
+
+ *
+ * @author Thomas Citharel