self::ATTRIBUTE_POSTALCODE,
self::ATTRIBUTE_CITY,
self::ATTRIBUTE_FAX,
+ self::ATTRIBUTE_POSTALADDRESS,
),
'derived' => array(
self::ATTRIBUTE_POSTALADDRESS => array(
self::ATTRIBUTE_SN,
self::ATTRIBUTE_STREET,
self::ATTRIBUTE_POSTOFFICEBOX,
+ self::ATTRIBUTE_POSTALADDRESS,
self::ATTRIBUTE_POSTALCODE,
self::ATTRIBUTE_CITY,
),
+ 'method' => 'setPostalAddress',
),
- 'method' => 'setPostalAddress',
),
'object_classes' => array(
self::OBJECTCLASS_ORGANIZATIONALPERSON,
return $postal;
}
$postal_parts = explode('$', $postal);
- if (isset($postal_parts[2])) {
- return $this->unquote($postal_parts[2]);
+ if (isset($postal_parts[1])) {
+ return $this->unquote($postal_parts[1]);
} else {
return '';
}
$empty = true;
$postalData = array();
foreach ($attributes as $attribute) {
- if (!empty($info[$attribute])) {
+ if (isset($info[$attribute])) {
if (is_array($info[$attribute])) {
$new = $info[$attribute][0];
} else {
$postalData[$attribute] = $this->quote($new);
$empty = false;
} else {
- $old = $this->_get($attribute, true);
+ $old = $this->get($attribute, true);
if (!empty($old)) {
- $postalData[$attribute] = $this->quote($old);
+ $postalData[$attribute] = $old;
$empty = false;
} else {
$postalData[$attribute] = '';
return;
}
- if (!empty($postalData[self::ATTRIBUTE_STREET])) {
- $postalData['street_segment'] = $postalData[self::ATTRIBUTE_STREET];
- } else {
+ if (!empty($postalData[self::ATTRIBUTE_POSTOFFICEBOX])) {
$postalData['street_segment'] = $postalData[self::ATTRIBUTE_POSTOFFICEBOX];
+ } else {
+ $postalData['street_segment'] = $postalData[self::ATTRIBUTE_STREET];
}
$info[$key] = sprintf('%s$%s$%s$%s %s',
*/
public function testHandlingAJobTitle($server)
{
- $result = $server->add($this->objects[0]);
- $this->assertNoError($result);
-
- $cn = $this->objects[0][Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_CN];
-
- $person = $this->fetchNew($server, $cn);
-
- $this->assertEquals($person->get(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_JOBTITLE),
- '');
-
- $person->save(array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_JOBTITLE => 'Teacher'));
-
- $person = $this->fetchNew($server, $cn);
-
- $this->assertEquals($person->get(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_JOBTITLE),
- 'Teacher');
-
- $person->save(array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_JOBTITLE => 'öäü/)(="§%$&§§$\'*'));
-
- $person = $this->fetchNew($server, $cn);
-
- $this->assertEquals($person->get(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_JOBTITLE),
- 'öäü/)(="§%$&§§$\'*');
-
-
- $person->save(array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_JOBTITLE => ''));
-
- $person = $this->fetchNew($server, $cn);
-
- $this->assertEquals($person->get(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_JOBTITLE),
- '');
-
- $result = $server->delete($person->get(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_UID));
- $this->assertNoError($result);
- $cn_result = $server->uidForCn($this->objects[0][Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_CN]);
- $this->assertNoError($cn_result);
- $this->assertFalse($server->uidForCn($this->objects[0][Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_CN]));
+ $person = $this->assertAdd($server, $this->objects[0],
+ array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_JOBTITLE => ''));
+ $this->assertSimpleSequence($person, $server,
+ Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_JOBTITLE,
+ array('Teacher', 'öäü/)(="§%$&§§$\'*', '', '0'));
}
/**
*/
public function testHandlingAPostalAddress($server)
{
- $result = $server->add($this->objects[0]);
- $this->assertNoError($result);
-
- $cn = $this->objects[0][Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_CN];
-
- $person = $this->fetchNew($server, $cn);
-
- $this->assertEquals($person->get(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALADDRESSRAW),
- 'Kolab_Server_OrgPersonTest_123$$$ ');
-
- $person->save(array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_SN => 'Kolab_Server_OrgPersonTest_456'));
-
- $person = $this->fetchNew($server, $cn);
-
- $this->assertEquals($person->get(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALADDRESSRAW),
- 'Kolab_Server_OrgPersonTest_456$$$ ');
-
- $person->save(array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_SN => 'Kolab_Server_OrgPersonTest_123',
- Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_STREET => 'Street 1',
- Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALCODE => '12345',
- Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALADDRESS => 'c/o here',
- Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_CITY => 'Nowhere'));
-
- $person = $this->fetchNew($server, $cn);
-
- $this->assertEquals('Kolab_Server_OrgPersonTest_123$c/o here$Street 1$12345 Nowhere',
- $person->get(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALADDRESSRAW));
-
- $person->save(array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTOFFICEBOX => 'öäü/)(="§%$&§§$\'*',
- Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_STREET => ''));
-
- $person = $this->fetchNew($server, $cn);
-
- $this->assertEquals('Kolab_Server_OrgPersonTest_123$c/o here$öäü/)(="§%\5c24&§§\5c24\'*$12345 Nowhere',
- $person->get(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALADDRESSRAW));
-
-
- $person->save(array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_STREET => '',
- Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALCODE => '',
- Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALADDRESS => '',
- Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTOFFICEBOX => '',
- Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_CITY => ''));
-
- $person = $this->fetchNew($server, $cn);
-
- $this->assertEquals('Kolab_Server_OrgPersonTest_123$$$ ',
- $person->get(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALADDRESSRAW));
-
- $result = $server->delete($cn_result);
- $this->assertNoError($result);
- $cn_result = $server->uidForCn($this->objects[0][Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_CN]);
- $this->assertNoError($cn_result);
- $this->assertFalse($server->uidForCn($this->objects[0][Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_CN]));
- }
-
- private function fetchNew($server, $cn)
- {
- $cn_result = $server->uidForCn($cn);
- $this->assertNoError($cn_result);
-
- $person = $server->fetch($cn_result);
- $this->assertNoError($person);
-
- return $person;
+ $person = $this->assertAdd($server, $this->objects[0],
+ array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALADDRESSRAW => 'Kolab_Server_OrgPersonTest_123$$$ '));
+
+ $this->assertStoreFetch($person, $server,
+ array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_SN => 'Kolab_Server_OrgPersonTest_456'),
+ array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALADDRESSRAW => 'Kolab_Server_OrgPersonTest_456$$$ '));
+
+ $this->assertStoreFetch($person, $server,
+ array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_SN => 'Kolab_Server_OrgPersonTest_123',
+ Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_STREET => 'Street 1',
+ Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALCODE => '12345',
+ Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALADDRESS => 'c/o here',
+ Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_CITY => 'Nowhere'),
+ array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALADDRESSRAW => 'Kolab_Server_OrgPersonTest_123$c/o here$Street 1$12345 Nowhere'));
+ $this->assertStoreFetch($person, $server,
+ array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTOFFICEBOX => 'öäü/)(="§%$&§§$\'*',
+ Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_STREET => ''),
+ array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALADDRESSRAW => 'Kolab_Server_OrgPersonTest_123$c/o here$öäü/)(="§%\24&§§\24\'*$12345 Nowhere'));
+
+ $this->assertStoreFetch($person, $server,
+ array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_STREET => '',
+ Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALCODE => '',
+ Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALADDRESS => '',
+ Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTOFFICEBOX => '',
+ Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_CITY => ''),
+ array(Horde_Kolab_Server_Object_Organizationalperson::ATTRIBUTE_POSTALADDRESSRAW => 'Kolab_Server_OrgPersonTest_123$$$ '));
}
}