203 lines
6.9 KiB
PHP
203 lines
6.9 KiB
PHP
<?php
|
|
|
|
require_once __DIR__ . '/KolabTestBase.php';
|
|
|
|
/**
|
|
* @author Jason M. Felice <jason.m.felice@gmail.com>
|
|
* @package Turba
|
|
* @subpackage UnitTests
|
|
*/
|
|
class Turba_ToDo_KolabTest extends Turba_KolabTestBase {
|
|
|
|
/**
|
|
* Test setup.
|
|
*
|
|
* @return NULL
|
|
*/
|
|
public function setUp()
|
|
{
|
|
$this->markTestIncomplete('Convert to use Horde_Test.');
|
|
$this->prepareTurba();
|
|
|
|
$this->_kolab = new Kolab();
|
|
}
|
|
|
|
function testBug5476()
|
|
{
|
|
/* Open our addressbook */
|
|
$this->_kolab->open('INBOX/Contacts', 1);
|
|
|
|
$object = array(
|
|
'uid' => 1,
|
|
'given-name' => 'test',
|
|
'last-name' => 'test',
|
|
'full-name' => 'test test',
|
|
);
|
|
|
|
// Save the contact
|
|
$this->_kolab->_storage->save($object);
|
|
|
|
$object = array(
|
|
'uid' => 2,
|
|
'given-name' => 'test2',
|
|
'last-name' => 'test2',
|
|
'full-name' => 'test2 test2',
|
|
);
|
|
|
|
// Save the contact
|
|
$this->_kolab->_storage->save($object);
|
|
|
|
// Check that the driver can be created
|
|
$turba = $GLOBALS['injector']->getInstance('Turba_Factory_Driver')->create('wrobel@example.org');
|
|
//$this->assertNoError($turba);
|
|
|
|
$result = $turba->search(array(), array('last-name'));
|
|
$this->assertNoError($result);
|
|
$this->assertEquals(2, count($result));
|
|
|
|
$turba = $GLOBALS['injector']->getInstance('Turba_Factory_Driver')->create('INBOX%2Ftest2');
|
|
$result = $turba->search(array(), array('last-name'));
|
|
|
|
$this->assertEquals(0, count($result));
|
|
}
|
|
|
|
function testPhoto()
|
|
{
|
|
/* Open our addressbook */
|
|
$this->_kolab->open('INBOX/Contacts', 1);
|
|
|
|
$object = array(
|
|
'uid' => 1,
|
|
'given-name' => 'photo',
|
|
'last-name' => 'photo',
|
|
'full-name' => 'photo photo',
|
|
'photo' => 'abcd',
|
|
'phototype' => 'image/jpeg',
|
|
);
|
|
|
|
// Save the contact
|
|
$turba = $GLOBALS['injector']->getInstance('Turba_Factory_Driver')->create('wrobel@example.org');
|
|
//$this->assertNoError($turba);
|
|
|
|
$this->assertNoError($turba->_add($object));
|
|
|
|
$list = Kolab_List::singleton();
|
|
$share = &$list->getByShare('INBOX/Contacts', 'contact');
|
|
$data = &$share->getData();
|
|
$object = $data->getObject('1');
|
|
$this->assertTrue(isset($object['_attachments'][$object['picture']]));
|
|
$attachment = $data->getAttachment($object['_attachments'][$object['picture']]['key']);
|
|
$this->assertEquals("abcd\n", $attachment);
|
|
}
|
|
|
|
function testAttachments()
|
|
{
|
|
/* Open our addressbook */
|
|
$this->_kolab->open('INBOX/Contacts', 1);
|
|
|
|
$object = array(
|
|
'uid' => 'a',
|
|
'given-name' => 'atc',
|
|
'last-name' => 'atc',
|
|
'full-name' => 'atc atc',
|
|
);
|
|
|
|
// Save the contact
|
|
$turba = $GLOBALS['injector']->getInstance('Turba_Factory_Driver')->create('wrobel@example.org');
|
|
//$this->assertNoError($turba);
|
|
|
|
$this->assertNoError($turba->_add($object));
|
|
|
|
$contact = $turba->getObject('a');
|
|
$this->assertNoError($contact);
|
|
|
|
$list = Kolab_List::singleton();
|
|
$share = &$list->getByShare('INBOX/Contacts', 'contact');
|
|
$data = &$share->getData();
|
|
|
|
$atc1 = Horde_Util::getTempFile();
|
|
$fh = fopen($atc1, 'w');
|
|
fwrite($fh, 'test');
|
|
fclose($fh);
|
|
|
|
$info = array('tmp_name' => $atc1,
|
|
'name' => 'test.txt');
|
|
$this->assertNoError($contact->addFile($info));
|
|
|
|
$objects = $data->getObjects();
|
|
$this->assertEquals(1, count($objects));
|
|
$object = $data->getObject('a');
|
|
$this->assertTrue(isset($object['_attachments']));
|
|
$this->assertEquals(1, count($object['_attachments']));
|
|
$this->assertEquals(1, count($object['link-attachment']));
|
|
$this->assertContains('test.txt', $object['link-attachment']);
|
|
$attachment = $data->getAttachment($object['_attachments']['test.txt']['key']);
|
|
$this->assertEquals("test\n", $attachment);
|
|
|
|
$atc1 = Horde_Util::getTempFile();
|
|
$fh = fopen($atc1, 'w');
|
|
fwrite($fh, 'hhhh');
|
|
fclose($fh);
|
|
|
|
$info = array('tmp_name' => $atc1,
|
|
'name' => 'test.txt');
|
|
$this->assertNoError($contact->addFile($info));
|
|
|
|
$objects = $data->getObjects();
|
|
$this->assertEquals(1, count($objects));
|
|
$object = $data->getObject('a');
|
|
$this->assertTrue(isset($object['_attachments']));
|
|
$this->assertEquals(2, count($object['_attachments']));
|
|
$this->assertEquals(2, count($object['link-attachment']));
|
|
$this->assertContains('test[1].txt', $object['link-attachment']);
|
|
$attachment = $data->getAttachment($object['_attachments']['test[1].txt']['key']);
|
|
$this->assertEquals("hhhh\n", $attachment);
|
|
|
|
$atc1 = Horde_Util::getTempFile();
|
|
$fh = fopen($atc1, 'w');
|
|
fwrite($fh, 'dummy');
|
|
fclose($fh);
|
|
|
|
$info = array('tmp_name' => $atc1,
|
|
'name' => 'dummy.txt');
|
|
$this->assertNoError($contact->addFile($info));
|
|
|
|
$objects = $data->getObjects();
|
|
$this->assertEquals(1, count($objects));
|
|
$object = $data->getObject('a');
|
|
$this->assertTrue(isset($object['_attachments']));
|
|
$this->assertEquals(3, count($object['_attachments']));
|
|
$this->assertEquals(3, count($object['link-attachment']));
|
|
$this->assertContains('dummy.txt', $object['link-attachment']);
|
|
$attachment = $data->getAttachment($object['_attachments']['dummy.txt']['key']);
|
|
$this->assertEquals("dummy\n", $attachment);
|
|
|
|
$this->assertError($contact->deleteFile('doesnotexist.txt'), "Unable to delete VFS file.");
|
|
|
|
$this->assertNoError($contact->deleteFile('test[1].txt'));
|
|
|
|
$objects = $data->getObjects();
|
|
$this->assertEquals(1, count($objects));
|
|
$object = $data->getObject('a');
|
|
$this->assertTrue(!isset($object['_attachments']['test[1].txt']));
|
|
$this->assertEquals(2, count($object['_attachments']));
|
|
$this->assertEquals(2, count($object['link-attachment']));
|
|
$this->assertNotContains('test[1].txt', $object['link-attachment']);
|
|
|
|
$files = $contact->listFiles();
|
|
$this->assertNoError($files);
|
|
|
|
$this->assertContains('test.txt', array_keys($files));
|
|
$this->assertContains('dummy.txt', array_keys($files));
|
|
|
|
$this->assertNoError($contact->deleteFiles());
|
|
|
|
$objects = $data->getObjects();
|
|
$this->assertEquals(1, count($objects));
|
|
$object = $data->getObject('a');
|
|
$this->assertTrue(!isset($object['_attachments']['test.txt']));
|
|
$this->assertTrue(!isset($object['_attachments']));
|
|
$this->assertTrue(!isset($object['link-attachment']));
|
|
}
|
|
}
|