From: Gunnar Wrobel Date: Mon, 13 Apr 2009 09:10:15 +0000 (+0200) Subject: Test the Organizational person and minor associated fixes. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=b9d2befdaaccb3682e4fd4983fb0203bee81ff25;p=horde.git Test the Organizational person and minor associated fixes. --- diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Organizationalperson.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Organizationalperson.php index 28ff1b23d..3176b9f9b 100644 --- a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Organizationalperson.php +++ b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Organizationalperson.php @@ -69,6 +69,7 @@ class Horde_Kolab_Server_Object_Organizationalperson extends Horde_Kolab_Server_ self::ATTRIBUTE_POSTALCODE, self::ATTRIBUTE_CITY, self::ATTRIBUTE_FAX, + self::ATTRIBUTE_POSTALADDRESS, ), 'derived' => array( self::ATTRIBUTE_POSTALADDRESS => array( @@ -93,11 +94,12 @@ class Horde_Kolab_Server_Object_Organizationalperson extends Horde_Kolab_Server_ 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, @@ -131,8 +133,8 @@ class Horde_Kolab_Server_Object_Organizationalperson extends Horde_Kolab_Server_ 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 ''; } @@ -152,7 +154,7 @@ class Horde_Kolab_Server_Object_Organizationalperson extends Horde_Kolab_Server_ $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 { @@ -161,9 +163,9 @@ class Horde_Kolab_Server_Object_Organizationalperson extends Horde_Kolab_Server_ $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] = ''; @@ -175,10 +177,10 @@ class Horde_Kolab_Server_Object_Organizationalperson extends Horde_Kolab_Server_ 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', diff --git a/framework/Kolab_Server/test/Horde/Kolab/Server/OrgPersonTest.php b/framework/Kolab_Server/test/Horde/Kolab/Server/OrgPersonTest.php index c0d86a7b9..51ddf248f 100644 --- a/framework/Kolab_Server/test/Horde/Kolab/Server/OrgPersonTest.php +++ b/framework/Kolab_Server/test/Horde/Kolab/Server/OrgPersonTest.php @@ -110,43 +110,11 @@ class Horde_Kolab_Server_OrgPersonTest extends Horde_Kolab_Test_Server */ 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')); } /** @@ -158,69 +126,31 @@ class Horde_Kolab_Server_OrgPersonTest extends Horde_Kolab_Test_Server */ 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$$$ ')); } }