Blame view

sources/apps/contacts/tests/lib/backend/backend_test.php 4.3 KB
d1bafeea1   Kload   [fix] Upgrade to ...
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   Cédric Dupont   Update sources OC...
36
  	public function setUp() {
d1bafeea1   Kload   [fix] Upgrade to ...
37
38
39
40
  
  		$this->backend = new Mock('foobar');
  
  	}
6d9380f96   Cédric Dupont   Update sources OC...
41
  	public function tearDown() {
d1bafeea1   Kload   [fix] Upgrade to ...
42
43
  		unset($this->backend);
  	}
6d9380f96   Cédric Dupont   Update sources OC...
44
  	public function testHasContactMethodFor() {
d1bafeea1   Kload   [fix] Upgrade to ...
45
46
47
48
49
50
  
  		foreach($this->permissions as $permission) {
  			$this->assertTrue($this->backend->hasContactMethodFor($permission));
  		}
  
  	}
6d9380f96   Cédric Dupont   Update sources OC...
51
  	public function testHasAddressBookMethodFor() {
d1bafeea1   Kload   [fix] Upgrade to ...
52
53
54
55
56
57
  
  		foreach($this->permissions as $permission) {
  			$this->assertTrue($this->backend->hasAddressBookMethodFor($permission));
  		}
  
  	}
6d9380f96   Cédric Dupont   Update sources OC...
58
  	public function testgetAddressBooksForUser() {
d1bafeea1   Kload   [fix] Upgrade to ...
59
60
61
62
  
  		$this->assertEquals(1, count($this->backend->getAddressBooksForUser()));
  
  	}
6d9380f96   Cédric Dupont   Update sources OC...
63
  	public function testDeleteAddressBook() {
d1bafeea1   Kload   [fix] Upgrade to ...
64
65
66
67
68
  
  		$this->assertTrue($this->backend->deleteAddressBook('foo'));
  		$this->assertEquals(array(), $this->backend->addressBooks);
  
  	}
6d9380f96   Cédric Dupont   Update sources OC...
69
  	public function testCreateAddressBook() {
d1bafeea1   Kload   [fix] Upgrade to ...
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   Cédric Dupont   Update sources OC...
82
  	public function testCreateAddressBookFail() {
d1bafeea1   Kload   [fix] Upgrade to ...
83

6d9380f96   Cédric Dupont   Update sources OC...
84
  		// displayname must be provided.
d1bafeea1   Kload   [fix] Upgrade to ...
85
86
87
88
89
  		$id = $this->backend->createAddressBook(array('description' => 'foo bar'));
  
  		$this->assertFalse($id);
  
  	}
6d9380f96   Cédric Dupont   Update sources OC...
90
  	public function testUpdateAddressBook() {
d1bafeea1   Kload   [fix] Upgrade to ...
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   Cédric Dupont   Update sources OC...
101
  	public function testUpdateAddressBookFail() {
d1bafeea1   Kload   [fix] Upgrade to ...
102
103
104
105
106
107
108
109
110
111
  
  		$this->assertFalse(
  			$this->backend->updateAddressBook('foo', array('description' => 'foo bar'))
  		);
  
  	}
  
  	/**
  	* @depends testUpdateAddressBook
  	*/
6d9380f96   Cédric Dupont   Update sources OC...
112
  	public function testGetAddressBook($backend) {
d1bafeea1   Kload   [fix] Upgrade to ...
113
114
115
116
117
  
  		$book = $backend->getAddressBook('foo');
  		$this->assertEquals('bar', $book['displayname']);
  
  	}
6d9380f96   Cédric Dupont   Update sources OC...
118
  	public function testGetAddressBookFail() {
d1bafeea1   Kload   [fix] Upgrade to ...
119
120
121
122
  
  		$this->assertNull($this->backend->getAddressBook('bar'));
  
  	}
6d9380f96   Cédric Dupont   Update sources OC...
123
  	public function testGetLastModifiedAddressBook() {
d1bafeea1   Kload   [fix] Upgrade to ...
124
125
126
127
  
  		$this->assertNull($this->backend->lastModifiedAddressBook('foo'));
  
  	}
6d9380f96   Cédric Dupont   Update sources OC...
128
  	public function testGetContact() {
d1bafeea1   Kload   [fix] Upgrade to ...
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   Cédric Dupont   Update sources OC...
137
  	public function testGetContactFail() {
d1bafeea1   Kload   [fix] Upgrade to ...
138
139
140
141
  
  		$this->assertNull($this->backend->getContact('foo', '1234'));
  
  	}
6d9380f96   Cédric Dupont   Update sources OC...
142
  	public function testCreateContact() {
d1bafeea1   Kload   [fix] Upgrade to ...
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   Cédric Dupont   Update sources OC...
156
  	public function testGetContacts($backend) {
d1bafeea1   Kload   [fix] Upgrade to ...
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   Cédric Dupont   Update sources OC...
166
  	public function testUpdateContact() {
d1bafeea1   Kload   [fix] Upgrade to ...
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   Cédric Dupont   Update sources OC...
180
  	public function testDeleteContact() {
d1bafeea1   Kload   [fix] Upgrade to ...
181
182
183
184
185
186
187
  
  		$this->assertTrue($this->backend->deleteContact('foo', '123'));
  		$this->assertEquals(array(), $this->backend->getContacts('foo'));
  
  	}
  
  }