Blame view
sources/apps/contacts/tests/lib/vobject_test.php
2.48 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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
<?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.
*/
class Test_VObjects extends PHPUnit_Framework_TestCase {
public static function setUpBeforeClass() {
\Sabre\VObject\Component::$classMap['VCARD'] = '\OCA\Contacts\VObject\VCard';
\Sabre\VObject\Property::$classMap['CATEGORIES'] = 'OCA\Contacts\VObject\GroupProperty';
}
public function testCrappyVCard() {
$carddata = file_get_contents(__DIR__ . '/../data/test3.vcf');
$obj = \Sabre\VObject\Reader::read(
$carddata,
\Sabre\VObject\Reader::OPTION_IGNORE_INVALID_LINES
);
$obj->validate($obj::REPAIR|$obj::UPGRADE);
$this->assertEquals('3.0', (string)$obj->VERSION);
$this->assertEquals('Adèle Fermée', (string)$obj->FN);
$this->assertEquals('Fermée;Adèle;;;', (string)$obj->N);
}
public function testEscapedParameters() {
$carddata = file_get_contents(__DIR__ . '/../data/test6.vcf');
$obj = \Sabre\VObject\Reader::read(
$carddata,
\Sabre\VObject\Reader::OPTION_IGNORE_INVALID_LINES
);
$obj->validate($obj::REPAIR|$obj::UPGRADE);
$this->assertEquals('3.0', (string)$obj->VERSION);
$this->assertEquals('Parameters;Escaped;;;', (string)$obj->N);
$this->assertEquals('TEL;TYPE=PREF;TYPE=WORK;TYPE=VOICE:123456789' . "\r
", $obj->TEL->serialize());
}
public function testGroupProperty() {
$arr = array(
'Home',
'work',
'Friends, Family',
);
$property = \Sabre\VObject\Property::create('CATEGORIES');
$property->setParts($arr);
// Test parsing and serializing
$this->assertEquals('Home,work,Friends\, Family', $property->value);
$this->assertEquals('CATEGORIES:Home,work,Friends\, Family' . "\r
", $property->serialize());
$this->assertEquals(3, count($property->getParts()));
// Test add
$property->addGroup('Coworkers');
$this->assertTrue($property->hasGroup('coworkers'));
$this->assertEquals(4, count($property->getParts()));
$this->assertEquals('Home,work,Friends\, Family,Coworkers', $property->value);
// Test remove
$this->assertTrue($property->hasGroup('Friends, fAmIlY'));
$property->removeGroup('Friends, fAmIlY');
$this->assertEquals(3, count($property->getParts()));
$parts = $property->getParts();
$this->assertEquals('Coworkers', $parts[2]);
// Test rename
$property->renameGroup('work', 'Work');
$parts = $property->getParts();
$this->assertEquals('Work', $parts[1]);
//$this->assertEquals(true, false);
}
}
|