summaryrefslogtreecommitdiffstats
path: root/apps/dav/tests
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2015-11-05 16:46:37 +0100
committerThomas Müller <thomas.mueller@tmit.eu>2015-11-19 11:34:31 +0100
commit4eb15885c9a7e930670ed58af2e566c1928bc059 (patch)
tree14f21c884aad92fba5fe00fc31429b90eca42d08 /apps/dav/tests
parent58eaeb267c60ed2aed4b5592a28d16f5453bb773 (diff)
downloadnextcloud-server-4eb15885c9a7e930670ed58af2e566c1928bc059.tar.gz
nextcloud-server-4eb15885c9a7e930670ed58af2e566c1928bc059.zip
Addressbook sharing added based on a simplified approach which is based on calendar sharing standard
Diffstat (limited to 'apps/dav/tests')
-rw-r--r--apps/dav/tests/misc/sharing.xml7
-rw-r--r--apps/dav/tests/unit/carddav/carddavbackendtest.php43
2 files changed, 48 insertions, 2 deletions
diff --git a/apps/dav/tests/misc/sharing.xml b/apps/dav/tests/misc/sharing.xml
new file mode 100644
index 00000000000..8771256ce79
--- /dev/null
+++ b/apps/dav/tests/misc/sharing.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" ?>
+ <CS:share xmlns:D="DAV:" xmlns:CS="urn:ietf:params:xml:ns:carddav">
+ <CS:set>
+ <D:href>principal:principals/admin</D:href>
+ <CS:read-write />
+ </CS:set>
+ </CS:share>
diff --git a/apps/dav/tests/unit/carddav/carddavbackendtest.php b/apps/dav/tests/unit/carddav/carddavbackendtest.php
index 79ef36d8097..d76db5a91e2 100644
--- a/apps/dav/tests/unit/carddav/carddavbackendtest.php
+++ b/apps/dav/tests/unit/carddav/carddavbackendtest.php
@@ -24,6 +24,13 @@ use OCA\DAV\CardDAV\CardDavBackend;
use Sabre\DAV\PropPatch;
use Test\TestCase;
+/**
+ * Class CardDavBackendTest
+ *
+ * @group DB
+ *
+ * @package OCA\DAV\Tests\Unit\CardDAV
+ */
class CardDavBackendTest extends TestCase {
/** @var CardDavBackend */
@@ -31,12 +38,20 @@ class CardDavBackendTest extends TestCase {
const UNIT_TEST_USER = 'carddav-unit-test';
-
public function setUp() {
parent::setUp();
+ $principal = $this->getMockBuilder('OCA\DAV\Connector\Sabre\Principal')
+ ->disableOriginalConstructor()
+ ->setMethods(['getPrincipalByPath'])
+ ->getMock();
+ $principal->method('getPrincipalByPath')
+ ->willReturn([
+ 'uri' => 'principals/best-friend'
+ ]);
+
$db = \OC::$server->getDatabaseConnection();
- $this->backend = new CardDavBackend($db);
+ $this->backend = new CardDavBackend($db, $principal);
$this->tearDown();
}
@@ -178,4 +193,28 @@ class CardDavBackendTest extends TestCase {
$changes = $this->backend->getChangesForAddressBook($bookId, $syncToken, 1);
$this->assertEquals($uri0, $changes['added'][0]);
}
+
+ public function testSharing() {
+ $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
+ $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
+ $this->assertEquals(1, count($books));
+
+ $this->backend->updateShares('Example', [['href' => 'principal:principals/best-friend']], []);
+
+ $shares = $this->backend->getShares('Example');
+ $this->assertEquals(1, count($shares));
+
+ $books = $this->backend->getAddressBooksForUser('principals/best-friend');
+ $this->assertEquals(1, count($books));
+
+ $this->backend->updateShares('Example', [], [['href' => 'principal:principals/best-friend']]);
+
+ $shares = $this->backend->getShares('Example');
+ $this->assertEquals(0, count($shares));
+
+ $books = $this->backend->getAddressBooksForUser('principals/best-friend');
+ $this->assertEquals(0, count($books));
+
+
+ }
}