From 66624cfe0a56fb4ca14c4d15ce62ddf0a389078d Mon Sep 17 00:00:00 2001 From: =?utf8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Fri, 2 Nov 2018 14:20:53 +0100 Subject: [PATCH] Phpunit fix MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- apps/dav/lib/CardDAV/CardDavBackend.php | 14 ++++-- .../tests/unit/CardDAV/CardDavBackendTest.php | 47 +++++++++++-------- 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']); -- 2.39.5