Files
server/usr/share/psa-pear/pear/tests/turba/Turba/ToDo/KolabTest.php
2026-01-07 20:52:11 +01:00

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']));
}
}