summaryrefslogtreecommitdiffstats
path: root/apps/dav
diff options
context:
space:
mode:
authorJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2018-11-02 14:20:53 +0100
committerJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2018-11-02 14:20:53 +0100
commit66624cfe0a56fb4ca14c4d15ce62ddf0a389078d (patch)
tree541aa7defdfd58a55d5167dc5edec2f1a55b638d /apps/dav
parent98f30c2dab24f0ab80015ef7849a7d8875651f6f (diff)
downloadnextcloud-server-66624cfe0a56fb4ca14c4d15ce62ddf0a389078d.tar.gz
nextcloud-server-66624cfe0a56fb4ca14c4d15ce62ddf0a389078d.zip
Phpunit fix
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Diffstat (limited to 'apps/dav')
-rw-r--r--apps/dav/lib/CardDAV/CardDavBackend.php14
-rw-r--r--apps/dav/tests/unit/CardDAV/CardDavBackendTest.php47
2 files changed, 36 insertions, 25 deletions
diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php
index 80a3fe2f11f..a8907f631cd 100644
--- a/apps/dav/lib/CardDAV/CardDavBackend.php
+++ b/apps/dav/lib/CardDAV/CardDavBackend.php
@@ -1138,12 +1138,16 @@ class CardDavBackend implements BackendInterface, SyncSupport {
* @throws BadRequest if no UID is available
*/
private function getUID($cardData) {
- $vCard = Reader::read($cardData);
- if ($vCard->UID) {
- $uid = $vCard->UID->getValue();
- return $uid;
+ if ($cardData != '') {
+ $vCard = Reader::read($cardData);
+ if ($vCard->UID) {
+ $uid = $vCard->UID->getValue();
+ return $uid;
+ }
+ // should already be handled, but just in case
+ throw new BadRequest('vCards on CardDAV servers MUST have a UID property');
}
// should already be handled, but just in case
- throw new BadRequest('vCards on CardDAV servers MUST have a UID property');
+ throw new BadRequest('vCard can not be empty');
}
}
diff --git a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php
index 816ba670990..2f5287df82c 100644
--- a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php
+++ b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php
@@ -87,6 +87,14 @@ class CardDavBackendTest extends TestCase {
const UNIT_TEST_USER1 = 'principals/users/carddav-unit-test1';
const UNIT_TEST_GROUP = 'principals/groups/carddav-unit-test-group';
+ private $vcardTest = 'BEGIN:VCARD'.PHP_EOL.
+ 'VERSION:3.0'.PHP_EOL.
+ 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN'.PHP_EOL.
+ 'UID:Test'.PHP_EOL.
+ 'FN:Test'.PHP_EOL.
+ 'N:Test;;;;'.PHP_EOL.
+ 'END:VCARD';
+
public function setUp() {
parent::setUp();
@@ -121,7 +129,6 @@ class CardDavBackendTest extends TestCase {
$query = $this->db->getQueryBuilder();
$query->delete('cards')->execute();
-
$this->tearDown();
}
@@ -217,8 +224,8 @@ class CardDavBackendTest extends TestCase {
$uri = $this->getUniqueID('card');
// updateProperties is expected twice, once for createCard and once for updateCard
- $backend->expects($this->at(0))->method('updateProperties')->with($bookId, $uri, '');
- $backend->expects($this->at(1))->method('updateProperties')->with($bookId, $uri, '***');
+ $backend->expects($this->at(0))->method('updateProperties')->with($bookId, $uri, $this->vcardTest);
+ $backend->expects($this->at(1))->method('updateProperties')->with($bookId, $uri, $this->vcardTest);
// Expect event
$this->dispatcher->expects($this->at(0))
@@ -226,16 +233,16 @@ class CardDavBackendTest extends TestCase {
->with('\OCA\DAV\CardDAV\CardDavBackend::createCard', $this->callback(function(GenericEvent $e) use ($bookId, $uri) {
return $e->getArgument('addressBookId') === $bookId &&
$e->getArgument('cardUri') === $uri &&
- $e->getArgument('cardData') === '';
+ $e->getArgument('cardData') === $this->vcardTest;
}));
// create a card
- $backend->createCard($bookId, $uri, '');
+ $backend->createCard($bookId, $uri, $this->vcardTest);
// get all the cards
$cards = $backend->getCards($bookId);
$this->assertEquals(1, count($cards));
- $this->assertEquals('', $cards[0]['carddata']);
+ $this->assertEquals($this->vcardTest, $cards[0]['carddata']);
// get the cards
$card = $backend->getCard($bookId, $uri);
@@ -245,7 +252,7 @@ class CardDavBackendTest extends TestCase {
$this->assertArrayHasKey('lastmodified', $card);
$this->assertArrayHasKey('etag', $card);
$this->assertArrayHasKey('size', $card);
- $this->assertEquals('', $card['carddata']);
+ $this->assertEquals($this->vcardTest, $card['carddata']);
// Expect event
$this->dispatcher->expects($this->at(0))
@@ -253,13 +260,13 @@ class CardDavBackendTest extends TestCase {
->with('\OCA\DAV\CardDAV\CardDavBackend::updateCard', $this->callback(function(GenericEvent $e) use ($bookId, $uri) {
return $e->getArgument('addressBookId') === $bookId &&
$e->getArgument('cardUri') === $uri &&
- $e->getArgument('cardData') === '***';
+ $e->getArgument('cardData') === $this->vcardTest;
}));
// update the card
- $backend->updateCard($bookId, $uri, '***');
+ $backend->updateCard($bookId, $uri, $this->vcardTest);
$card = $backend->getCard($bookId, $uri);
- $this->assertEquals('***', $card['carddata']);
+ $this->assertEquals($this->vcardTest, $card['carddata']);
// Expect event
$this->dispatcher->expects($this->at(0))
@@ -290,18 +297,18 @@ class CardDavBackendTest extends TestCase {
// create a card
$uri0 = $this->getUniqueID('card');
- $this->backend->createCard($bookId, $uri0, '');
+ $this->backend->createCard($bookId, $uri0, $this->vcardTest);
$uri1 = $this->getUniqueID('card');
- $this->backend->createCard($bookId, $uri1, '');
+ $this->backend->createCard($bookId, $uri1, $this->vcardTest);
$uri2 = $this->getUniqueID('card');
- $this->backend->createCard($bookId, $uri2, '');
+ $this->backend->createCard($bookId, $uri2, $this->vcardTest);
// get all the cards
$cards = $this->backend->getCards($bookId);
$this->assertEquals(3, count($cards));
- $this->assertEquals('', $cards[0]['carddata']);
- $this->assertEquals('', $cards[1]['carddata']);
- $this->assertEquals('', $cards[2]['carddata']);
+ $this->assertEquals($this->vcardTest, $cards[0]['carddata']);
+ $this->assertEquals($this->vcardTest, $cards[1]['carddata']);
+ $this->assertEquals($this->vcardTest, $cards[2]['carddata']);
// get the cards
$cards = $this->backend->getMultipleCards($bookId, [$uri1, $uri2]);
@@ -312,7 +319,7 @@ class CardDavBackendTest extends TestCase {
$this->assertArrayHasKey('lastmodified', $card);
$this->assertArrayHasKey('etag', $card);
$this->assertArrayHasKey('size', $card);
- $this->assertEquals('', $card['carddata']);
+ $this->assertEquals($this->vcardTest, $card['carddata']);
}
// delete the card
@@ -357,7 +364,7 @@ class CardDavBackendTest extends TestCase {
->method('purgeProperties');
// create a card
- $this->backend->createCard($bookId, $uri, '');
+ $this->backend->createCard($bookId, $uri, $this->vcardTest);
// delete the card
$this->assertTrue($this->backend->deleteCard($bookId, $uri));
@@ -380,7 +387,7 @@ class CardDavBackendTest extends TestCase {
// add a change
$uri0 = $this->getUniqueID('card');
- $this->backend->createCard($bookId, $uri0, '');
+ $this->backend->createCard($bookId, $uri0, $this->vcardTest);
// look for changes
$changes = $this->backend->getChangesForAddressBook($bookId, $syncToken, 1);
@@ -683,7 +690,7 @@ class CardDavBackendTest extends TestCase {
}
$result = $this->backend->getContact(0, 'uri0');
- $this->assertSame(7, count($result));
+ $this->assertSame(8, count($result));
$this->assertSame(0, (int)$result['addressbookid']);
$this->assertSame('uri0', $result['uri']);
$this->assertSame(5489543, (int)$result['lastmodified']);