function ContactStorageTest::testContactStorage
Tests configuration options and the site-wide contact form.
File
- 
              core/
modules/ contact/ tests/ src/ Functional/ ContactStorageTest.php, line 42  
Class
- ContactStorageTest
 - Tests storing contact messages.
 
Namespace
Drupal\Tests\contact\FunctionalCode
public function testContactStorage() : void {
  // Create and log in administrative user.
  $admin_user = $this->drupalCreateUser([
    'access site-wide contact form',
    'administer contact forms',
    'administer users',
    'administer account settings',
    'administer contact_message fields',
  ]);
  $this->drupalLogin($admin_user);
  // Create first valid contact form.
  $mail = 'simpletest@example.com';
  $this->addContactForm($id = $this->randomMachineName(16), $label = $this->randomMachineName(16), implode(',', [
    $mail,
  ]), '', TRUE, 'Your message has been sent.', [
    'send_a_pony' => 1,
  ]);
  $this->assertSession()
    ->pageTextContains('Contact form ' . $label . ' has been added.');
  // Ensure that anonymous can submit site-wide contact form.
  user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, [
    'access site-wide contact form',
  ]);
  $this->drupalLogout();
  $this->drupalGet('contact');
  $this->assertSession()
    ->pageTextContains('Your email address');
  $this->assertSession()
    ->pageTextNotContains('Form');
  $this->submitContact($name = $this->randomMachineName(16), $mail, $subject = $this->randomMachineName(16), $id, $message = $this->randomMachineName(64));
  $this->assertSession()
    ->pageTextContains('Your message has been sent.');
  $messages = Message::loadMultiple();
  /** @var \Drupal\contact\Entity\Message $message */
  $message = reset($messages);
  $this->assertEquals($id, $message->getContactForm()
    ->id());
  $this->assertTrue($message->getContactForm()
    ->getThirdPartySetting('contact_storage_test', 'send_a_pony', FALSE));
  $this->assertEquals($name, $message->getSenderName());
  $this->assertEquals($subject, $message->getSubject());
  $this->assertEquals($mail, $message->getSenderMail());
  $config = $this->config("contact.form.{$id}");
  $this->assertEquals($id, $config->get('id'));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.