diff --git a/psalm-baseline.xml b/psalm-baseline.xml new file mode 100644 index 00000000..0dfc2e24 --- /dev/null +++ b/psalm-baseline.xml @@ -0,0 +1,3018 @@ + + + + + $value->format('U') + Converter\Converter::fromLdapDateTime($value, false)->format('U') + + + int|null + + + mt_rand() + mt_rand() + + + setDateTimeAttribute + setPassword + + + $data[$attribName] + $data[$attribName] + $data[$attribName] + $data[$attribName] + $data[$attribName][$index] + $resultArray + $resultArray + $v + $v + $values + $values[$i] + + + $data[$attribName][$index] + $resultArray[$k] + + + $resultArray + $retArray[] + $return + $v + $v + $v + $v + $v + $values + + + array|int + + + $values + + + $value !== null + $value !== null + is_int($index) + is_int($value) + is_string($value) + + + + + array + + + array|null + + + $this->cache[$this->current] + + + $this->current() + + + null + + + + + is_resource($this->current) + is_resource($this->current) + is_resource($this->current) + + + $this + + + $a + $b + + + function ($a, $b) use ($sortFunction) { + + + $entry['resource'] + + + + $a['sortValue'] + $b['sortValue'] + $entry['resource'] + $nextEntry['resource'] + $nextEntry['resource'] + + + $this->entries[$key]['sortValue'] + + + $entry[$attrName] + + + $attrName + $entry + $nextEntry + $nextEntry + $this->current + $this->current + + + call_user_func($this->attributeNameTreatment, $name) + + + null + null + null + null + null + + + (int) $attributeNameTreatment + + + is_resource($this->current) + is_resource($this->current) + is_resource($this->resultId) + + + is_string($attributeNameTreatment) && ! function_exists($attributeNameTreatment) + + + + + is_scalar($value) + + + $e->getCode() + $time['day'] + $time['hour'] + $time['minute'] + $time['month'] + $time['offsethours'] + $time['offsetminutes'] + $time['second'] + + + $matches + + + $matches[1] + $value + $value + + + $matches[1] + + + $v + + + is_string($date) + + + + + null === $val + + + DN + DN + DN + DN + + + bool + + + setCaseFold + setDefaultCaseFold + + + $p + $part + $this->dn[$index] + $val + $val + $value + + + $key + + + $multi[$key] + + + $key + $multi[$key] + $p + $part + $val + $val + $val + $value + + + array + array + + + (count($values) == 1) ? $values[0] : $values + (count($values) == 1) ? $values[0] : $values + + + null + null + + + $lastKey + + + $caseFold + $caseFold + $caseFold + $caseFold + $caseFold + $caseFold + $caseFold + $k + + + $k[$i] + $k[$i] + $v[$i] + $v[$i] + + + (string) $dn + + + (int) $length + (int) $length + (int) $levelUp + (int) $offset + + + is_string($dn) + + + new static($dn, $caseFold) + new static($dnArray, $caseFold) + new static($newDn, $this->caseFold) + + + + + ! self::$errorHandler + + + + $errNo + $errString + + + $errNo + $errString + + + + + $code + + + + + $filter + $filter + + + null + + + new static($attr, $value, self::TYPE_APPROX, null, null) + new static($attr, $value, self::TYPE_EQUALS, '*', '*') + new static($attr, $value, self::TYPE_EQUALS, '*', null) + new static($attr, $value, self::TYPE_EQUALS, null, '*') + new static($attr, $value, self::TYPE_EQUALS, null, null) + new static($attr, $value, self::TYPE_GREATER, null, null) + new static($attr, $value, self::TYPE_GREATEROREQUAL, null, null) + new static($attr, $value, self::TYPE_LESS, null, null) + new static($attr, $value, self::TYPE_LESSOREQUAL, null, null) + new static($attr, '', self::TYPE_EQUALS, '*', null) + + + + + null === $val + + + $filter + $filter + + + $val + $value + + + $val + $value + + + array + array + + + (count($values) == 1) ? $values[0] : $values + (count($values) == 1) ? $values[0] : $values + + + + + $s + $sub + + + toString + + + $sub->toString() + + + + + $value + + + $args[$i] + + + + + ! is_resource($this->resource) + $accountDomainName === null + $accountDomainNameShort === null + $dname === null + $this->rootDse === null + $this->schema === null + is_resource($this->getResource()) + is_resource($this->resource) + + + $aname + $aname + $aname + + + Node + array + + + $duration * 1000000 + + + $a + $b + $resource + + + coalesce + getReconnectsAttempted + reconnectSleep + resetReconnectsAttempted + shouldReconnect + unbind + + + $c + $c + $c + $collectionClass + $entry[$key] + $entry[$key] + $entry[$key] + $entry[$key] + $host + $message + $password + $password + $resource + $this->connectString + $username + $username + $username + $username + $username + $val + $val + $value + $value + array_shift($newDnParts) + + + $this->lastConnectBindParams[$method][$parameter] + + + $$key + $accountCanonicalForm + $c + $c + $collectionClass + $err + $errorMessages[] + $host + $message + $networkTimeout + $password + $permittedOptions[$key] + $port + $reverseSort + $this->boundUser + $this->connectString + $useSsl + $useStartTls + $username + $v + $val + $value + $value + $value + $value + $value + $value + $value + $value + + + bool + bool + bool + bool + bool + bool + int + int + int + int + int + string + string + string + string + string + string + string + string + string[]|null + + + $host + $host + $port + $username + -$err + + + $accountCanonicalForm + $acct['dn'] + $err + $this->options['accountDomainName'] + $this->options['accountDomainNameShort'] + $this->options['accountFilterFormat'] + $this->options['allowEmptyPassword'] + $this->options['baseDn'] + $this->options['bindRequiresDn'] + $this->options['host'] + $this->options['networkTimeout'] + $this->options['optReferrals'] + $this->options['password'] + $this->options['port'] + $this->options['reconnectAttempts'] + $this->options['saslOpts'] + $this->options['tryUsernameSplit'] + $this->options['useSsl'] + $this->options['useStartTls'] + $this->options['username'] + + + $this->getNode($this->getBaseDn(), $this) + + + $filter + $filter + $filter + + + $filter + $filter + $filter + + + $filter + + + $attrs + $password + $sasl_authc_id + $sasl_authz_id + $sasl_mech + $sasl_props + $sasl_realm + $username + + + null + null + null + null + null + + + $err + $err + $err + $err + + + $connectString + + + (bool) $alwaysEmulate + (bool) $useSsl + (bool) $useStartTls + (int) $networkTimeout + (int) $port + (string) $collectionClass + + + $sort !== null && is_string($sort) + is_resource($this->resource) + is_resource($this->resource) + is_resource($this->resource) + is_resource($this->resource) + is_string($sort) + + + $aname + $dname + return; + + + null|Exception\LdapException + + + getNode + + + new $collectionClass($iterator) + + + ldap_free_result + + + $val + + + + + string + + + $value + + + pushAttribute + + + $this->options['version'] + $this->options['wrap'] + $v + $value + $value + + + $key + + + $entry[$name][] + + + $entry[$name] + $entry[$name] + $entry[$name] + + + $dn + $entry[$name] + $entry[$name][] + $name + $oc + $type + $v + $value + $value + + + (string) $string + + + new static($options) + new static([]) + + + + + $data === null + $ldap instanceof Ldap + $this->ldap === null + $this->newDn === null + is_array($this->children) + is_array($this->children) + + + getRdnString + + + Node + + + $this->children + + + $this + + + array + + + + $value + + + _setAttribute + _setDateTimeAttribute + loadData + markAsNew + markAsToBeDeleted + triggerEvent + + + $this->currentData[$key] + $this->originalData[$key] + $value + $value + $value + static::$systemAttributes + + + $key + $key + + + $changed[$key] + $changed[$key] + $changes['add'][$key] + $changes['add'][$key] + $changes['delete'][$key] + $changes['replace'][$key] + $value + $value + $value + $value + + + Node\Collection + + + static::fromLdap($parentDn, $ldap) + + + null + null + null + + + getRdnString + + + $events + $ldap + $newDn + + + (bool) $delete + (bool) $new + + + $dn instanceof Dn + $dn instanceof Dn + $this->events + $this->ldap !== null + $this->newDn + $this->newDn !== null + is_array($this->children) + is_array($this->children) + + + new static($dn, $data, $fromDataSource, null) + new static($dn, $data, true, $ldap) + new static($dn, [], false, null) + + + $value + + + + + public function offsetSet($name, $value) + + + $name + + + $systemAttributes + + + loadData + + + $this->currentData[$name] + static::$systemAttributes + + + $name + + + $data[$key] + $data[$name] + $value + $value + + + array + + + $this->getAttribute('objectClass', null) + + + $value + + + + + ChildrenIterator + + + $value + + + \Laminas\Ldap\Node + array|null + + + $this->data[$rdn] + current($this->data) + + + key($this->data) + string + + + + + \Laminas\Ldap\Node + string + + + string + + + $this->iterator->key() + + + + + $data['structuralobjectclass'][0] + + + array + string|null + + + $this->getAttribute('namingContexts', null) + $this->getAttribute('subschemaSubentry', 0) + + + $schemaDn + + + new static($dn, $data) + + + + + string|null + string|null + string|null + string|null + string|null + string|null + string|null + string|null + string|null + string|null + string|null + string|null + string|null + string|null + string|null + + + $this->getAttribute('configurationNamingContext', 0) + $this->getAttribute('currentTime', 0) + $this->getAttribute('defaultNamingContext', 0) + $this->getAttribute('dnsHostName', 0) + $this->getAttribute('domainControllerFunctionality', 0) + $this->getAttribute('domainFunctionality', 0) + $this->getAttribute('dsServiceName', 0) + $this->getAttribute('forestFunctionality', 0) + $this->getAttribute('highestCommittedUSN', 0) + $this->getAttribute('isGlobalCatalogReady', 0) + $this->getAttribute('isSynchronized', 0) + $this->getAttribute('ldapServiceName', 0) + $this->getAttribute('rootDomainNamingContext', 0) + $this->getAttribute('schemaNamingContext', 0) + $this->getAttribute('serverName', 0) + + + $schemaDn + + + + + string|null + string|null + + + $this->getAttribute('configContext', 0) + $this->getAttribute('monitorContext', 0) + + + + + string|null + string|null + string|null + string|null + string|null + string|null + string|null + string|null + string|null + string|null + + + $this->getAttribute('abandonOps', 0) + $this->getAttribute('chainings', 0) + $this->getAttribute('dsaName', 0) + $this->getAttribute('errors', 0) + $this->getAttribute('extendedOps', 0) + $this->getAttribute('referralsReturned', 0) + $this->getAttribute('securityErrors', 0) + $this->getAttribute('vendorName', 0) + $this->getAttribute('vendorVersion', 0) + $this->getAttribute('wholeSubtreeSearchOps', 0) + + + + + new static($dn, $data, $ldap) + + + + + $node + $node + + + + + bool + string + string + string + + + $this->ldapdisplayname[0] + + + string + + + $this->ldapdisplayname[0] + + + + + $this->_parents + + + $this->_parents[0] + + + $maxLength + + + OpenLdap|null + bool + string + string + string + string + + + $this->_parents[0] + $this->desc + $this->name + $this->oid + $this->syntax + $this->{'single-value'} + + + + + array + array + array + int + string + string + + + $this->ldapdisplayname[0] + + + string + + + $this->ldapdisplayname[0] + + + + + $this->inheritedMay === null + $this->inheritedMust === null + + + $may + $may + $must + $must + $p->getMayContain() + $p->getMustContain() + + + $may + $must + $p + + + array + array + string + string + string + + + getMayContain + getMustContain + + + $this->_parents + $this->desc + $this->name + $this->oid + $this->sup + + + null + null + + + + + ensureNameAttribute + resolveInheritance + + + $attributeType['syntax'] + $data[$token] + $parent + $tmp + $val->sup + $val->sup + $value + $value + $value + $value + $value + array_shift($tokens) + + + $data[$token][] + + + $this->attributeTypes[$alias] + $this->ldapSyntaxes[$val['oid']] + $this->matchingRuleUse[$val['name']] + $this->matchingRules[$val['name']] + $this->objectClasses[$alias] + + + $alias + $alias + $attributeType['oid'] + $data[$token] + $data[$token] + $data[$token][] + $data['_parents'][] + $data['name'] + $data['name'] + $ldapSyntax['oid'] + $matchingRuleUse['oid'] + $matchingRule['oid'] + $objectClass['oid'] + $parent + $tmp + $tmp + $value + $value + $value + $value + $value + + + null + null + null + null + null + + + + + $dn + + + cleanupLDAPServer + createDn + prepareLDAPServer + + + $dn + + + $dn + $dn + + + + $entry + + + $dn + $dn + + + self::$ldap !== null + + + ldap_add + ldap_delete + + + $entry + + + + + $object + $stream + + + $ts + 'index' + 3.1415 + true + + + $localTimestamp + $timestamp + $value + $value + + + assertLocalDateTimeString + assertUtcDateTimeString + testArrayAppendAttribute + testArrayOverwriteAttribute + testArraySetAttribute + testBooleanAttributeHandling + testGetAttributeArray + testGetAttributeValue + testGetAttributeWithWrongIndexType + testGetDateTimeValueFromArray + testGetDateTimeValueFromLocal + testGetDateTimeValueFromUtc + testGetDateTimeValueIllegal + testGetDateTimeValueNegativeOffet + testGetDateTimeValueNegativeOffet2 + testGetNonExistentAttribute + testGetNonExistentAttributeValue + testHasValue + testInvalidValue + testPasswordGenerationMD5 + testPasswordGenerationSHA + testPasswordGenerationSMD5 + testPasswordGenerationSSHA + testPasswordGenerationUnicodePwd + testPasswordSettingCustomAttribute + testPasswordSettingMD5 + testPasswordSettingSHA + testPasswordSettingUnicodePwd + testRemoveAttributeMultipleValueArray + testRemoveAttributeMultipleValueSimple + testRemoveAttributeValueArray + testRemoveAttributeValueBoolean + testRemoveAttributeValueInteger + testRemoveAttributeValueSimple + testRemoveDuplicates + testSetAttributeWithFilestream + testSetAttributeWithObject + testSetDateTimeValueIllegal + testSetDateTimeValueLocal + testSetDateTimeValueLocalArray + testSetDateTimeValueUtc + testSimpleAppendAttribute + testSimpleOverwriteAttribute + testSimpleSetAttribute + + + $data['ts'] + $localTimestamp + $timestamp + $utcTimestamp + + + $data['file'][0] + $data['object'][0] + $data['p2_false'][0] + $data['p2_true'][0] + $data['ts'][0] + $data['ts'][0] + $data['ts'][0] + $data['ts'][0] + $data['ts'][0] + $data['ts'][0] + $data['ts'][1] + $data['ts'][1] + + + $password + $password + $password + $password + $utcTimestamp + $value + $value + $value + + + $localTimestamp + + + $tsValue + false + strpos($md5, '}') + strpos($sha, '}') + strpos($smd5, '}') + strpos($ssha, '}') + + + date('YmdHis', $utcTimestamp) + + + $retTs[0] + $retTs[1] + + + + + $options + + + $altPrincipalName + $altUsername + $bindRequiresDn + $options + + + getSslLdap + testAnonymousBind + testBindWithEmptyPassword + testBindWithNullPassword + testBindWithoutDnUsernameAndDnRequired + testBoundUserIsFalseIfNotBoundToLDAP + testBoundUserIsReturnedAfterBinding + testConnectBind + testEmptyOptionsBind + testExplicitParamsBind + testNoBaseDnBind + testNoDomainNameBind + testPlainBind + testRequiresDnBind + testRequiresDnWithoutDnBind + testResourceIsAlwaysReturned + testSaslBind + testSaslBindNoExplicitUsername + + + $options + $options + $options + $options + $options + $options + $options + $options + $options + $options + $password + $this->altPrincipalName + $this->altUsername + $this->altUsername + $this->altUsername + $this->altUsername + $this->options + $this->options + $this->options + $this->options + $this->options + $this->options + $username + + + $options['accountDomainName'] + $options['baseDn'] + $options['password'] + $options['password'] + $options['password'] + $options['password'] + $options['username'] + $options['username'] + $options['username'] + $options['username'] + + + $options['accountCanonicalForm'] + $options['allowEmptyPassword'] + $options['allowEmptyPassword'] + $options['bindRequiresDn'] + $options['bindRequiresDn'] + $options['bindRequiresDn'] + $options['bindRequiresDn'] + $options['bindRequiresDn'] + $options['port'] + $options['saslOpts'] + $options['saslOpts'] + $options['useSsl'] + $options['username'] + + + $ldap + $ldap + $options + $options + $options + $options + $options + $options + $options + $options + $options + $options + $password + $username + + + bind + bind + getBoundUser + getLastErrorCode + + + + + testAccountCanonization + testDefaultAccountFilterFormat + testDnCanon + testGetUnavailableCanoncialForm + testGetUnknownCanonicalForm + testInvalidAccountCanon + testInvalidAccountName + testMismatchDomainBind + testPlainCanon + testPossibleAuthority + testSpecialCharacterInUsername + testSplittingOption + + + $form + $name + + + $names[$form] + + + $names[$form] + + + $form + $name + + + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + + + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME_SHORT') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME_SHORT') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME_SHORT') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME_SHORT') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME_SHORT') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME_SHORT') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME_SHORT') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME_SHORT') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME_SHORT') + getenv('TESTS_LAMINAS_LDAP_ACCOUNT_DOMAIN_NAME_SHORT') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + + + $names + $names + $names + + + $canon + $canon + $canon + $canon + $canon + $canon + $canon + $canon + $canon + $canon + $canon + + + + + 'Laminas\Ldap' + 'Laminas\Ldap\Ldap' + 'Laminas\Ldap\Ldap' + '\Laminas\Ldap\Ldap' + + + 512 + 512 + + + testAddNewUserWithPasswordActiveDirectory + testAddNewUserWithPasswordOpenLDAP + testChangePasswordWithUserAccountActiveDirectory + testChangePasswordWithUserAccountOpenLDAP + + + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + + + $dn + $dn + $dn + $dn + + + 'Laminas\Ldap' + + + + + $port + $port + $useSsl + + + $connectURI + $host + $ssl + + + $options + + + connectionWithoutPortInOptionsArrayProvider + testBadPortConnect + testConnectWithUri + testConnectionWithoutPortInOptionsArray + testDisconnect + testEmptyOptionsConnect + testExplicitNetworkTimeoutConnect + testExplicitParamsConnect + testExplicitPortConnect + testGetErrorCode + testMultiConnect + testNetworkTimeoutConnect + testPlainConnect + testSetOptionsConnect + testUnknownHostConnect + + + $connectURI + $options + $this->options + $this->options + $this->options + $this->options + $this->options + $this->options + $this->options + $this->options + $this->options + + + $this->options['networkTimeout'] + + + $options['port'] + + + $options + + + $host + + + $host + $host + + + + + $convert + $convert + $convert + $convert + $convert + $dateTimeAsUtc + $expect + $expect + $expect + $expect + $expect + $expect + $type + $value + $value + + + fromLdapDateTimeException + fromLdapDateTimeProvider + fromLdapProvider + fromLdapUnserializeProvider + testAsc2hex32 + testFromLdap + testFromLdapBoolean + testFromLdapDateTimeThrowsException + testFromLdapUnserialize + testFromLdapUnserializeThrowsException + testHex2asc + testToLdap + testToLdapBoolean + testToLdapDateTime + testToLdapSerialize + toLdapBooleanProvider + toLdapDateTimeProvider + toLdapProvider + toLdapSerializeProvider + + + $convert + $convert + $convert['date'] + $convert['type'] + $convert['utc'] + $dateTimeAsUtc + $type + $value + $value + + + $convert['date'] + $convert['type'] + $convert['utc'] + $convert['value'] + + + + + testRecursiveCopy + testRecursiveCopyToSubtree + testRecursiveCopyToSubtreeWithDnObjects + testRecursiveCopyWithDnObjects + testRecursiveMoveToSubtree + testRecursiveMoveToSubtreeWithDnObjects + testRecursiveRename + testRecursiveRenameWithDnObjects + testRenameEmulationSourceNotExists + testRenameEmulationTargetExists + testRenameEmulationTargetParentNotExists + testRenameSourceNotExists + testRenameTargetExists + testRenameTargetParentNotExists + testSimpleLeafCopy + testSimpleLeafCopyToSubtree + testSimpleLeafCopyToSubtreeWithDnObjects + testSimpleLeafCopyWithDnObjects + testSimpleLeafMoveAlias + testSimpleLeafMoveToSubtree + testSimpleLeafMoveToSubtreeWithDnObjects + testSimpleLeafRename + testSimpleLeafRenameEmulation + testSimpleLeafRenameEmulationWithDnObjects + testSimpleLeafRenameWithDnObjects + + + $this->createDn('ou=DoesNotExist,') + $this->createDn('ou=DoesNotExist,') + $this->createDn('ou=Test1,') + $this->createDn('ou=Test1,') + $this->createDn('ou=Test1,ou=ParentDoesNotExist,') + $this->createDn('ou=Test1,ou=ParentDoesNotExist,') + + + $dn + + + + $this->newDn + $this->newSubTreeDn + $this->orgDn + $this->orgSubTreeDn + $this->targetSubTreeDn + + + $this->orgSubTreeDn + $this->orgSubTreeDn + $this->orgSubTreeDn + $this->orgSubTreeDn + $this->orgSubTreeDn + $this->orgSubTreeDn + + + ldap_add + + + + + testAddAndDelete + testAddObjectClass + testAddWithDnObject + testAddingEntryThatHasMultipleValuesOnRdnAttribute + testAddingEntryWithMissingRdnAttribute + testAddingEntryWithMissingRdnAttributeValue + testDeleteRecursively + testIllegalAdd + testIllegalDelete + testIllegalUpdate + testPrepareLDAPEntryArray + testPrepareLDAPEntryArrayArrayData + testPrepareLDAPEntryArrayObjectData + testRemoveObjectClass + testSave + testSaveWithDnObject + testUpdate + testUpdateWithDnObject + testUpdatingEntryWithAttributeThatIsAnRdnAttribute + testUpdatingEntryWithRdnAttributeValueMissingInData + testZeroValueMakesItThroughSanitationProcess + + + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $entry['objectclass'] + $entry['objectclass'] + $entry['objectclass'] + $entry['objectclass'] + $entry['ou'] + $this->createDn('ou=TestCreated,') + $this->createDn('ou=TestCreated,') + $this->createDn('ou=TestCreated,') + $topDn + $topDn + $topDn + + + $entry['associateddomain'][0] + $entry['l'][0] + $entry['l'][0] + $entry['l'][0] + $entry['l'][0] + $entry['l'][0] + $entry['l'][0] + + + $entry['associatedDomain'][] + $entry['objectclass'][] + $entry['objectclass'][] + + + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $topDn + + + $dn + + + $entry + + + + + 1 + + + testDnCreation + testDnCreationWithDifferentCaseFoldings + testEmptyStringDn + testGetParentDn + testGetRdn + + + null + + + + + testEscapeValues + testUnescapeValues + + + + + $expected + $expected + $input + $input + + + explodeDnOperationProvider + rfc2253DnProvider + testCoreExplodeDnWithMultiValuedRdn + testCreateDnArrayIllegalDn + testExplodeDn + testExplodeDnCaseFold + testExplodeDnOperation + testExplodeDnWithMultiValuedRdn + testExplodeDnWithMultiValuedRdn2 + testExplodeDnWithSpaces + testExplodeDnWithUtf8Characters + testExplodeDnsProvidedByRFC2253 + + + $input + $input + + + $dnArray + + + + + testDnWithMultiValuedRdnRoundTrip + testImplodeDn + testImplodeDnWithUtf8Characters + testImplodeRdn + testImplodeRdnCaseFold + testImplodeRdnInvalidOne + testImplodeRdnInvalidThree + testImplodeRdnMultiValuedRdn + testImplodeRdnMultiValuedRdn2 + testImplodeRdnMultiValuedRdnCaseFold + + + + + testIsChildOf + testIsChildOfIllegalBothDn + testIsChildOfIllegalDn1 + testIsChildOfIllegalDn2 + testIsChildOfOtherSubtree + testIsChildOfParentDnLonger + testIsChildOfWithDnObjects + + + + + 'string' + + + testArrayAccessImplementation + testDnManipulationAppendAndPrepend + testDnManipulationGet + testDnManipulationInsert + testDnManipulationRemove + testDnManipulationSet + + + + + $errno + $error + + + function ($errno, $error) { + + + $dummyErrorHandler + + + testErrorHandlerRemovalWorks + testErrorHandlerSettingWorks + + + $this->dummyErrorHandler + $this->dummyErrorHandler + $this->dummyErrorHandler + $this->dummyErrorHandler + + + $errno + $error + + + + + constructorArgumentsProvider + testException + + + + + testChaining + testComplexFilter + testEscapeValues + testFilterCreation + testFilterEscapeBasicOperation + testFilterValueUtf8 + testGroupingFilter + testIllegalGroupingFilter + testNegate + testRealFilterString + testToStringImplementation + testUnescapeValues + + + $f + + + + + testDecodeSimpleSingleItem + testDecodeSimpleSingleItemWithMultilineComment + testDecodeSimpleSingleItemWithUri + testDecodeSingleItemWithBase64Attributes + testDecodeSingleItemWithFoldedAttribute + testDecodeSingleItemWithFoldedAttributesAndEmptyLinesBetween + testDecodeSingleItemWithFoldedBase64Attribute + testDecodeStringContainingBase64EncodedValue + testDecodeStringContainingEntriesWithUtf8EncodedAttributeValues + testDecodeStringContainingEntryWithFoldedAttributeValue + testDecodeTwoItems + testRoundtripEncoding + + + $actual[0]['description'] + $actual[0]['dn'] + $actual[0]['objectclass'] + $actual[0]['ou'] + $actual[0]['ou;lang-en'] + $actual[0]['ou;lang-ja'] + $actual[0]['ou;lang-ja;phonetic'] + $actual[1]['cn'] + $actual[1]['cn;lang-en'] + $actual[1]['cn;lang-ja'] + $actual[1]['cn;lang-ja;phonetic'] + $actual[1]['dn'] + $actual[1]['givenname'] + $actual[1]['givenname;lang-en'] + $actual[1]['givenname;lang-ja'] + $actual[1]['givenname;lang-ja;phonetic'] + $actual[1]['mail'] + $actual[1]['objectclass'] + $actual[1]['preferredlanguage'] + $actual[1]['sn'] + $actual[1]['sn;lang-en'] + $actual[1]['sn;lang-ja'] + $actual[1]['sn;lang-ja;phonetic'] + $actual[1]['title'] + $actual[1]['title;lang-en'] + $actual[1]['title;lang-ja'] + $actual[1]['title;lang-ja;phonetic'] + $actual[1]['uid'] + $actual[1]['userpassword'] + + + + + $array + $expected + $expected + $string + + + attributeEncodingProvider + stringEncodingProvider + testAttributeEncoding + testChangedWrapCount + testEncodeMultipleAttributes + testEncodeUnsupportedType + testEncodingWithJapaneseCharacters + testNodeEncoding + testSorting + testStringEncoding + testSupressVersionHeader + + + + + testSimpleIteration + + + $data[$k] + $v + + + assertNotNull + + + + + testCallingNextAfterIterationShouldNotThrowException + testSimpleIteration + testSimpleRecursiveIteration + + + $n->getRdnArray() + + + $base + $dn + $n + $rdn + + + getDn + getRdnArray + toString + + + $base + + + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + + + $n + $rdn + $rdn + $rdn + + + + + 'Laminas\Ldap\Node' + 'Laminas\Ldap\Node' + 'Laminas\Ldap\Node\ChildrenIterator' + 'Laminas\Ldap\Node\ChildrenIterator' + 'Laminas\Ldap\Node\ChildrenIterator' + + + getChildren + + + testCascadingAttachAndDetach + testChildrenCollectionSerialization + testGetChildrenOnAttachedNode + testGetChildrenOnDetachedNode + testHasChildrenOnAttachedNode + testHasChildrenOnDetachedNodeWithPriorGetChildren + testHasChildrenOnDetachedNodeWithoutPriorGetChildren + + + $children2 + $children2 + $this->createDn('ou=Node,') + $this->createDn('ou=Node,') + $this->createDn('ou=Node,') + $this->createDn('ou=Node,') + $this->createDn('ou=Node,') + $this->createDn('ou=Test1,') + $this->createDn('ou=Test1,') + $this->createDn('ou=Test1,') + $this->createDn('ou=Test1,ou=Node,') + $this->createDn('ou=Test1,ou=Node,') + $this->createDn('ou=Test1,ou=Node,') + + + $children2 + $children2 + $nc + $nc + $nc + $node2 + $node2 + $nodeChildren + + + attachLDAP + attachLDAP + getChildren + getChildren + getLDAP + hasChildren + hasChildren + hasChildren + hasChildren + isAttached + isAttached + isAttached + + + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + + + detachLDAP + detachLDAP + detachLDAP + detachLDAP + getChildren + getChildren + getChildren + getChildren + getChildren + getChildren + hasChildren + hasChildren + hasChildren + hasChildren + hasChildren + + + + + 'Laminas\Ldap\Node' + 'Laminas\Ldap\Node' + 'Laminas\Ldap\Node' + + + $localTimestamp + $timestamp + $value + $value + + + assertLocalDateTimeString + assertUtcDateTimeString + testAppendToAttributeFirstTime + testArrayAccess + testAttributeAccessDnGet + testCreateEmptyNode + testCreateFromArrayAndEnsureRdnValues + testCreateFromArrayIllegalDn + testCreateFromArrayMalformedDn + testCreateFromArrayMissingDn + testCreateFromArrayObjectDn + testCreateFromArrayStringDn + testDeleteUnusedAttribute + testDnObjectCloning + testExistsAttribute + testGetAttributes + testGetChangedData + testGetChanges + testGetData + testGetDnArray + testGetDnObject + testGetDnString + testGetObjectClass + testGetRdnArray + testGetRdnString + testGetSetAndDeleteMethods + testHasValue + testIllegalAttributeAccessDnSet + testIllegalAttributeAccessRdnAttributeSet + testModifyObjectClass + testOverloading + testRdnAttributesHandleMultiValuedAttribute + testRdnAttributesHandleMultiValuedAttribute2 + testRdnAttributesHandleMultiValuedAttribute3 + testRemoveDuplicates + testRemoveFromAttributeArray + testRemoveFromAttributeMultipleArray + testRemoveFromAttributeMultipleSimple + testRemoveFromAttributeSimple + testRenameNodeArray + testRenameNodeDnObject + testRenameNodeFromDataSource + testRenameNodeString + testSerialize + testToArray + testToJson + testToString + + + $data['dn'] + $data['dn'] + $data['dn'] + $localTimestamp + $node->getAttribute('key') + $node->getAttribute('key') + $node->getAttribute('userPassword') + $node->key + $node['key'] + $timestamp + $utcTimestamp + + + $node->cn[0] + $node->host[3] + $node->key[0] + $node['key'][0] + + + $cn + $cn + $newObject + $utcTimestamp + + + $localTimestamp + + + $tsValue + + + date('YmdHis', $utcTimestamp) + + + $node + $node + $node + + + + + 'Laminas\Ldap\Node' + 'Laminas\Ldap\Node' + 'Laminas\Ldap\Node' + 'Laminas\Ldap\Node\Collection' + + + ExceptionInterface::class + ExceptionInterface::class + ExceptionInterface::class + ExceptionInterface::class + [] + [] + [] + + + + getDnString + + + $node->ou + $node->ou + + + testAttachToInvalidLDAP + testAttachToValidLDAP + testChangeReadOnlySystemAttributes + testCountChildren + testCountSubtree + testDetachAndReattach + testExistsDn + testGetBaseNode + testGetIllegalNode + testGetNode + testGetNonexistentParent + testGetParent + testLoadFromLDAP + testLoadFromLDAPIllegalEntry + testLoadFromLDAPWithDnObject + testReload + testSearchChildren + testSearchSubtree + testSerialize + + + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $this->createDn('ou=Node,') + $this->createDn('ou=Node,') + $this->createDn('ou=Node,') + $this->createDn('ou=Node,') + $this->createDn('ou=Test1,') + + + $attr + + + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $newObject + + + isAttached + + + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + + + $node->ou + $node->ou + + + countChildren + countChildren + countSubtree + exists + getDn + getDnString + getParent + getParent + isAttached + isAttached + isAttached + isAttached + reload + searchChildren + searchChildren + searchSubtree + + + searchChildren + searchChildren + searchSubtree + + + $node + $node + $pnode + + + + + $value + + + assertNullOrString + testGetters + testLoadRootDseNode + testOffsetSetWillThrowException + testOffsetUnsetWillThrowException + testSetterWillThrowException + testSupportCheckMethods + testUnsetterWillThrowException + + + assertNull + + + getConfigContext + getConfigurationNamingContext + getCurrentTime + getDefaultNamingContext + getDnsHostName + getDomainControllerFunctionality + getDomainFunctionality + getDsServiceName + getDsaName + getForestFunctionality + getHighestCommittedUSN + getIsGlobalCatalogReady + getIsSynchronized + getLDAPServiceName + getMonitorContext + getRootDomainNamingContext + getSchemaNamingContext + getServerName + getStatisticsAbandonOps + getStatisticsChainings + getStatisticsErrors + getStatisticsExtendedOps + getStatisticsReferralsReturned + getStatisticsSecurityErrors + getStatisticsWholeSubtreeSearchOps + getVendorName + getVendorVersion + supportsCapability + supportsCapability + supportsControl + supportsControl + supportsControl + supportsControl + supportsExtension + supportsExtension + supportsExtension + supportsExtension + supportsFeature + supportsFeature + supportsPolicy + supportsPolicy + + + + + 'Laminas\Ldap\Node\Schema\AttributeType\OpenLdap' + 'Laminas\Ldap\Node\Schema\ObjectClass\OpenLdap' + + + testActiveDirectorySchema + testGetters + testOffsetSetWillThrowException + testOffsetUnsetWillThrowException + testOpenLDAPSchema + testOpenLDAPSchemaAttributeTypeAliases + testOpenLDAPSchemaAttributeTypeInheritance + testOpenLDAPSchemaObjectClassAliases + testOpenLDAPSchemaObjectClassInheritance + testSchemaNode + testSetterWillThrowException + testUnsetterWillThrowException + testeDirectorySchema + + + $ou->_parents[0] + $ou->_parents[0] + + + $ca + $ca2 + $cn + $name + $ob1 + $ob1 + $ob2 + $ob2 + $ou + $ou + $schemaUn + + + getDescription + getDescription + getMaxLength + getMaxLength + getMaxLength + getMayContain + getMayContain + getMayContain + getMustContain + getMustContain + getMustContain + getName + getName + getOid + getOid + getOid + getOid + getOid + getOid + getParentClasses + getSyntax + getSyntax + getSyntax + getType + isSingleValued + + + $ca->may + $ca->must + $ca->sup + $ca2->may + $ca2->must + $ca2->sup + $cn->equality + $cn->ordering + $cn->substr + $cn->sup + $cn->syntax + $cn->{'max-length'} + $name->equality + $name->ordering + $name->substr + $name->sup + $name->syntax + $name->{'max-length'} + $ou->_parents + $ou->_parents + $ou->_string + $ou->_string + $ou->abstract + $ou->aliases + $ou->aliases + $ou->auxiliary + $ou->collective + $ou->desc + $ou->desc + $ou->equality + $ou->may + $ou->must + $ou->name + $ou->name + $ou->obsolete + $ou->obsolete + $ou->oid + $ou->oid + $ou->ordering + $ou->structural + $ou->substr + $ou->sup + $ou->sup + $ou->syntax + $ou->usage + $ou->{'max-length'} + $ou->{'no-user-modification'} + $ou->{'single-value'} + + + getLDAPSyntaxes + getMatchingRuleUse + getMatchingRules + + + $attributeTypes + $objectClasses + + + + + getDn + + + $entry + + + stripActiveDirectorySystemAttributes + testAddDeletedNode + testAddNewNode + testModifyDeletedNode + testMoveDeletedExistingNode + testMoveDeletedNewNode + testMoveExistingNode + testMoveNewNode + testMoveNode + testSimpleUpdateOneValue + + + $child->getDn() + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dnNew + $dnNew + $dnNew + $dnNew + $dnNew + $dnNew + $dnNew + $dnNew + $dnNew + $dnNew + $dnNew + $dnNew + $dnNew + $dnNew + $dnNew + $dnNew + $dnOld + $dnOld + $dnOld + $dnOld + $dnOld + $dnOld + $dnOld + $dnOld + $dnOld + $dnOld + $dnOld + $dnOld + $dnOld + $dnOld + $entry + $entry + $entry['objectclass'] + $entry['objectclass'] + + + $entry[$attr] + $entry['objectclass'][0] + $node2['dn'] + $node2['dn'] + $node2['dn'] + $node2['dn'] + + + $entry['objectclass'] + + + $dn + $dn + $dn + $dn + $dnNew + $dnNew + $dnNew + $dnNew + $dnNew + $dnOld + $dnOld + $dnOld + $dnOld + $dnOld + + + $node1 + $node1 + + + getDn + move + rename + setDn + setDn + setDn + update + + + + + activateBindableOfflineMocks + reportErrorsAsConnectionFailure + testAddingAttributesReconnect + testRemovingAttributesReconnect + + + enable + enable + enable + + + + + $allowEmptyAttributes + $allowEmptyAttributes + $allowEmptyAttributes + $attributes + $attributes + $attributes + $dn + $dn + $dn + $expectedAttributesToRemove + $expectedAttributesToRemove + $expectedAttributesToRemove + $expectedDn + $expectedDn + $expectedDn + + + removingAttributesProvider + testAddingAttributes + testAddingAttributesFails + testConfigObject + testOptionsGetter + testRemovingAttributes + testRemovingAttributesFails + testUpdatingAttributes + testUpdatingAttributesFails + + + $allowEmptyAttributes + $allowEmptyAttributes + $allowEmptyAttributes + $attributes + $attributes + $attributes + $dn + $dn + $dn + + + null + + + + + getenv('TESTS_LAMINAS_LDAP_PORT') + getenv('TESTS_LAMINAS_LDAP_PORT') + + + causeLdapConnectionFailure + getStandardOptions + testAddReconnect + testConnectParameterPreservation + testDeleteReconnect + testErroneousModificationDoesNotTriggerReconnect + testMultipleReconnectAttempts + testNoReconnectWhenNotRequested + testParametersOverridePropertiesDuringReconnect + testReconnectWhenRequested + testRenameReconnect + testUpdateReconnect + triggerReconnection + + + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $new_dn + $new_dn + static::getStandardOptions() + + + $entry['l'][0] + $entry['uid'][0] + $entry['uid'][0] + $entry['uid'][0] + + + $dn + $dn + $dn + $dn + $dn + $new_dn + + + $options['port'] + + + getenv('TESTS_LAMINAS_LDAP_HOST') + getenv('TESTS_LAMINAS_LDAP_HOST') + getenv('TESTS_LAMINAS_LDAP_SCRIPTS_PORT') + + + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_ALT_USERNAME') + getenv('TESTS_LAMINAS_LDAP_BASE_DN') + getenv('TESTS_LAMINAS_LDAP_BASE_DN') + getenv('TESTS_LAMINAS_LDAP_BASE_DN') + getenv('TESTS_LAMINAS_LDAP_BASE_DN') + + + + + '\Laminas\Ldap\Collection\DefaultIterator' + + + assertNull + + + $attrib + + + customNaming + testAttributeNameTreatmentCustomFunction + testAttributeNameTreatmentCustomInstanceMethod + testAttributeNameTreatmentCustomStaticMethod + testAttributeNameTreatmentNative + testAttributeNameTreatmentToLower + testAttributeNameTreatmentToUpper + testCallingCurrentOnCollectionReturnsFirstElement + testCallingCurrentOnEmptyCollectionReturnsNull + testCallingCurrentOnEmptyIteratorReturnsNull + testCallingCurrentOnIteratorReturnsFirstElement + testCallingNextAfterIterationShouldNotThrowException + testCollectionClassNotSubclassingLaminasLDAPCollectionThrowsException + testCountBase + testCountChildren + testCountChildrenWithDnObject + testCountOne + testCountSub + testCountSubWithDnObjectAndFilterObject + testExistsDn + testExistsDnWithDnObject + testGetSingleEntry + testGetSingleEntryWithDnObject + testGetSingleIllegalEntry + testGetSingleIllegalEntryWithException + testIllegalSearch + testInnerIteratorIsOfRequiredType + testMultipleResultIteration + testResultIteration + testResultIterationAfterCallingCurrent + testReverseSortingWithSearchEntriesShortcut + testReverseSortingWithSearchEntriesShortcutWithOptionsArray + testSearchEntriesShortcut + testSearchEntriesShortcutWithDnObjectAndFilterObject + testSearchEntriesShortcutWithOptionsArray + testSearchNoResult + testSearchNothingGetFirst + testSearchNothingIteration + testSearchNothingToArray + testSearchWithDnObjectAndFilterObject + testSearchWithOptionsArray + testSorting + testUnknownCollectionClassThrowsException + testUserIsAutomaticallyBoundOnOperationInDisconnectedState + testUserIsAutomaticallyBoundOnOperationInUnboundState + + + $attrib + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn1 + $dn1 + $dn1 + $dn1 + $dn2 + $entry['ou'] + $entry['ou'] + $this->createDn('ou=Node,') + $this->createDn('ou=Node,') + $this->createDn('ou=Test1,') + $this->createDn('ou=Test2,') + $this->createDn('ou=Test99,') + + + $item['l'] + $item['l'] + $item['l'][0] + + + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn + $dn1 + $dn1 + $dn1 + $dn1 + $dn2 + $item + $item + $item + + + $dn2 + $dn2 + $dn2 + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + + + $list->current() + $list->current() + $list->current() + $list->current() + $list->current() + $list->current() + + + $item['l'] + + + $lSorted + + + assertIsArray + assertIsArray + + + $entry + $item + $item + $item + $item + $item + $item + $item + $item + $item + $item + $item + $items + $items + $items + $key + $key + $key + + + + + bin2hex($a) + bin2hex($b) + + + $a + $a + $b + $b + + + function ($a, $b) use ($lSorted) { + function ($a, $b) { + + + testCustomSorting + testSettingCallable + testSorting + + + $a + $a + $b + $b + + + $reflectionEntries[$index] + $reflectionEntries[$index] + + + $reflectionEntries + $reflectionEntries + + + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + getenv('TESTS_LAMINAS_LDAP_WRITEABLE_SUBTREE') + + + $a + $b + + + $lSorted + + + + + $ldap_bind_mock + $ldap_connect_mock + $ldap_set_option_mock + + + createMocks + + + + + $attrib + $attrib + + + name1 + name2 + + + $attrib + $attrib + + + + + getenv('TESTS_LAMINAS_LDAP_SASL_CERTIFICATE') + getenv('TESTS_LAMINAS_LDAP_SASL_KEY') + + +