fix LDAP install for systems without ldap extension (#846)
This commit is contained in:
@@ -25,7 +25,6 @@ class LdapConfigurationTest extends TestCase
|
||||
protected function getDefaultSettings()
|
||||
{
|
||||
return [
|
||||
'active' => true,
|
||||
'connection' => [
|
||||
'host' => '1.2.3.4',
|
||||
],
|
||||
@@ -41,12 +40,8 @@ class LdapConfigurationTest extends TestCase
|
||||
public function testMapping()
|
||||
{
|
||||
$sut = $this->getSut($this->getDefaultSettings());
|
||||
$this->assertTrue($sut->isActivated());
|
||||
$this->assertEquals(['foo' => 'bar'], $sut->getUserParameters());
|
||||
$this->assertEquals(['bar' => 'foo'], $sut->getRoleParameters());
|
||||
$this->assertEquals(['host' => '1.2.3.4'], $sut->getConnectionParameters());
|
||||
|
||||
$sut = $this->getSut(['active' => false]);
|
||||
$this->assertFalse($sut->isActivated());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,7 +122,6 @@ class AppExtensionTest extends TestCase
|
||||
'kimai.timesheet.rates' => [],
|
||||
'kimai.timesheet.rounding' => [],
|
||||
'kimai.ldap' => [
|
||||
'active' => false,
|
||||
'user' => [
|
||||
'baseDn' => null,
|
||||
'filter' => '',
|
||||
@@ -230,7 +229,6 @@ class AppExtensionTest extends TestCase
|
||||
{
|
||||
$minConfig = $this->getMinConfig();
|
||||
$minConfig['kimai']['ldap'] = [
|
||||
'active' => true,
|
||||
'connection' => [
|
||||
'host' => '9.9.9.9',
|
||||
'baseDn' => 'lkhiuzhkj',
|
||||
@@ -257,7 +255,6 @@ class AppExtensionTest extends TestCase
|
||||
{
|
||||
$minConfig = $this->getMinConfig();
|
||||
$minConfig['kimai']['ldap'] = [
|
||||
'active' => true,
|
||||
'connection' => [
|
||||
'host' => '9.9.9.9',
|
||||
],
|
||||
@@ -281,7 +278,6 @@ class AppExtensionTest extends TestCase
|
||||
{
|
||||
$minConfig = $this->getMinConfig();
|
||||
$minConfig['kimai']['ldap'] = [
|
||||
'active' => true,
|
||||
'connection' => [
|
||||
'host' => '9.9.9.9',
|
||||
'baseDn' => '7658765',
|
||||
|
||||
@@ -69,7 +69,6 @@ class ConfigurationTest extends TestCase
|
||||
{
|
||||
$config = $this->getMinConfig();
|
||||
$config['ldap'] = [
|
||||
'active' => true,
|
||||
'connection' => [
|
||||
'host' => 'foo'
|
||||
],
|
||||
@@ -78,22 +77,6 @@ class ConfigurationTest extends TestCase
|
||||
$this->assertConfig($config, []);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
|
||||
* @expectedExceptionMessage Invalid configuration for path "kimai.ldap": The "ldap.connection.host" config must be set if LDAP is activated.
|
||||
*/
|
||||
public function testValidateLdapConfigConnectionHost()
|
||||
{
|
||||
$config = $this->getMinConfig();
|
||||
$config['ldap'] = [
|
||||
'active' => true,
|
||||
'connection' => [
|
||||
],
|
||||
];
|
||||
|
||||
$this->assertConfig($config, []);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
|
||||
* @expectedExceptionMessage Invalid configuration for path "kimai.ldap.connection": The ldap.connection.useSsl and ldap.connection.useStartTls options are mutually exclusive.
|
||||
@@ -102,7 +85,6 @@ class ConfigurationTest extends TestCase
|
||||
{
|
||||
$config = $this->getMinConfig();
|
||||
$config['ldap'] = [
|
||||
'active' => false,
|
||||
'connection' => [
|
||||
'useSsl' => true,
|
||||
'useStartTls' => true,
|
||||
@@ -120,7 +102,6 @@ class ConfigurationTest extends TestCase
|
||||
{
|
||||
$config = $this->getMinConfig();
|
||||
$config['ldap'] = [
|
||||
'active' => true,
|
||||
'user' => [
|
||||
'filter' => '(sdfsdfsdf)(uid=%s)',
|
||||
],
|
||||
@@ -137,7 +118,6 @@ class ConfigurationTest extends TestCase
|
||||
{
|
||||
$config = $this->getMinConfig();
|
||||
$config['ldap'] = [
|
||||
'active' => true,
|
||||
'user' => [
|
||||
'filter' => 's(dfsdfsdf)',
|
||||
],
|
||||
@@ -154,7 +134,6 @@ class ConfigurationTest extends TestCase
|
||||
{
|
||||
$config = $this->getMinConfig();
|
||||
$config['ldap'] = [
|
||||
'active' => true,
|
||||
'user' => [
|
||||
'filter' => '(dfsdfsdf))',
|
||||
],
|
||||
@@ -171,7 +150,6 @@ class ConfigurationTest extends TestCase
|
||||
{
|
||||
$config = $this->getMinConfig();
|
||||
$config['ldap'] = [
|
||||
'active' => false,
|
||||
'connection' => [
|
||||
'accountFilterFormat' => '(sdfsdfsdf)(uid=xx)',
|
||||
],
|
||||
@@ -188,7 +166,6 @@ class ConfigurationTest extends TestCase
|
||||
{
|
||||
$config = $this->getMinConfig();
|
||||
$config['ldap'] = [
|
||||
'active' => true,
|
||||
'connection' => [
|
||||
'accountFilterFormat' => 's(dfsdfsdf)',
|
||||
],
|
||||
@@ -205,7 +182,6 @@ class ConfigurationTest extends TestCase
|
||||
{
|
||||
$config = $this->getMinConfig();
|
||||
$config['ldap'] = [
|
||||
'active' => true,
|
||||
'connection' => [
|
||||
'accountFilterFormat' => '(dfsdfsdf))',
|
||||
],
|
||||
@@ -218,7 +194,6 @@ class ConfigurationTest extends TestCase
|
||||
{
|
||||
$finalizedConfig = $this->getCompiledConfig($this->getMinConfig());
|
||||
$expected = [
|
||||
'active' => false,
|
||||
'user' => [
|
||||
'baseDn' => '',
|
||||
'filter' => '',
|
||||
|
||||
@@ -24,44 +24,11 @@ use Symfony\Component\Security\Core\User\UserChecker;
|
||||
*/
|
||||
class LdapAuthenticationProviderTest extends TestCase
|
||||
{
|
||||
public function testDeactivatedSupports()
|
||||
{
|
||||
$manager = $this->getMockBuilder(LdapManager::class)->disableOriginalConstructor()->getMock();
|
||||
$config = new LdapConfiguration(['active' => false]);
|
||||
$userProvider = new LdapUserProvider($manager, $config);
|
||||
$providerKey = 'secured_area';
|
||||
$userChecker = new UserChecker();
|
||||
|
||||
$token = new UsernamePasswordToken('foo', 'bar', $providerKey);
|
||||
|
||||
$sut = new LdapAuthenticationProvider($userChecker, $providerKey, $userProvider, $manager, $config, false);
|
||||
$result = $sut->supports($token);
|
||||
self::assertFalse($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Symfony\Component\Security\Core\Exception\AuthenticationException
|
||||
* @expectedExceptionMessage The token is not supported by this authentication provider.
|
||||
*/
|
||||
public function testDeactivatedAuthenticate()
|
||||
{
|
||||
$manager = $this->getMockBuilder(LdapManager::class)->disableOriginalConstructor()->getMock();
|
||||
$config = new LdapConfiguration(['active' => false]);
|
||||
$userProvider = new LdapUserProvider($manager, $config);
|
||||
$providerKey = 'secured_area';
|
||||
$userChecker = new UserChecker();
|
||||
|
||||
$token = new UsernamePasswordToken('foo', 'bar', $providerKey);
|
||||
|
||||
$sut = new LdapAuthenticationProvider($userChecker, $providerKey, $userProvider, $manager, $config, false);
|
||||
$sut->authenticate($token);
|
||||
}
|
||||
|
||||
public function testSupports()
|
||||
{
|
||||
$manager = $this->getMockBuilder(LdapManager::class)->disableOriginalConstructor()->getMock();
|
||||
$config = new LdapConfiguration(['active' => true]);
|
||||
$userProvider = new LdapUserProvider($manager, $config);
|
||||
$config = new LdapConfiguration([]);
|
||||
$userProvider = new LdapUserProvider($manager);
|
||||
$providerKey = 'secured_area';
|
||||
$userChecker = new UserChecker();
|
||||
|
||||
@@ -76,11 +43,11 @@ class LdapAuthenticationProviderTest extends TestCase
|
||||
* @expectedException \Symfony\Component\Security\Core\Exception\BadCredentialsException
|
||||
* @expectedExceptionMessage The password in the token is empty. Check `erase_credentials` in your `security.yaml`
|
||||
*/
|
||||
public function testAuthenticateWithTokenUserButEnptyPasswordThrowsException()
|
||||
public function testAuthenticateWithTokenUserButEmptyPasswordThrowsException()
|
||||
{
|
||||
$manager = $this->getMockBuilder(LdapManager::class)->disableOriginalConstructor()->getMock();
|
||||
$config = new LdapConfiguration(['active' => true]);
|
||||
$userProvider = new LdapUserProvider($manager, $config);
|
||||
$config = new LdapConfiguration([]);
|
||||
$userProvider = new LdapUserProvider($manager);
|
||||
$providerKey = 'secured_area';
|
||||
$userChecker = new UserChecker();
|
||||
|
||||
@@ -99,7 +66,7 @@ class LdapAuthenticationProviderTest extends TestCase
|
||||
{
|
||||
$user = (new User())->setUsername('foo')->setEnabled(true);
|
||||
$manager = $this->getMockBuilder(LdapManager::class)->disableOriginalConstructor()->getMock();
|
||||
$config = new LdapConfiguration(['active' => true]);
|
||||
$config = new LdapConfiguration([]);
|
||||
$userProvider = $this->getMockBuilder(LdapUserProvider::class)->disableOriginalConstructor()->setMethods(['loadUserByUsername'])->getMock();
|
||||
$userProvider->expects($this->once())->method('loadUserByUsername')->willReturn($user);
|
||||
$providerKey = 'secured_area';
|
||||
@@ -120,7 +87,7 @@ class LdapAuthenticationProviderTest extends TestCase
|
||||
$user = (new User())->setUsername('foo')->setEnabled(true);
|
||||
$manager = $this->getMockBuilder(LdapManager::class)->disableOriginalConstructor()->setMethods(['bind'])->getMock();
|
||||
$manager->expects($this->once())->method('bind')->willReturn(false);
|
||||
$config = new LdapConfiguration(['active' => true]);
|
||||
$config = new LdapConfiguration([]);
|
||||
$userProvider = $this->getMockBuilder(LdapUserProvider::class)->disableOriginalConstructor()->setMethods(['loadUserByUsername'])->getMock();
|
||||
$userProvider->expects($this->once())->method('loadUserByUsername')->willReturn($user);
|
||||
$providerKey = 'secured_area';
|
||||
@@ -141,7 +108,7 @@ class LdapAuthenticationProviderTest extends TestCase
|
||||
$user = (new User())->setUsername('foo')->setEnabled(true);
|
||||
$manager = $this->getMockBuilder(LdapManager::class)->disableOriginalConstructor()->setMethods(['bind'])->getMock();
|
||||
$manager->expects($this->once())->method('bind')->willReturn(false);
|
||||
$config = new LdapConfiguration(['active' => true]);
|
||||
$config = new LdapConfiguration([]);
|
||||
$userProvider = $this->getMockBuilder(LdapUserProvider::class)->disableOriginalConstructor()->setMethods(['loadUserByUsername'])->getMock();
|
||||
$userProvider->expects($this->never())->method('loadUserByUsername');
|
||||
$providerKey = 'secured_area';
|
||||
@@ -162,7 +129,7 @@ class LdapAuthenticationProviderTest extends TestCase
|
||||
$manager->expects($this->once())->method('updateUser')->willReturnCallback(function ($updateUser) use ($user) {
|
||||
self::assertSame($updateUser, $user);
|
||||
});
|
||||
$config = new LdapConfiguration(['active' => true]);
|
||||
$config = new LdapConfiguration([]);
|
||||
$userProvider = $this->getMockBuilder(LdapUserProvider::class)->disableOriginalConstructor()->setMethods(['loadUserByUsername'])->getMock();
|
||||
$userProvider->expects($this->once())->method('loadUserByUsername')->willReturn($user);
|
||||
$providerKey = 'secured_area';
|
||||
@@ -184,7 +151,7 @@ class LdapAuthenticationProviderTest extends TestCase
|
||||
$manager->expects($this->once())->method('updateUser')->willReturnCallback(function ($updateUser) use ($user) {
|
||||
self::assertSame($updateUser, $user);
|
||||
});
|
||||
$config = new LdapConfiguration(['active' => true]);
|
||||
$config = new LdapConfiguration([]);
|
||||
$userProvider = $this->getMockBuilder(LdapUserProvider::class)->disableOriginalConstructor()->setMethods(['loadUserByUsername'])->getMock();
|
||||
$userProvider->expects($this->never())->method('loadUserByUsername');
|
||||
$providerKey = 'secured_area';
|
||||
@@ -204,7 +171,7 @@ class LdapAuthenticationProviderTest extends TestCase
|
||||
public function testAuthenticateThrowsExceptionOnLdapNotFound()
|
||||
{
|
||||
$manager = $this->getMockBuilder(LdapManager::class)->disableOriginalConstructor()->getMock();
|
||||
$config = new LdapConfiguration(['active' => true]);
|
||||
$config = new LdapConfiguration([]);
|
||||
$userProvider = $this->getMockBuilder(LdapUserProvider::class)->disableOriginalConstructor()->setMethods(['loadUserByUsername'])->getMock();
|
||||
$userProvider->expects($this->once())->method('loadUserByUsername')->willThrowException(new UsernameNotFoundException('blub foo bar'));
|
||||
$providerKey = 'secured_area';
|
||||
@@ -224,7 +191,7 @@ class LdapAuthenticationProviderTest extends TestCase
|
||||
public function testAuthenticateThrowsExceptionOnLdapDown()
|
||||
{
|
||||
$manager = $this->getMockBuilder(LdapManager::class)->disableOriginalConstructor()->getMock();
|
||||
$config = new LdapConfiguration(['active' => true]);
|
||||
$config = new LdapConfiguration([]);
|
||||
$userProvider = $this->getMockBuilder(LdapUserProvider::class)->disableOriginalConstructor()->setMethods(['loadUserByUsername'])->getMock();
|
||||
$userProvider->expects($this->once())->method('loadUserByUsername')->willThrowException(new \Exception('server away', 1234));
|
||||
$providerKey = 'secured_area';
|
||||
|
||||
@@ -20,13 +20,21 @@ use Zend\Ldap\Ldap;
|
||||
*/
|
||||
class LdapDriverTest extends TestCase
|
||||
{
|
||||
protected function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
if (!class_exists('Zend\Ldap\Ldap')) {
|
||||
$this->markTestSkipped('LDAP is not installed');
|
||||
}
|
||||
}
|
||||
|
||||
public function testBindSuccess()
|
||||
{
|
||||
$zendLdap = $this->getMockBuilder(Ldap::class)->disableOriginalConstructor()->setMethods(['bind'])->getMock();
|
||||
$zendLdap->expects($this->once())->method('bind')->willReturnSelf();
|
||||
|
||||
$user = new User();
|
||||
$sut = new LdapDriver($zendLdap);
|
||||
$sut = new TestLdapDriver($zendLdap);
|
||||
$result = $sut->bind($user, 'test123');
|
||||
self::assertTrue($result);
|
||||
}
|
||||
@@ -37,7 +45,7 @@ class LdapDriverTest extends TestCase
|
||||
$zendLdap->expects($this->once())->method('bind')->willThrowException(new LdapException());
|
||||
|
||||
$user = new User();
|
||||
$sut = new LdapDriver($zendLdap);
|
||||
$sut = new TestLdapDriver($zendLdap);
|
||||
$result = $sut->bind($user, 'test123');
|
||||
self::assertFalse($result);
|
||||
}
|
||||
@@ -48,7 +56,7 @@ class LdapDriverTest extends TestCase
|
||||
$zendLdap->expects($this->once())->method('bind');
|
||||
$zendLdap->expects($this->once())->method('searchEntries')->willReturn([1, 2, 3]);
|
||||
|
||||
$sut = new LdapDriver($zendLdap);
|
||||
$sut = new TestLdapDriver($zendLdap);
|
||||
$result = $sut->search('', '', []);
|
||||
self::assertEquals(['count' => 3, 1, 2, 3], $result);
|
||||
}
|
||||
@@ -65,7 +73,15 @@ class LdapDriverTest extends TestCase
|
||||
new LdapException($zendLdap, '', LdapException::LDAP_SERVER_DOWN)
|
||||
);
|
||||
|
||||
$sut = new LdapDriver($zendLdap);
|
||||
$sut = new TestLdapDriver($zendLdap);
|
||||
$sut->search('', '', []);
|
||||
}
|
||||
}
|
||||
|
||||
class TestLdapDriver extends LdapDriver
|
||||
{
|
||||
public function __construct(Ldap $ldap)
|
||||
{
|
||||
$this->driver = $ldap;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,6 @@ class LdapUserHydratorTest extends TestCase
|
||||
public function testEmptyHydrate()
|
||||
{
|
||||
$config = new LdapConfiguration([
|
||||
'active' => false,
|
||||
'connection' => [
|
||||
'host' => '1.1.1.1'
|
||||
],
|
||||
@@ -44,7 +43,6 @@ class LdapUserHydratorTest extends TestCase
|
||||
public function testHydrate()
|
||||
{
|
||||
$config = new LdapConfiguration([
|
||||
'active' => false,
|
||||
'connection' => [
|
||||
'host' => '1.1.1.1'
|
||||
],
|
||||
@@ -88,7 +86,6 @@ class LdapUserHydratorTest extends TestCase
|
||||
public function testHydrateUser()
|
||||
{
|
||||
$config = new LdapConfiguration([
|
||||
'active' => false,
|
||||
'connection' => [
|
||||
'host' => '1.1.1.1'
|
||||
],
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
|
||||
namespace App\Tests\Ldap;
|
||||
|
||||
use App\Configuration\LdapConfiguration;
|
||||
use App\Entity\User;
|
||||
use App\Ldap\LdapManager;
|
||||
use App\Ldap\LdapUserProvider;
|
||||
@@ -20,41 +19,6 @@ use PHPUnit\Framework\TestCase;
|
||||
*/
|
||||
class LdapUserProviderTest extends TestCase
|
||||
{
|
||||
public function testDeactivatedSupportsClass()
|
||||
{
|
||||
$manager = $this->getMockBuilder(LdapManager::class)->disableOriginalConstructor()->getMock();
|
||||
$config = new LdapConfiguration(['active' => false]);
|
||||
|
||||
$sut = new LdapUserProvider($manager, $config);
|
||||
self::assertFalse($sut->supportsClass(User::class));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Symfony\Component\Security\Core\Exception\UsernameNotFoundException
|
||||
* @expectedExceptionMessage LDAP is deactivated, user "test" not searched
|
||||
*/
|
||||
public function testDeactivatedLoadUserByUsername()
|
||||
{
|
||||
$manager = $this->getMockBuilder(LdapManager::class)->disableOriginalConstructor()->getMock();
|
||||
$config = new LdapConfiguration(['active' => false]);
|
||||
|
||||
$sut = new LdapUserProvider($manager, $config);
|
||||
$sut->loadUserByUsername('test');
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Symfony\Component\Security\Core\Exception\UnsupportedUserException
|
||||
* @expectedExceptionMessage Instances of "App\Entity\User" are not supported.
|
||||
*/
|
||||
public function testDeactivatedRefreshUser()
|
||||
{
|
||||
$manager = $this->getMockBuilder(LdapManager::class)->disableOriginalConstructor()->getMock();
|
||||
$config = new LdapConfiguration(['active' => false]);
|
||||
|
||||
$sut = new LdapUserProvider($manager, $config);
|
||||
$sut->refreshUser(new User());
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Symfony\Component\Security\Core\Exception\UsernameNotFoundException
|
||||
* @expectedExceptionMessage User "test" not found
|
||||
@@ -63,9 +27,8 @@ class LdapUserProviderTest extends TestCase
|
||||
{
|
||||
$manager = $this->getMockBuilder(LdapManager::class)->disableOriginalConstructor()->setMethods(['findUserByUsername'])->getMock();
|
||||
$manager->expects($this->once())->method('findUserByUsername')->willReturn(null);
|
||||
$config = new LdapConfiguration(['active' => true]);
|
||||
|
||||
$sut = new LdapUserProvider($manager, $config);
|
||||
$sut = new LdapUserProvider($manager);
|
||||
$sut->loadUserByUsername('test');
|
||||
}
|
||||
|
||||
@@ -76,9 +39,8 @@ class LdapUserProviderTest extends TestCase
|
||||
|
||||
$manager = $this->getMockBuilder(LdapManager::class)->disableOriginalConstructor()->setMethods(['findUserByUsername'])->getMock();
|
||||
$manager->expects($this->once())->method('findUserByUsername')->willReturn($user);
|
||||
$config = new LdapConfiguration(['active' => true]);
|
||||
|
||||
$sut = new LdapUserProvider($manager, $config);
|
||||
$sut = new LdapUserProvider($manager);
|
||||
$actual = $sut->loadUserByUsername('test');
|
||||
self::assertInstanceOf(User::class, $actual);
|
||||
self::assertSame($user, $actual);
|
||||
@@ -91,9 +53,8 @@ class LdapUserProviderTest extends TestCase
|
||||
$user->setPreferenceValue('ldap.dn', 'sdfdsf');
|
||||
|
||||
$manager = $this->getMockBuilder(LdapManager::class)->disableOriginalConstructor()->setMethods(['updateUser'])->getMock();
|
||||
$config = new LdapConfiguration(['active' => true]);
|
||||
|
||||
$sut = new LdapUserProvider($manager, $config);
|
||||
$sut = new LdapUserProvider($manager);
|
||||
$actual = $sut->refreshUser($user);
|
||||
|
||||
self::assertInstanceOf(User::class, $actual);
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Kimai time-tracking app.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace App\Tests\Ldap;
|
||||
|
||||
use App\Configuration\LdapConfiguration;
|
||||
use App\Ldap\ZendLdap;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* @covers \App\Ldap\ZendLdap
|
||||
*/
|
||||
class ZendLdapTest extends TestCase
|
||||
{
|
||||
public function testConstructDeactivated()
|
||||
{
|
||||
$config = new LdapConfiguration([
|
||||
'active' => false,
|
||||
'connection' => [
|
||||
'host' => '1.1.1.1'
|
||||
]
|
||||
]);
|
||||
|
||||
$sut = new ZendLdap($config);
|
||||
$options = $sut->getOptions();
|
||||
self::assertNull($options['host']);
|
||||
}
|
||||
|
||||
public function testConstructActivatedPassesOptions()
|
||||
{
|
||||
$config = new LdapConfiguration([
|
||||
'active' => true,
|
||||
'connection' => [
|
||||
'host' => '1.1.1.1'
|
||||
]
|
||||
]);
|
||||
|
||||
$sut = new ZendLdap($config);
|
||||
$options = $sut->getOptions();
|
||||
self::assertEquals('1.1.1.1', $options['host']);
|
||||
}
|
||||
}
|
||||
@@ -8,3 +8,5 @@ parameters:
|
||||
- '#Access to an undefined property Faker\\Generator::\$stateAbbr.#'
|
||||
- '#Access to an undefined property Faker\\Generator::\$catchPhrase.#'
|
||||
- '#Access to an undefined property Faker\\Generator::\$bs.#'
|
||||
excludes_analyse:
|
||||
- %rootDir%/../../../tests/Ldap/LdapDriverTest.php
|
||||
|
||||
Reference in New Issue
Block a user