SettingsFormTest.php in Auto Purge Users 8.3
File
tests/src/Functional/SettingsFormTest.php
View source
<?php
declare (strict_types=1);
namespace Drupal\Tests\purge_users\Functional;
use Drupal\Tests\BrowserTestBase;
use Drupal\user\Entity\Role;
class SettingsFormTest extends BrowserTestBase {
protected static $modules = [
'purge_users',
];
protected $defaultTheme = 'stark';
public function setUp() : void {
parent::setUp();
$this
->drupalLogin($this
->createUser([
'administer site configuration',
'administer permissions',
'administer account settings',
'administer users',
]));
Role::create([
'id' => 'administrator',
'label' => 'administrator',
])
->save();
}
public function testConfigForm() : void {
$assert = $this
->assertSession();
$page = $this
->getSession()
->getPage();
$edit = $this
->getFormValues();
$roles = \Drupal::entityTypeManager()
->getStorage('user_role')
->loadMultiple();
$this
->assertGreaterThanOrEqual(2, count($roles));
$this
->drupalGet('admin/people/purge-rule');
$assert
->statusCodeEquals(200);
foreach ($edit as $key => $value) {
$page
->fillField($key, $value);
}
$page
->findButton('Save configuration')
->press();
$assert
->statusCodeEquals(200);
$assert
->pageTextContains('The configuration options have been saved.');
$this
->drupalGet('admin/people/purge-rule');
$assert
->statusCodeEquals(200);
$assert
->fieldValueEquals('user_never_lastlogin_value', '20');
$assert
->fieldValueEquals('user_never_lastlogin_period', 'days');
$assert
->fieldValueEquals('enabled_never_loggedin_users', TRUE);
$assert
->fieldValueEquals('user_lastlogin_value', '');
$assert
->fieldValueEquals('user_lastlogin_period', 'days');
$assert
->fieldValueEquals('user_inactive_value', '');
$assert
->fieldValueEquals('user_inactive_period', 'days');
$assert
->fieldValueEquals('user_blocked_value', '');
$assert
->fieldValueEquals('user_blocked_period', 'days');
$assert
->fieldValueEquals('enabled_loggedin_users', FALSE);
$assert
->fieldValueEquals('enabled_inactive_users', FALSE);
$assert
->fieldValueEquals('enabled_blocked_users', FALSE);
$assert
->fieldValueEquals('purge_included_users_roles[authenticated]', 'authenticated');
$assert
->fieldValueEquals('purge_excluded_users_roles[administrator]', 'administrator');
$assert
->fieldValueEquals('purge_on_cron', FALSE);
$assert
->fieldValueEquals('purge_user_cancel_method', 'user_cancel_block');
$assert
->fieldValueEquals('disregard_blocked_users', FALSE);
}
protected function getFormValues() : array {
$edit['purge_excluded_users_roles[administrator]'] = 'administrator';
$edit['purge_included_users_roles[authenticated]'] = 'authenticated';
$edit['purge_user_cancel_method'] = 'user_cancel_block';
$edit['user_never_lastlogin_value'] = '20';
$edit['user_never_lastlogin_period'] = 'days';
$edit['enabled_never_loggedin_users'] = TRUE;
$edit['enabled_inactive_users'] = FALSE;
$edit['enabled_loggedin_users'] = FALSE;
$edit['enabled_blocked_users'] = FALSE;
$edit['send_email_notification'] = FALSE;
return $edit;
}
}