public function MailUiTest::testVerboseOutput in Maillog / Mail Developer 8
Tests verbose output after send an email.
File
- tests/
src/ Functional/ MailUiTest.php, line 113
Class
- MailUiTest
- Tests the maillog plugin user interface.
Namespace
Drupal\Tests\maillog\FunctionalCode
public function testVerboseOutput() {
// Create a user with valid permissions.
$account = $this
->drupalCreateUser();
$this
->drupalLogin($this
->drupalCreateUser([
'access user contact forms',
'access user profiles',
'view maillog',
]));
// Load the contact form.
$this
->drupalGet('user/' . $account
->id() . '/contact');
$this
->assertSession()
->statusCodeEquals(200);
// Send the message.
$edit = [
'subject[0][value]' => 'Test Message',
'message[0][value]' => 'This is a test.',
];
$this
->drupalPostForm(NULL, $edit, 'Send message');
$this
->assertSession()
->statusCodeEquals(200);
// Assert the verbose output.
$this
->assertText('A mail has been sent:');
$this
->assertRaw('[To] => ' . $account
->getAccountName() . '@example.com');
$this
->assertRaw('[Header] => Array');
$this
->assertRaw('[X-Mailer] => Drupal');
$this
->assertRaw('[Content-Type] => text/plain; charset=UTF-8; format=flowed; delsp=yes');
$this
->assertRaw('[Body] => Hello ' . $account
->getAccountName());
// Set verbose to false.
$this
->config('maillog.settings')
->set('verbose', FALSE)
->save();
// Send another message.
$this
->drupalGet('user/' . $account
->id() . '/contact');
$this
->assertSession()
->statusCodeEquals(200);
$edit = [
'subject[0][value]' => 'Test Message',
'message[0][value]' => 'This is a test.',
];
$this
->drupalPostForm(NULL, $edit, 'Send message');
$this
->assertSession()
->statusCodeEquals(200);
// Assert there is no output.
$this
->assertNoText('A mail has been sent:');
$this
->assertNoRaw('[To] => ' . $account
->getAccountName() . '@example.com');
$this
->assertNoRaw('[Header] => Array');
// Tests that users without permission cannot see verbose output.
$this
->config('maillog.settings')
->set('verbose', TRUE)
->save();
$this
->drupalLogin($this
->drupalCreateUser([
'access user contact forms',
'access user profiles',
]));
$this
->drupalGet('user/' . $account
->id() . '/contact');
$this
->assertSession()
->statusCodeEquals(200);
$edit = [
'subject[0][value]' => 'Test Message',
'message[0][value]' => 'This is a test.',
];
$this
->drupalPostForm(NULL, $edit, 'Send message');
$this
->assertSession()
->statusCodeEquals(200);
// Assert there is no output.
$this
->assertNoText('A mail has been sent:');
$this
->assertNoRaw('[To] => ' . $account
->getAccountName() . '@example.com');
$this
->assertNoRaw('[Header] => Array');
}