Blame view
sources/apps/contacts/tests/lib/backend/backend_test.php
4.3 KB
|
d1bafeea1
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<?php
/**
* Copyright (c) 2013 Thomas Tanghus (thomas@tanghus.net)
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace OCA\Contacts\Backend;
use Sabre\VObject\Reader;
require_once __DIR__ .'/mock.php';
class BackendTest extends \PHPUnit_Framework_TestCase {
/**
* @var array
*/
protected $abinfo;
/**
* @var array
*/
protected $permissions = array(
\OCP\PERMISSION_READ,
\OCP\PERMISSION_CREATE,
\OCP\PERMISSION_UPDATE,
\OCP\PERMISSION_DELETE
);
/**
* @var OCA\Contacts\Backend\AbstractBackend
*/
protected $backend;
|
|
6d9380f96
|
36 |
public function setUp() {
|
|
d1bafeea1
|
37 38 39 40 |
$this->backend = new Mock('foobar');
}
|
|
6d9380f96
|
41 |
public function tearDown() {
|
|
d1bafeea1
|
42 43 |
unset($this->backend); } |
|
6d9380f96
|
44 |
public function testHasContactMethodFor() {
|
|
d1bafeea1
|
45 46 47 48 49 50 |
foreach($this->permissions as $permission) {
$this->assertTrue($this->backend->hasContactMethodFor($permission));
}
}
|
|
6d9380f96
|
51 |
public function testHasAddressBookMethodFor() {
|
|
d1bafeea1
|
52 53 54 55 56 57 |
foreach($this->permissions as $permission) {
$this->assertTrue($this->backend->hasAddressBookMethodFor($permission));
}
}
|
|
6d9380f96
|
58 |
public function testgetAddressBooksForUser() {
|
|
d1bafeea1
|
59 60 61 62 |
$this->assertEquals(1, count($this->backend->getAddressBooksForUser())); } |
|
6d9380f96
|
63 |
public function testDeleteAddressBook() {
|
|
d1bafeea1
|
64 65 66 67 68 |
$this->assertTrue($this->backend->deleteAddressBook('foo'));
$this->assertEquals(array(), $this->backend->addressBooks);
}
|
|
6d9380f96
|
69 |
public function testCreateAddressBook() {
|
|
d1bafeea1
|
70 71 72 73 74 75 76 77 78 79 80 81 |
$id = $this->backend->createAddressBook(array('displayname' => 'bar'));
$this->assertNotEquals(false, $id);
$this->assertEquals(2, count($this->backend->getAddressBooksForUser()));
$book = $this->backend->getAddressBook($id);
$this->assertEquals('bar', $book['displayname']);
}
|
|
6d9380f96
|
82 |
public function testCreateAddressBookFail() {
|
|
d1bafeea1
|
83 |
|
|
6d9380f96
|
84 |
// displayname must be provided. |
|
d1bafeea1
|
85 86 87 88 89 |
$id = $this->backend->createAddressBook(array('description' => 'foo bar'));
$this->assertFalse($id);
}
|
|
6d9380f96
|
90 |
public function testUpdateAddressBook() {
|
|
d1bafeea1
|
91 92 93 94 95 96 97 98 99 100 |
$this->assertTrue(
$this->backend->updateAddressBook('foo', array('displayname' => 'bar'))
);
$this->assertEquals('bar', $this->backend->addressBooks[0]['displayname']);
return $this->backend;
}
|
|
6d9380f96
|
101 |
public function testUpdateAddressBookFail() {
|
|
d1bafeea1
|
102 103 104 105 106 107 108 109 110 111 |
$this->assertFalse(
$this->backend->updateAddressBook('foo', array('description' => 'foo bar'))
);
}
/**
* @depends testUpdateAddressBook
*/
|
|
6d9380f96
|
112 |
public function testGetAddressBook($backend) {
|
|
d1bafeea1
|
113 114 115 116 117 |
$book = $backend->getAddressBook('foo');
$this->assertEquals('bar', $book['displayname']);
}
|
|
6d9380f96
|
118 |
public function testGetAddressBookFail() {
|
|
d1bafeea1
|
119 120 121 122 |
$this->assertNull($this->backend->getAddressBook('bar'));
}
|
|
6d9380f96
|
123 |
public function testGetLastModifiedAddressBook() {
|
|
d1bafeea1
|
124 125 126 127 |
$this->assertNull($this->backend->lastModifiedAddressBook('foo'));
}
|
|
6d9380f96
|
128 |
public function testGetContact() {
|
|
d1bafeea1
|
129 130 131 132 133 134 135 136 |
$contact = $this->backend->getContact('foo', '123');
$this->assertTrue(is_array($contact));
$this->assertEquals('Max Mustermann', $contact['displayname']);
$this->assertEquals('foobar', $contact['owner']);
$this->assertEquals(\OCP\PERMISSION_ALL, $contact['permissions']);
}
|
|
6d9380f96
|
137 |
public function testGetContactFail() {
|
|
d1bafeea1
|
138 139 140 141 |
$this->assertNull($this->backend->getContact('foo', '1234'));
}
|
|
6d9380f96
|
142 |
public function testCreateContact() {
|
|
d1bafeea1
|
143 144 145 146 147 148 149 150 151 152 153 154 155 |
$carddata = file_get_contents(__DIR__ . '/../../data/test2.vcf');
$vcard = Reader::read($carddata);
$id = $this->backend->createContact('foo', $vcard);
$this->assertNotEquals(false, $id);
return $this->backend;
}
/**
* @depends testCreateContact
*/
|
|
6d9380f96
|
156 |
public function testGetContacts($backend) {
|
|
d1bafeea1
|
157 158 159 160 161 162 163 164 165 |
$contacts = $backend->getContacts('foo');
$this->assertCount(2, $contacts);
$this->assertEquals('Max Mustermann', $contacts[0]['displayname']);
$this->assertEquals('John Q. Public', $contacts[1]['displayname']);
}
|
|
6d9380f96
|
166 |
public function testUpdateContact() {
|
|
d1bafeea1
|
167 168 169 170 171 172 173 174 175 176 177 178 179 |
$carddata = file_get_contents(__DIR__ . '/../../data/test2.vcf');
$vcard = Reader::read($carddata);
$this->assertInstanceOf('OCA\\Contacts\\VObject\\VCard', $vcard);
$this->assertTrue($this->backend->updateContact('foo', '123', $vcard));
$contact = $this->backend->getContact('foo', '123');
$this->assertEquals('John Q. Public', $contact['displayname']);
}
|
|
6d9380f96
|
180 |
public function testDeleteContact() {
|
|
d1bafeea1
|
181 182 183 184 185 186 187 |
$this->assertTrue($this->backend->deleteContact('foo', '123'));
$this->assertEquals(array(), $this->backend->getContacts('foo'));
}
}
|