View source
<?php
namespace Drupal\Tests\simple_ldap_user\Functional;
use Drupal\Core\Url;
use Drupal\Tests\BrowserTestBase;
class SimpleLdapUserTest extends BrowserTestBase {
public static $modules = [
'simple_ldap',
'simple_ldap_user',
];
protected function setUp() {
if (!extension_loaded('ldap')) {
$this
->markTestSkipped("Skipping because the PHP LDAP extension is not enabled.");
}
parent::setUp();
if (!extension_loaded('ldap')) {
$this
->markTestSkipped("Skipping because the PHP LDAP extension is not enabled.");
}
$server_config = \Drupal::configFactory()
->getEditable('simple_ldap.server');
$server_config
->set('host', 'ldap.forumsys.com')
->set('port', 389)
->set('encryption', 'none')
->set('readonly', TRUE)
->set('binddn', 'cn=read-only-admin,dc=example,dc=com')
->set('bindpw', 'password')
->save();
$user_config = \Drupal::configFactory()
->getEditable('simple_ldap.user');
$user_config
->set('basedn', 'dc=example,dc=com')
->set('user_scope', 'sub')
->set('object_class.inetorgperson', 'inetorgperson')
->set('object_class.organizationalperson', 'organizationalperson')
->set('object_class.person', 'person')
->set('object_class.top', 'top')
->set('name_attribute', 'uid')
->set('mail_attribute', 'mail')
->save();
}
public function testSimpleLdapUserLogin() {
$user_login_url = Url::fromRoute("user.login")
->toString();
$edit = [
'name' => 'einstein',
'pass' => 'password',
];
$this
->drupalPostForm($user_login_url, $edit, t('Log in'));
$this
->assertText(t('New user created for einstein.'));
$edit = [
'name' => 'einstein',
'pass' => 'incorrect!',
];
$this
->drupalPostForm($user_login_url, $edit, t('Log in'));
$this
->assertText(t('Could not authenticate with your username/password in LDAP. Please contact your site administrator.'));
$edit = [
'name' => 'nobodyNotExists',
'pass' => 'incorrect!',
];
$this
->drupalPostForm($user_login_url, $edit, t('Log in'));
$this
->assertText(t('An account could not be found or an ID conflict has been detected. Please contact your site administrator.'));
}
}