Index: drupal_web_test_case.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/simpletest/drupal_web_test_case.php,v
retrieving revision 1.2.2.3.2.41
diff -u -r1.2.2.3.2.41 drupal_web_test_case.php
--- drupal_web_test_case.php	14 Sep 2009 19:46:05 -0000	1.2.2.3.2.41
+++ drupal_web_test_case.php	14 Sep 2009 20:25:33 -0000
@@ -1169,7 +1169,8 @@
 //    $language = language_default();
 
     // Use the test mail class instead of the default mail handler class.
-    variable_set('mail_sending_system', array('default-system' => 'TestingMailSystem'));
+//    variable_set('mail_sending_system', array('default-system' => 'TestingMailSystem'));
+    variable_set('smtp_library', drupal_get_path('module', 'simpletest') . '/drupal_web_test_case.php');
 
     // Use temporary files directory with the same prefix as the database.
 //    $public_files_directory  = $this->originalFileDirectory . '/' . $db_prefix;
@@ -2001,7 +2002,8 @@
 
     foreach ($captured_emails as $message) {
       foreach ($filter as $key => $value) {
-        if (!isset($message[$key]) || $message[$key] != $value) {
+//        if (!isset($message[$key]) || $message[$key] != $value) {
+        if (!isset($message['params'][$key]) || $message['params'][$key] != $value) {
           continue 2;
         }
       }
@@ -2555,7 +2557,8 @@
   protected function assertMail($name, $value = '', $message = '') {
     $captured_emails = variable_get('drupal_test_email_collector', array());
     $email = end($captured_emails);
-    return $this->assertTrue($email && isset($email[$name]) && $email[$name] == $value, $message, t('E-mail'));
+//    return $this->assertTrue($email && isset($email[$name]) && $email[$name] == $value, $message, t('E-mail'));
+    return $this->assertTrue($email && isset($email['params'][$name]) && $email['params'][$name] == $value, $message, t('E-mail'));
   }
 
   /**
@@ -2620,3 +2623,17 @@
   }
   return FALSE;
 }
+
+/**
+ * Capture e-mail message during testing, from TestingMailSystem in
+ * mail.sending.inc.
+ *
+ * @param $message
+ *   An e-mail message.
+ */
+function drupal_mail_wrapper(array $message) {
+  $captured_emails = variable_get('drupal_test_email_collector', array());
+  $captured_emails[] = $message;
+  variable_set('drupal_test_email_collector', $captured_emails);
+  return TRUE;
+}
Index: simpletest.test
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/simpletest/Attic/simpletest.test,v
retrieving revision 1.1.2.14
diff -u -r1.1.2.14 simpletest.test
--- simpletest.test	14 Sep 2009 19:36:49 -0000	1.1.2.14
+++ simpletest.test	14 Sep 2009 20:25:33 -0000
@@ -314,7 +314,8 @@
     $this->assertEqual(count($captured_emails), 0, t('The captured e-mails queue is empty.'), t('E-mail'));
 
     // Send the e-mail.
-    $response = drupal_mail_sending_system('simpletest', 'drupal_mail_test')->mail($message);
+//    $response = drupal_mail_sending_system('simpletest', 'drupal_mail_test')->mail($message);
+    $response = drupal_mail('simpletest', 'drupal_mail_test', $message['to'], language_default(), $message, NULL, TRUE);
 
     // Ensure that there is one e-mail in the captured e-mails array.
     $captured_emails = $this->drupalGetMails();
@@ -335,7 +336,8 @@
         'to' => $this->randomName(32) . '@example.com',
         'body' => $this->randomString(512),
       );
-      drupal_mail_sending_system('drupal_mail_test', $index)->mail($message);
+//      drupal_mail_sending_system('drupal_mail_test', $index)->mail($message);
+      $response = drupal_mail('simpletest', 'drupal_mail_test', $message['to'], language_default(), $message, NULL, TRUE);
     }
 
     // There should now be 6 e-mails captured.
@@ -352,7 +354,8 @@
 
     // Send the last e-mail again, so we can confirm that the drupalGetMails-filter
     // correctly returns all e-mails with a given property/value.
-    drupal_mail_sending_system('drupal_mail_test', $index)->mail($message);
+//    drupal_mail_sending_system('drupal_mail_test', $index)->mail($message);
+    $response = drupal_mail('simpletest', $index, $message['to'], language_default(), $message, NULL, TRUE);
     $captured_emails = $this->drupalGetMails(array('id' => 'drupal_mail_test_4'));
     $this->assertEqual(count($captured_emails), 2, t('All e-mails with the same id are returned when filtering by id.'), t('E-mail'));
   }
