67 lines
1.8 KiB
Plaintext
67 lines
1.8 KiB
Plaintext
<?php
|
|
// $Id$
|
|
|
|
/**
|
|
* Test the Drupal mailing system.
|
|
*/
|
|
class MailTestCase extends DrupalWebTestCase implements MailSystemInterface {
|
|
/**
|
|
* The most recent message that was sent through the test case.
|
|
*
|
|
* We take advantage here of the fact that static variables are shared among
|
|
* all instance of the same class.
|
|
*/
|
|
private static $sent_message;
|
|
|
|
function getInfo() {
|
|
return array(
|
|
'name' => 'Mail system',
|
|
'description' => 'Performs tests on the pluggable mailing framework.',
|
|
'group' => 'System',
|
|
);
|
|
}
|
|
|
|
function setUp() {
|
|
parent::setUp();
|
|
|
|
// Set MailTestCase (i.e. this class) as the SMTP library
|
|
variable_set('mail_system', array('default-system' => 'MailTestCase'));
|
|
}
|
|
|
|
/**
|
|
* Assert that the pluggable mail system is functional.
|
|
*/
|
|
function testPluggableFramework() {
|
|
global $language;
|
|
|
|
// Use MailTestCase for sending a message.
|
|
$message = drupal_mail('simpletest', 'mail_test', 'testing@drupal.org', $language);
|
|
|
|
// Assert whether the message was sent through the send function.
|
|
$this->assertEqual(self::$sent_message['to'], 'testing@drupal.org', t('Pluggable mail system is extendable.'));
|
|
}
|
|
|
|
/**
|
|
* Concatenate and wrap the e-mail body for plain-text mails.
|
|
*
|
|
* @see DefaultMailSystem
|
|
*/
|
|
public function format(array $message) {
|
|
// Join the body array into one string.
|
|
$message['body'] = implode("\n\n", $message['body']);
|
|
// Convert any HTML to plain-text.
|
|
$message['body'] = drupal_html_to_text($message['body']);
|
|
// Wrap the mail body for sending.
|
|
$message['body'] = drupal_wrap_mail($message['body']);
|
|
return $message;
|
|
}
|
|
|
|
/**
|
|
* Send function that is called through the mail system.
|
|
*/
|
|
public function mail(array $message) {
|
|
self::$sent_message = $message;
|
|
}
|
|
}
|
|
|