From 1cd946c677f8ed912b2e5d34b79438d4546d412e Mon Sep 17 00:00:00 2001
From: Sascha Grossenbacher <saschagros+test@gmail.com>
Date: Wed, 16 Mar 2011 20:14:22 +0100
Subject: [PATCH] Issue #1093252 by Berdir: Fixed message body is lost when previewing message.

---
 privatemsg.pages.inc |    2 ++
 privatemsg.test      |   10 ++++++++++
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/privatemsg.pages.inc b/privatemsg.pages.inc
index 64f03d7..e0353e0 100644
--- a/privatemsg.pages.inc
+++ b/privatemsg.pages.inc
@@ -367,6 +367,8 @@ function _privatemsg_form_base_fields(&$form_state) {
     '#rows'               => 6,
     '#weight'             => -3,
     '#resizable'          => TRUE,
+    // Avoid loosing the message body during preview.
+    '#default_value'      => isset($form_state['values']['body']) ? $form_state['values']['body'] : '',
   );
 
   $format = FILTER_FORMAT_DEFAULT;
diff --git a/privatemsg.test b/privatemsg.test
index 0294e27..5899950 100644
--- a/privatemsg.test
+++ b/privatemsg.test
@@ -696,8 +696,18 @@ class PrivatemsgTestCase extends DrupalWebTestCase {
       'body' => $this->randomName(50),
     );
     $this->drupalLogin($user);
+
+    // Preview message.
     $this->drupalPost('messages/new', $message, t('Preview message'));
     $this->assertFieldByXPath("//div[@class='privatemsg-message-body']/p", $message['body'], t('Message body is previewed'));
+    $this->assertFieldByName('body', $message['body'], t('Message body field has the correct default value.'));
+
+    // Send message.
+    $this->drupalPost(NULL, array(), t('Send message'));
+    $this->assertText($message['subject'], t('Message subject is displayed.'));
+    $this->assertText($message['body'], t('Message body is displayed.'));
+
+    $this->assertText(t('A message has been sent to @recipient.', array('@recipient' => $user->name)), t('Sent confirmation displayed.'));
   }
 
   /**
-- 
1.7.4.1

