You are here

email_example.test in Examples for Developers 6

Same filename and directory in other branches
  1. 7 email_example/email_example.test

Simpletest case for email_example module.

Verify example module functionality.

File

email_example/email_example.test
View source
<?php

/**
 * @file
 * Simpletest case for email_example module.
 *
 * Verify example module functionality.
 */

/**
 * Functionality tests for email example module.
 */
class EmailExampleTestCase extends DrupalWebTestCase {
  public static function getInfo() {
    return array(
      'name' => 'Email example',
      'description' => 'Verify the email submission using the contact form.',
      'group' => 'Examples',
    );
  }
  function setUp() {

    // Enable the exmaple module.
    parent::setUp('email_example');
  }

  /**
   * Verify the functionality of the example module.
   */
  function testContactForm() {

    // Create and login user.
    $account = $this
      ->drupalCreateUser();
    $this
      ->drupalLogin($account);
    $language = language_default();

    // First try to send to an invalid email address.
    $email_options = array(
      'email' => $this
        ->randomName(),
      'message' => $this
        ->randomString(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.'), t('Options were validated and form submitted.'));
    $this
      ->assertTrue(!count($this
      ->drupalGetMails()), t('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
      ->assertText(t('Your message has been sent.'), t('Options were validated and form submitted.'));
    $this
      ->assertTrue(count($this
      ->drupalGetMails()), t('An email has been sent.'));

    // Validate sent email. Try to find it using the recipient argument.
    $email = $this
      ->drupalGetMails(array(
      'email' => $email_options['email'],
    ));

    // Grab the first email.
    $email = $email[0];

    // Verify email recipient.
    $this
      ->assertEqual($email['to'], $email_options['email'], t('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'),
    ), $language->language), t('Email subject successfully verified.'));

    // Verify email body.
    $this
      ->assertTrue(strstr($email['body'], t('@name sent you the following message:', array(
      '@name' => $account->name,
    ), $language->language)), t('Email body successfully verified.'));

    // Verify that signature is attached.
    $this
      ->assertTrue(strstr($email['body'], t("--\nMail altered by email_example module.", array(), $language->language)), t('Email signature successfully verified.'));
  }

}

Classes

Namesort descending Description
EmailExampleTestCase Functionality tests for email example module.