aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/sabre/dav/tests/Sabre/CardDAV/Backend
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2013-10-21 15:46:31 -0700
committerfriendica <info@friendica.com>2013-10-21 15:46:31 -0700
commitb35122f7a6ad42756c35bb60ba1f06c3dcd45c77 (patch)
treeccdf373ce6475d264778523259cc32899b732fe7 /vendor/sabre/dav/tests/Sabre/CardDAV/Backend
parente3504df514d306cfe6b83e44a11f550664564af4 (diff)
downloadvolse-hubzilla-b35122f7a6ad42756c35bb60ba1f06c3dcd45c77.tar.gz
volse-hubzilla-b35122f7a6ad42756c35bb60ba1f06c3dcd45c77.tar.bz2
volse-hubzilla-b35122f7a6ad42756c35bb60ba1f06c3dcd45c77.zip
add sabre (1.8.x) via composer in the !@#$ place it wants to be
Diffstat (limited to 'vendor/sabre/dav/tests/Sabre/CardDAV/Backend')
-rw-r--r--vendor/sabre/dav/tests/Sabre/CardDAV/Backend/AbstractPDOTest.php249
-rw-r--r--vendor/sabre/dav/tests/Sabre/CardDAV/Backend/Mock.php130
-rw-r--r--vendor/sabre/dav/tests/Sabre/CardDAV/Backend/PDOMySQLTest.php60
-rw-r--r--vendor/sabre/dav/tests/Sabre/CardDAV/Backend/PDOSqliteTest.php69
4 files changed, 508 insertions, 0 deletions
diff --git a/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/AbstractPDOTest.php b/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/AbstractPDOTest.php
new file mode 100644
index 000000000..623188d32
--- /dev/null
+++ b/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/AbstractPDOTest.php
@@ -0,0 +1,249 @@
+<?php
+
+namespace Sabre\CardDAV\Backend;
+
+use Sabre\CardDAV;
+
+abstract class AbstractPDOTest extends \PHPUnit_Framework_TestCase {
+
+ /**
+ * @var CardDAV\Backend\PDO
+ */
+ protected $backend;
+
+ /**
+ * @abstract
+ * @return PDO
+ */
+ abstract function getPDO();
+
+ public function setUp() {
+
+ $this->backend = new PDO($this->getPDO());
+
+ }
+
+ public function testGetAddressBooksForUser() {
+
+ $result = $this->backend->getAddressBooksForUser('principals/user1');
+
+ $expected = array(
+ array(
+ 'id' => 1,
+ 'uri' => 'book1',
+ 'principaluri' => 'principals/user1',
+ '{DAV:}displayname' => 'book1',
+ '{' . CardDAV\Plugin::NS_CARDDAV . '}addressbook-description' => 'addressbook 1',
+ '{http://calendarserver.org/ns/}getctag' => 1,
+ '{' . CardDAV\Plugin::NS_CARDDAV . '}supported-address-data' => new CardDAV\Property\SupportedAddressData(),
+ )
+ );
+
+ $this->assertEquals($expected, $result);
+
+ }
+
+ public function testUpdateAddressBookInvalidProp() {
+
+ $result = $this->backend->updateAddressBook(1, array(
+ '{DAV:}displayname' => 'updated',
+ '{' . CardDAV\Plugin::NS_CARDDAV . '}addressbook-description' => 'updated',
+ '{DAV:}foo' => 'bar',
+ ));
+
+ $this->assertFalse($result);
+
+ $result = $this->backend->getAddressBooksForUser('principals/user1');
+
+ $expected = array(
+ array(
+ 'id' => 1,
+ 'uri' => 'book1',
+ 'principaluri' => 'principals/user1',
+ '{DAV:}displayname' => 'book1',
+ '{' . CardDAV\Plugin::NS_CARDDAV . '}addressbook-description' => 'addressbook 1',
+ '{http://calendarserver.org/ns/}getctag' => 1,
+ '{' . CardDAV\Plugin::NS_CARDDAV . '}supported-address-data' => new CardDAV\Property\SupportedAddressData(),
+ )
+ );
+
+ $this->assertEquals($expected, $result);
+
+ }
+
+ public function testUpdateAddressBookNoProps() {
+
+ $result = $this->backend->updateAddressBook(1, array());
+
+ $this->assertFalse($result);
+
+ $result = $this->backend->getAddressBooksForUser('principals/user1');
+
+ $expected = array(
+ array(
+ 'id' => 1,
+ 'uri' => 'book1',
+ 'principaluri' => 'principals/user1',
+ '{DAV:}displayname' => 'book1',
+ '{' . CardDAV\Plugin::NS_CARDDAV . '}addressbook-description' => 'addressbook 1',
+ '{http://calendarserver.org/ns/}getctag' => 1,
+ '{' . CardDAV\Plugin::NS_CARDDAV . '}supported-address-data' => new CardDAV\Property\SupportedAddressData(),
+ )
+ );
+
+ $this->assertEquals($expected, $result);
+
+
+ }
+
+ public function testUpdateAddressBookSuccess() {
+
+ $result = $this->backend->updateAddressBook(1, array(
+ '{DAV:}displayname' => 'updated',
+ '{' . CardDAV\Plugin::NS_CARDDAV . '}addressbook-description' => 'updated',
+ ));
+
+ $this->assertTrue($result);
+
+ $result = $this->backend->getAddressBooksForUser('principals/user1');
+
+ $expected = array(
+ array(
+ 'id' => 1,
+ 'uri' => 'book1',
+ 'principaluri' => 'principals/user1',
+ '{DAV:}displayname' => 'updated',
+ '{' . CardDAV\Plugin::NS_CARDDAV . '}addressbook-description' => 'updated',
+ '{http://calendarserver.org/ns/}getctag' => 2,
+ '{' . CardDAV\Plugin::NS_CARDDAV . '}supported-address-data' => new CardDAV\Property\SupportedAddressData(),
+ )
+ );
+
+ $this->assertEquals($expected, $result);
+
+
+ }
+
+ public function testDeleteAddressBook() {
+
+ $this->backend->deleteAddressBook(1);
+
+ $this->assertEquals(array(), $this->backend->getAddressBooksForUser('principals/user1'));
+
+ }
+
+ /**
+ * @expectedException Sabre\DAV\Exception\BadRequest
+ */
+ public function testCreateAddressBookUnsupportedProp() {
+
+ $this->backend->createAddressBook('principals/user1','book2', array(
+ '{DAV:}foo' => 'bar',
+ ));
+
+ }
+
+ public function testCreateAddressBookSuccess() {
+
+ $this->backend->createAddressBook('principals/user1','book2', array(
+ '{DAV:}displayname' => 'book2',
+ '{' . CardDAV\Plugin::NS_CARDDAV . '}addressbook-description' => 'addressbook 2',
+ ));
+
+ $expected = array(
+ array(
+ 'id' => 1,
+ 'uri' => 'book1',
+ 'principaluri' => 'principals/user1',
+ '{DAV:}displayname' => 'book1',
+ '{' . CardDAV\Plugin::NS_CARDDAV . '}addressbook-description' => 'addressbook 1',
+ '{http://calendarserver.org/ns/}getctag' => 1,
+ '{' . CardDAV\Plugin::NS_CARDDAV . '}supported-address-data' => new CardDAV\Property\SupportedAddressData(),
+ ),
+ array(
+ 'id' => 2,
+ 'uri' => 'book2',
+ 'principaluri' => 'principals/user1',
+ '{DAV:}displayname' => 'book2',
+ '{' . CardDAV\Plugin::NS_CARDDAV . '}addressbook-description' => 'addressbook 2',
+ '{http://calendarserver.org/ns/}getctag' => 1,
+ '{' . CardDAV\Plugin::NS_CARDDAV . '}supported-address-data' => new CardDAV\Property\SupportedAddressData(),
+ )
+ );
+ $result = $this->backend->getAddressBooksForUser('principals/user1');
+ $this->assertEquals($expected, $result);
+
+ }
+
+ public function testGetCards() {
+
+ $result = $this->backend->getCards(1);
+
+ $expected = array(
+ array(
+ 'id' => 1,
+ 'uri' => 'card1',
+ 'carddata' => 'card1',
+ 'lastmodified' => 0,
+ )
+ );
+
+ $this->assertEquals($expected, $result);
+
+ }
+
+ public function testGetCard() {
+
+ $result = $this->backend->getCard(1,'card1');
+
+ $expected = array(
+ 'id' => 1,
+ 'uri' => 'card1',
+ 'carddata' => 'card1',
+ 'lastmodified' => 0,
+ );
+
+ $this->assertEquals($expected, $result);
+
+ }
+
+ /**
+ * @depends testGetCard
+ */
+ public function testCreateCard() {
+
+ $result = $this->backend->createCard(1, 'card2', 'data2');
+ $this->assertEquals('"' . md5('data2') . '"', $result);
+ $result = $this->backend->getCard(1,'card2');
+ $this->assertEquals(2, $result['id']);
+ $this->assertEquals('card2', $result['uri']);
+ $this->assertEquals('data2', $result['carddata']);
+
+ }
+
+ /**
+ * @depends testGetCard
+ */
+ public function testUpdateCard() {
+
+ $result = $this->backend->updateCard(1, 'card1', 'newdata');
+ $this->assertEquals('"' . md5('newdata') . '"', $result);
+
+ $result = $this->backend->getCard(1,'card1');
+ $this->assertEquals(1, $result['id']);
+ $this->assertEquals('newdata', $result['carddata']);
+
+ }
+
+ /**
+ * @depends testGetCard
+ */
+ public function testDeleteCard() {
+
+ $this->backend->deleteCard(1, 'card1');
+ $result = $this->backend->getCard(1,'card1');
+ $this->assertFalse($result);
+
+ }
+}
+
diff --git a/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/Mock.php b/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/Mock.php
new file mode 100644
index 000000000..ab7ac4e6a
--- /dev/null
+++ b/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/Mock.php
@@ -0,0 +1,130 @@
+<?php
+
+namespace Sabre\CardDAV\Backend;
+
+class Mock extends AbstractBackend {
+
+ public $addressBooks;
+ public $cards;
+
+ function __construct($addressBooks = null, $cards = null) {
+
+ $this->addressBooks = $addressBooks;
+ $this->cards = $cards;
+
+ if (is_null($this->addressBooks)) {
+ $this->addressBooks = array(
+ array(
+ 'id' => 'foo',
+ 'uri' => 'book1',
+ 'principaluri' => 'principals/user1',
+ '{DAV:}displayname' => 'd-name',
+ ),
+ );
+
+ $card2 = fopen('php://memory','r+');
+ fwrite($card2,"BEGIN:VCARD\nVERSION:3.0\nUID:45678\nEND:VCARD");
+ rewind($card2);
+ $this->cards = array(
+ 'foo' => array(
+ 'card1' => "BEGIN:VCARD\nVERSION:3.0\nUID:12345\nEND:VCARD",
+ 'card2' => $card2,
+ ),
+ );
+ }
+
+ }
+
+
+ function getAddressBooksForUser($principalUri) {
+
+ $books = array();
+ foreach($this->addressBooks as $book) {
+ if ($book['principaluri'] === $principalUri) {
+ $books[] = $book;
+ }
+ }
+ return $books;
+
+ }
+
+ function updateAddressBook($addressBookId, array $mutations) {
+
+ foreach($this->addressBooks as &$book) {
+ if ($book['id'] !== $addressBookId)
+ continue;
+
+ foreach($mutations as $key=>$value) {
+ $book[$key] = $value;
+ }
+ return true;
+ }
+ return false;
+
+ }
+
+ function createAddressBook($principalUri, $url, array $properties) {
+
+ $this->addressBooks[] = array_merge($properties, array(
+ 'id' => $url,
+ 'uri' => $url,
+ 'principaluri' => $principalUri,
+ ));
+
+ }
+
+ function deleteAddressBook($addressBookId) {
+
+ foreach($this->addressBooks as $key=>$value) {
+ if ($value['id'] === $addressBookId)
+ unset($this->addressBooks[$key]);
+ }
+ unset($this->cards[$addressBookId]);
+
+ }
+
+ function getCards($addressBookId) {
+
+ $cards = array();
+ foreach($this->cards[$addressBookId] as $uri=>$data) {
+ $cards[] = array(
+ 'uri' => $uri,
+ 'carddata' => $data,
+ );
+ }
+ return $cards;
+
+ }
+
+ function getCard($addressBookId, $cardUri) {
+
+ if (!isset($this->cards[$addressBookId][$cardUri])) {
+ return false;
+ }
+
+ return array(
+ 'uri' => $cardUri,
+ 'carddata' => $this->cards[$addressBookId][$cardUri],
+ );
+
+ }
+
+ function createCard($addressBookId, $cardUri, $cardData) {
+
+ $this->cards[$addressBookId][$cardUri] = $cardData;
+
+ }
+
+ function updateCard($addressBookId, $cardUri, $cardData) {
+
+ $this->cards[$addressBookId][$cardUri] = $cardData;
+
+ }
+
+ function deleteCard($addressBookId, $cardUri) {
+
+ unset($this->cards[$addressBookId][$cardUri]);
+
+ }
+
+}
diff --git a/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/PDOMySQLTest.php b/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/PDOMySQLTest.php
new file mode 100644
index 000000000..b2f871f6e
--- /dev/null
+++ b/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/PDOMySQLTest.php
@@ -0,0 +1,60 @@
+<?php
+
+namespace Sabre\CardDAV\Backend;
+
+require_once 'Sabre/TestUtil.php';
+
+class PDOMySQLTest extends AbstractPDOTest {
+
+ /**
+ * @return PDO
+ */
+ public function getPDO() {
+
+ if (!SABRE_HASMYSQL) $this->markTestSkipped('MySQL driver is not available, or not properly configured');
+
+ $pdo = \Sabre\TestUtil::getMySQLDB();
+ if (!$pdo) $this->markTestSkipped('Could not connect to MySQL database');
+
+ $pdo->query("DROP TABLE IF EXISTS addressbooks");
+ $pdo->query("DROP TABLE IF EXISTS cards");
+ $pdo->query("
+CREATE TABLE addressbooks (
+ id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ principaluri VARCHAR(255),
+ displayname VARCHAR(255),
+ uri VARCHAR(100),
+ description TEXT,
+ ctag INT(11) UNSIGNED NOT NULL DEFAULT '1'
+);
+");
+
+ $pdo->query("
+INSERT INTO addressbooks
+ (principaluri, displayname, uri, description, ctag)
+VALUES
+ ('principals/user1', 'book1', 'book1', 'addressbook 1', 1);
+");
+
+ $pdo->query("
+CREATE TABLE cards (
+ id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ addressbookid INT(11) UNSIGNED NOT NULL,
+ carddata TEXT,
+ uri VARCHAR(100),
+ lastmodified INT(11) UNSIGNED
+);
+");
+
+ $pdo->query("
+INSERT INTO cards
+ (addressbookid, carddata, uri, lastmodified)
+VALUES
+ (1, 'card1', 'card1', 0);
+");
+ return $pdo;
+
+ }
+
+}
+
diff --git a/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/PDOSqliteTest.php b/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/PDOSqliteTest.php
new file mode 100644
index 000000000..a9bbb0bd1
--- /dev/null
+++ b/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/PDOSqliteTest.php
@@ -0,0 +1,69 @@
+<?php
+
+namespace Sabre\CardDAV\Backend;
+
+require_once 'Sabre/TestUtil.php';
+
+class PDOSqliteTest extends AbstractPDOTest {
+
+ function tearDown() {
+
+ if (file_exists(SABRE_TEMPDIR . '/pdobackend')) unlink(SABRE_TEMPDIR . '/pdobackend');
+ if (file_exists(SABRE_TEMPDIR . '/pdobackend2')) unlink(SABRE_TEMPDIR . '/pdobackend2');
+
+ }
+
+ /**
+ * @return PDO
+ */
+ function getPDO() {
+
+ if (!SABRE_HASSQLITE) $this->markTestSkipped('SQLite driver is not available');
+ $pdo = new \PDO('sqlite:'.SABRE_TEMPDIR.'/pdobackend');
+ $pdo->setAttribute(\PDO::ATTR_ERRMODE,\PDO::ERRMODE_EXCEPTION);
+
+ $pdo->query("DROP TABLE IF EXISTS addressbooks");
+ $pdo->query("DROP TABLE IF EXISTS cards");
+ $pdo->query("
+CREATE TABLE addressbooks (
+ id integer primary key asc,
+ principaluri text,
+ displayname text,
+ uri text,
+ description text,
+ ctag integer
+);
+
+");
+
+ $pdo->query("
+INSERT INTO addressbooks
+ (principaluri, displayname, uri, description, ctag)
+VALUES
+ ('principals/user1', 'book1', 'book1', 'addressbook 1', 1);
+");
+
+ $pdo->query("
+
+CREATE TABLE cards (
+ id integer primary key asc,
+ addressbookid integer,
+ carddata text,
+ uri text,
+ lastmodified integer
+);
+
+");
+ $pdo->query("
+INSERT INTO cards
+ (addressbookid, carddata, uri, lastmodified)
+VALUES
+ (1, 'card1', 'card1', 0);
+");
+
+ return $pdo;
+
+ }
+
+}
+