104 lines
2.8 KiB
Plaintext
104 lines
2.8 KiB
Plaintext
<?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.'
|
|
);
|
|
}
|
|
}
|