From 32c9076ae599d0f10cf8d82b854abe67a93dce87 Mon Sep 17 00:00:00 2001 From: Gunnar Wrobel
Date: Fri, 10 Apr 2009 13:02:47 +0200 Subject: [PATCH] Test id generation with multiple cns. Improved real testing. --- .../test/Horde/Kolab/Server/PersonTest.php | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/framework/Kolab_Server/test/Horde/Kolab/Server/PersonTest.php b/framework/Kolab_Server/test/Horde/Kolab/Server/PersonTest.php index 09dad8cc8..675383da4 100644 --- a/framework/Kolab_Server/test/Horde/Kolab/Server/PersonTest.php +++ b/framework/Kolab_Server/test/Horde/Kolab/Server/PersonTest.php @@ -72,9 +72,38 @@ class Horde_Kolab_Server_PersonTest extends Horde_Kolab_Test_Server Horde_Kolab_Server_Object_Person::ATTRIBUTE_SN => 'Kolab_Server_PersonTest_/', Horde_Kolab_Server_Object_Person::ATTRIBUTE_USERPASSWORD => 'Kolab_Server_PersonTest_/', ), + /* Person with double cn */ + array( + 'type' => 'Horde_Kolab_Server_Object_Person', + Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN => array('Kolab_Server_PersonTest_cn1', + 'Kolab_Server_PersonTest_cn2'), + Horde_Kolab_Server_Object_Person::ATTRIBUTE_SN => 'Kolab_Server_PersonTest_cncn', + Horde_Kolab_Server_Object_Person::ATTRIBUTE_USERPASSWORD => 'Kolab_Server_PersonTest_cncn', + ), ); /** + * Provide different server types. + * + * @return array The different server types. + */ + public function &provideServers() + { + $servers = array(); + /** + * We always use the test server + */ + $servers[] = array($this->prepareEmptyKolabServer()); + if (false) { + $real = $this->prepareLdapKolabServer(); + if (!empty($real)) { + $servers[] = array($real); + } + } + return $servers; + } + + /** * Test ID generation for a person. * * @dataProvider provideServers @@ -187,4 +216,28 @@ class Horde_Kolab_Server_PersonTest extends Horde_Kolab_Test_Server $this->assertNoError($cn_result); $this->assertFalse($server->uidForCn($this->objects[$add][Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN])); } + + /** + * Test adding a person with two common names. + * + * @dataProvider provideServers + * + * @return NULL + */ + public function testAddDoubleCnPerson($server) + { + $result = $server->add($this->objects[5]); + $this->assertNoError($result); + $cn_result = $server->uidForCn($this->objects[5][Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN][0]); + $this->assertNoError($cn_result); + $dn_parts = Net_LDAP2_Util::ldap_explode_dn($cn_result, array('casefold' => 'lower')); + $dnpart = Net_LDAP2_Util::unescape_dn_value($dn_parts[0]); + $this->assertContains(Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN . '=' . $this->objects[5][Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN][0], + $dnpart[0]); + $result = $server->delete($cn_result); + $this->assertNoError($result); + $cn_result = $server->uidForCn($this->objects[5][Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN]); + $this->assertNoError($cn_result); + $this->assertFalse($server->uidForCn($this->objects[5][Horde_Kolab_Server_Object_Person::ATTRIBUTE_CN])); + } } -- 2.11.0