QueueMailConfigurationTest.php in Queue Mail 8
File
tests/src/Functional/QueueMailConfigurationTest.php
View source
<?php
namespace Drupal\Tests\queue_mail\Functional;
use Drupal\Tests\BrowserTestBase;
class QueueMailConfigurationTest extends BrowserTestBase {
protected $adminUser;
protected $defaultTheme = 'stark';
const CONFIGURATION_PATH = 'admin/config/system/queue_mail';
protected static $modules = [
'queue_mail',
];
public function setUp() : void {
parent::setUp();
$this->adminUser = $this
->drupalCreateUser([
'administer site configuration',
]);
}
public function testDefaultConfiguration() {
$this
->drupalLogin($this->adminUser);
$this
->drupalGet(static::CONFIGURATION_PATH);
$default_values = [
'queue_mail_keys' => '',
'queue_mail_queue_time' => 15,
'queue_mail_queue_wait_time' => 0,
'threshold' => 50,
'requeue_interval' => 10800,
];
foreach ($default_values as $field => $value) {
$this
->assertSession()
->fieldValueEquals($field, $value);
}
}
public function testChangeConfiguration() {
$this
->drupalLogin($this->adminUser);
$this
->drupalGet(static::CONFIGURATION_PATH);
$edit = [
'queue_mail_keys' => '*',
'queue_mail_queue_time' => 60,
'queue_mail_queue_wait_time' => 15,
'threshold' => 100,
'requeue_interval' => 21600,
];
$this
->submitForm($edit, 'Save configuration');
$this
->drupalGet(static::CONFIGURATION_PATH);
foreach ($edit as $field => $value) {
$this
->assertSession()
->fieldValueEquals($field, $value);
}
}
public function testWaitTimePerItemValidation() {
$this
->drupalLogin($this->adminUser);
$validation_text = '"Wait time per item" value can not be bigger than "Queue processing time" value.';
$edit = [
'queue_mail_queue_time' => 30,
'queue_mail_queue_wait_time' => 35,
];
$this
->drupalGet(static::CONFIGURATION_PATH);
$this
->submitForm($edit, 'Save configuration');
$this
->assertSession()
->responseContains($validation_text);
$edit = [
'queue_mail_queue_time' => 30,
'queue_mail_queue_wait_time' => 25,
];
$this
->submitForm($edit, 'Save configuration');
$this
->assertSession()
->responseNotContains($validation_text);
}
}