cacert-testmgr/external/ZendFramework-1.9.5/tests/Zend/Ldap/Dn/CreationTest.php
Markus Warg 8398c9048d initially import ZendFramework-1.9.5 into repository
code was modified slightly, so the code differs from the original downloadable 1.9.5 version
2010-03-31 10:12:32 +02:00

214 lines
8.7 KiB
PHP

<?php
/**
* Zend Framework
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled
* with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://framework.zend.com/license/new-bsd
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@zend.com so we can send you a copy immediately.
*
* @category Zend
* @package Zend_Ldap
* @subpackage UnitTests
* @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @version $Id: CreationTest.php 17363 2009-08-03 07:40:18Z bkarwin $
*/
/**
* Test helper
*/
require_once dirname(dirname(dirname(dirname(__FILE__)))) . DIRECTORY_SEPARATOR . 'TestHelper.php';
/**
* Zend_Ldap_Dn
*/
require_once 'Zend/Ldap/Dn.php';
/**
* @category Zend
* @package Zend_Ldap
* @subpackage UnitTests
* @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @group Zend_Ldap
* @group Zend_Ldap_Dn
*/
class Zend_Ldap_Dn_CreationTest extends PHPUnit_Framework_TestCase
{
public function testDnCreation()
{
Zend_Ldap_Dn::setDefaultCaseFold(Zend_Ldap_Dn::ATTR_CASEFOLD_NONE);
$dnString1='CN=Baker\\, Alice,CN=Users+OU=Lab,DC=example,DC=com';
$dnArray1=array(
array('CN' => 'Baker, Alice'),
array('CN' => 'Users', 'OU' => 'Lab'),
array('DC' => 'example'),
array('DC' => 'com'));
$dnString2='cn=Baker\\, Alice,cn=Users+ou=Lab,dc=example,dc=com';
$dnArray2=array(
array('cn' => 'Baker, Alice'),
array('cn' => 'Users', 'ou' => 'Lab'),
array('dc' => 'example'),
array('dc' => 'com'));
$dnString3='Cn=Baker\\, Alice,Cn=Users+Ou=Lab,Dc=example,Dc=com';
$dnArray3=array(
array('Cn' => 'Baker, Alice'),
array('Cn' => 'Users', 'Ou' => 'Lab'),
array('Dc' => 'example'),
array('Dc' => 'com'));
$dn11=Zend_Ldap_Dn::fromString($dnString1);
$dn12=Zend_Ldap_Dn::fromArray($dnArray1);
$dn13=Zend_Ldap_Dn::factory($dnString1);
$dn14=Zend_Ldap_Dn::factory($dnArray1);
$this->assertEquals($dn11, $dn12);
$this->assertEquals($dn11, $dn13);
$this->assertEquals($dn11, $dn14);
$this->assertEquals($dnString1, $dn11->toString());
$this->assertEquals($dnString1, $dn11->toString(Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER));
$this->assertEquals($dnString2, $dn11->toString(Zend_Ldap_Dn::ATTR_CASEFOLD_LOWER));
$this->assertEquals($dnArray1, $dn11->toArray());
$this->assertEquals($dnArray1, $dn11->toArray(Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER));
$this->assertEquals($dnArray2, $dn11->toArray(Zend_Ldap_Dn::ATTR_CASEFOLD_LOWER));
$dn21=Zend_Ldap_Dn::fromString($dnString2);
$dn22=Zend_Ldap_Dn::fromArray($dnArray2);
$dn23=Zend_Ldap_Dn::factory($dnString2);
$dn24=Zend_Ldap_Dn::factory($dnArray2);
$this->assertEquals($dn21, $dn22);
$this->assertEquals($dn21, $dn23);
$this->assertEquals($dn21, $dn24);
$this->assertEquals($dnString2, $dn21->toString());
$this->assertEquals($dnString1, $dn21->toString(Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER));
$this->assertEquals($dnString2, $dn21->toString(Zend_Ldap_Dn::ATTR_CASEFOLD_LOWER));
$this->assertEquals($dnArray2, $dn21->toArray());
$this->assertEquals($dnArray1, $dn21->toArray(Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER));
$this->assertEquals($dnArray2, $dn21->toArray(Zend_Ldap_Dn::ATTR_CASEFOLD_LOWER));
$this->assertEquals($dnArray2, $dn22->toArray());
$dn31=Zend_Ldap_Dn::fromString($dnString3);
$dn32=Zend_Ldap_Dn::fromArray($dnArray3);
$dn33=Zend_Ldap_Dn::factory($dnString3);
$dn34=Zend_Ldap_Dn::factory($dnArray3);
$this->assertEquals($dn31, $dn32);
$this->assertEquals($dn31, $dn33);
$this->assertEquals($dn31, $dn34);
$this->assertEquals($dnString3, $dn31->toString());
$this->assertEquals($dnString1, $dn31->toString(Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER));
$this->assertEquals($dnString2, $dn31->toString(Zend_Ldap_Dn::ATTR_CASEFOLD_LOWER));
$this->assertEquals($dnArray3, $dn31->toArray());
$this->assertEquals($dnArray1, $dn31->toArray(Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER));
$this->assertEquals($dnArray2, $dn31->toArray(Zend_Ldap_Dn::ATTR_CASEFOLD_LOWER));
try {
$dn=Zend_Ldap_Dn::factory(1);
$this->fail('Expected Zend_Ldap_Exception not thrown');
} catch (Zend_Ldap_Exception $e) {
$this->assertEquals('Invalid argument type for $dn', $e->getMessage());
}
}
public function testDnCreationWithDifferentCaseFoldings()
{
Zend_Ldap_Dn::setDefaultCaseFold(Zend_Ldap_Dn::ATTR_CASEFOLD_NONE);
$dnString1='Cn=Baker\\, Alice,Cn=Users+Ou=Lab,Dc=example,Dc=com';
$dnString2='CN=Baker\\, Alice,CN=Users+OU=Lab,DC=example,DC=com';
$dnString3='cn=Baker\\, Alice,cn=Users+ou=Lab,dc=example,dc=com';
$dn=Zend_Ldap_Dn::fromString($dnString1, null);
$this->assertEquals($dnString1, (string)$dn);
$dn->setCaseFold(Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER);
$this->assertEquals($dnString2, (string)$dn);
$dn->setCaseFold(Zend_Ldap_Dn::ATTR_CASEFOLD_LOWER);
$this->assertEquals($dnString3, (string)$dn);
$dn=Zend_Ldap_Dn::fromString($dnString1, Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER);
$this->assertEquals($dnString2, (string)$dn);
$dn->setCaseFold(null);
$this->assertEquals($dnString1, (string)$dn);
$dn->setCaseFold(Zend_Ldap_Dn::ATTR_CASEFOLD_LOWER);
$this->assertEquals($dnString3, (string)$dn);
$dn=Zend_Ldap_Dn::fromString($dnString1, Zend_Ldap_Dn::ATTR_CASEFOLD_LOWER);
$this->assertEquals($dnString3, (string)$dn);
$dn->setCaseFold(Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER);
$this->assertEquals($dnString2, (string)$dn);
$dn->setCaseFold(Zend_Ldap_Dn::ATTR_CASEFOLD_LOWER);
$this->assertEquals($dnString3, (string)$dn);
$dn->setCaseFold(Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER);
$this->assertEquals($dnString2, (string)$dn);
Zend_Ldap_Dn::setDefaultCaseFold(Zend_Ldap_Dn::ATTR_CASEFOLD_UPPER);
$dn=Zend_Ldap_Dn::fromString($dnString1, null);
$this->assertEquals($dnString2, (string)$dn);
Zend_Ldap_Dn::setDefaultCaseFold(null);
$dn=Zend_Ldap_Dn::fromString($dnString1, null);
$this->assertEquals($dnString1, (string)$dn);
Zend_Ldap_Dn::setDefaultCaseFold(Zend_Ldap_Dn::ATTR_CASEFOLD_NONE);
}
public function testGetRdn()
{
Zend_Ldap_Dn::setDefaultCaseFold(Zend_Ldap_Dn::ATTR_CASEFOLD_NONE);
$dnString='cn=Baker\\, Alice,cn=Users,dc=example,dc=com';
$dn=Zend_Ldap_Dn::fromString($dnString);
$this->assertEquals(array('cn' => 'Baker, Alice'), $dn->getRdn());
$this->assertEquals('cn=Baker\\, Alice', $dn->getRdnString());
$dnString = 'Cn=Users+Ou=Lab,dc=example,dc=com';
$dn=Zend_Ldap_Dn::fromString($dnString);
$this->assertEquals(array('Cn' => 'Users', 'Ou' => 'Lab'), $dn->getRdn());
$this->assertEquals('Cn=Users+Ou=Lab', $dn->getRdnString());
}
public function testGetParentDn()
{
$dnString='cn=Baker\\, Alice,cn=Users,dc=example,dc=com';
$dn=Zend_Ldap_Dn::fromString($dnString);
$this->assertEquals('cn=Users,dc=example,dc=com', $dn->getParentDn()->toString());
$this->assertEquals('cn=Users,dc=example,dc=com', $dn->getParentDn(1)->toString());
$this->assertEquals('dc=example,dc=com', $dn->getParentDn(2)->toString());
$this->assertEquals('dc=com', $dn->getParentDn(3)->toString());
try {
$dn->getParentDn(0)->toString();
$this->fail('Expected Zend_Ldap_Exception not thrown');
} catch (Zend_Ldap_Exception $e) {
$this->assertEquals('Cannot retrieve parent DN with given $levelUp', $e->getMessage());
}
try {
$dn->getParentDn(4)->toString();
$this->fail('Expected Zend_Ldap_Exception not thrown');
} catch (Zend_Ldap_Exception $e) {
$this->assertEquals('Cannot retrieve parent DN with given $levelUp', $e->getMessage());
}
}
public function testEmptyStringDn()
{
$dnString='';
$dn=Zend_Ldap_Dn::fromString($dnString);
$this->assertEquals($dnString, $dn->toString());
}
}