? mail_test.patch
? modules/simpletest/tests/mail_test.info
? modules/simpletest/tests/mail_test.module
? sites/default/files
? sites/default/private
? sites/default/settings.php
Index: modules/simpletest/tests/mail.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/mail.test,v
retrieving revision 1.2
diff -u -p -r1.2 mail.test
--- modules/simpletest/tests/mail.test	16 Oct 2009 03:01:54 -0000	1.2
+++ modules/simpletest/tests/mail.test	12 Nov 2009 14:17:43 -0000
@@ -64,3 +64,64 @@ class MailTestCase extends DrupalWebTest
   }
 }
 
+class MailOneLineTestCase extends DrupalWebTestCase implements MailSystemInterface {
+  private static $sent_message;
+
+  /**
+   * Implementation of getInfo().
+   */
+  function getInfo() {
+    return array(
+      'name' => 'Mail functionality',
+      'description' => 'Test Mail: sending one-line mails.',
+      'group' => 'Mail',
+    );
+  }
+
+  /**
+   * Implementation of setUp().
+   */
+  function setUp() {
+    parent::setUp('mail_test');
+    // Set MailTestCase (i.e. this class) as the SMTP library
+    variable_set('mail_system', array('default-system' => 'MailOneLineTestCase'));
+  }
+
+  /**
+   * Implementation of tearDown().
+   */
+  function tearDown() {
+    parent::tearDown();
+  }
+
+  function testOneLineMail() {
+    global $language;
+
+    $message = drupal_mail('mail_test', 'oneline', 'testing@drupal.org', $language);
+
+    $this->assertTrue(strpos($message['body'], '\n') === FALSE, t('Testing a one line mail'));
+  }
+
+  /**
+   * 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;
+  }
+}
+
