Blame view
sources/apps/contacts/tests/lib/contact_test.php
3.79 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 |
<?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;
use Sabre\VObject\Reader;
use OCA\Contacts\Utils\JSONSerializer;
require_once __DIR__ . '/backend/mock.php';
class ContactTest extends \PHPUnit_Framework_TestCase {
/**
* @var array
*/
protected $abinfo;
/**
* @var OCA\Contacts\AddressBook
*/
protected $ab;
/**
* @var OCA\Contacts\Contact
*/
protected $contact;
/**
* @var OCA\Contacts\Backend\AbstractBackend
*/
protected $backend;
|
|
6d9380f96
|
34 |
public function setUp() {
|
|
d1bafeea1
|
35 36 37 38 39 40 |
$this->backend = new Backend\Mock('foobar');
$this->abinfo = $this->backend->getAddressBook('foo');
$this->ab = new AddressBook($this->backend, $this->abinfo);
$this->contact = $this->ab->getChild('123');
}
|
|
6d9380f96
|
41 |
public function tearDown() {
|
|
d1bafeea1
|
42 43 44 45 |
unset($this->backend); unset($this->ab); unset($this->contact); } |
|
6d9380f96
|
46 |
public function testGetDisplayName() {
|
|
d1bafeea1
|
47 48 49 50 |
$this->assertEquals('Max Mustermann', $this->contact->getDisplayName());
}
|
|
6d9380f96
|
51 |
public function testGetMetaData() {
|
|
d1bafeea1
|
52 53 54 55 56 57 58 59 |
$props = $this->contact->getMetaData();
$this->assertEquals('Max Mustermann', $props['displayname']);
$this->assertEquals('foobar', $props['owner']);
$this->assertEquals(\OCP\PERMISSION_ALL, $props['permissions']);
$this->assertEquals($this->ab->getId(), $props['parent']);
}
|
|
6d9380f96
|
60 |
public function testGetPermissions() {
|
|
d1bafeea1
|
61 62 63 64 65 |
$this->assertEquals($this->ab->getPermissions(), $this->contact->getPermissions()); $this->assertEquals(\OCP\PERMISSION_ALL, $this->contact->getPermissions()); } |
|
6d9380f96
|
66 |
public function testGetParent() {
|
|
d1bafeea1
|
67 68 69 70 |
$this->assertEquals($this->ab, $this->contact->getParent()); } |
|
6d9380f96
|
71 |
public function testGetBackend() {
|
|
d1bafeea1
|
72 73 74 75 |
$this->assertEquals($this->backend, $this->contact->getBackend()); } |
|
6d9380f96
|
76 |
public function testDelete() {
|
|
d1bafeea1
|
77 78 79 80 |
$this->assertTrue($this->contact->delete()); } |
|
6d9380f96
|
81 |
public function testIsSaved() {
|
|
d1bafeea1
|
82 83 84 85 86 87 88 89 |
$this->assertTrue($this->contact->isSaved()); $this->contact->FN = 'Don Quixote'; $this->assertEquals(false, $this->contact->isSaved()); } |
|
6d9380f96
|
90 |
public function testSave() {
|
|
d1bafeea1
|
91 92 93 94 95 96 97 98 |
$this->contact->FN = 'Don Quixote'; $this->assertTrue($this->contact->save()); $this->assertTrue($this->contact->isSaved()); } |
|
6d9380f96
|
99 |
public function testSetByChecksum() {
|
|
d1bafeea1
|
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
// TODO: Move JSONSerializer tests to a TestUtils class or something
$serialized = JSONSerializer::serializeContact($this->contact);
$this->assertTrue(is_array($serialized));
$this->assertArrayHasKey('data', $serialized);
$this->assertArrayHasKey('EMAIL', $serialized['data']);
$checksum = $serialized['data']['EMAIL'][0]['checksum'];
$newchecksum = $this->contact->setPropertyByChecksum($checksum, 'EMAIL', 'mmustermann@example.org');
$this->assertNotEquals($checksum, $newchecksum);
$this->assertEquals('mmustermann@example.org', (string)$this->contact->EMAIL);
}
|
|
6d9380f96
|
117 |
public function testSetByChecksumFail() {
|
|
d1bafeea1
|
118 119 120 121 122 123 124 125 126 127 128 129 |
try {
$this->contact->setPropertyByChecksum('87654321', 'EMAIL', 'mmustermann@example.org');
} catch(\Exception $e) {
$this->assertEquals('Property not found', $e->getMessage());
$this->assertEquals(404, $e->getCode());
return;
}
$this->fail('Expected Exception 404.');
}
|
|
6d9380f96
|
130 |
public function testUnsetByChecksum() {
|
|
d1bafeea1
|
131 132 133 134 135 136 137 138 139 140 141 |
$serialized = JSONSerializer::serializeContact($this->contact); $checksum = $serialized['data']['EMAIL'][0]['checksum']; $this->assertTrue(isset($this->contact->EMAIL)); $this->contact->unsetPropertyByChecksum($checksum); $this->assertTrue(!isset($this->contact->EMAIL)); } |
|
6d9380f96
|
142 |
public function testSetByName() {
|
|
d1bafeea1
|
143 144 145 146 147 148 149 150 151 152 153 154 |
$this->assertTrue(!isset($this->contact->NICKNAME));
$this->assertTrue($this->contact->setPropertyByName('NICKNAME', 'Maxie'));
$this->assertTrue(isset($this->contact->NICKNAME));
$this->assertEquals((string)$this->contact->NICKNAME, 'Maxie');
}
}
|