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.
 *
 * @ingroup email_example
 */
class EmailExampleTestCase extends DrupalWebTestCase {
    
    /**
     * {@inheritdoc}
     */
    public static function getInfo() {
        return array(
            'name' => '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.');
    }

}

Classes

Title Deprecated Summary
EmailExampleTestCase Functionality tests for email example module.