'Email example', 'description' => 'Verify the email submission using the contact form.', 'group' => 'Examples', ); } /** * {@inheritdoc} */ public function setUp() { // Enable the email_example module. parent::setUp('email_example'); } /** * Verify the functionality of the example module. */ public function testContactForm() { // Create and login user. $account = $this->drupalCreateUser(); $this->drupalLogin($account); // Set default language for t() translations. $t_options = array( 'langcode' => language_default()->language, ); // First try to send to an invalid email address. $email_options = array( 'email' => $this->randomName(), 'message' => $this->randomName(128), ); $result = $this->drupalPost('example/email_example', $email_options, t('Submit')); // Verify that email address is invalid and email was not sent. $this->assertText(t('That e-mail address is not valid.'), 'Options were validated and form submitted.'); $this->assertTrue(!count($this->drupalGetMails()), 'No email was sent.'); // Now try with a valid email address. $email_options['email'] = $this->randomName() . '@' . $this->randomName() . '.drupal'; $result = $this->drupalPost('example/email_example', $email_options, t('Submit')); // Verify that email address is valid and email was sent. $this->assertTrue(count($this->drupalGetMails()), 'An email has been sent.'); // Validate sent email. $email = $this->drupalGetMails(); // Grab the first entry. $email = $email[0]; // Verify email recipient. $this->assertEqual( $email['to'], $email_options['email'], 'Email recipient successfully verified.' ); // Verify email subject. $this->assertEqual( $email['subject'], t('E-mail sent from @site-name', array('@site-name' => variable_get('site_name', 'Drupal')), $t_options), 'Email subject successfully verified.' ); // Verify email body. $this->assertTrue( strstr( $email['body'], t('@name sent you the following message:', array('@name' => $account->name), $t_options) ), 'Email body successfully verified.' ); // Verify that signature is attached. $this->assertTrue( strstr( $email['body'], t("--\nMail altered by email_example module.", array(), $t_options) ), 'Email signature successfully verified.' ); } }