diff --git a/modules/node/node.pages.inc b/modules/node/node.pages.inc index c02d70fe55f75b036df5350f9bbb951bd72d5dea..242fcf658443bdd9781a7419ff5600924664218e 100644 --- a/modules/node/node.pages.inc +++ b/modules/node/node.pages.inc @@ -91,6 +91,8 @@ function node_object_prepare(&$node) { } else { $node->date = format_date($node->created, 'custom', 'Y-m-d H:i:s O'); + // Remove the log message from the original node object. + $node->log = NULL; } // Always use the default revision setting. $node->revision = in_array('revision', $node_options); @@ -179,6 +181,7 @@ function node_form(&$form_state, $node) { '#type' => 'textarea', '#title' => t('Revision log message'), '#rows' => 4, + '#default_value' => !empty($node->log) ? $node->log : '', '#description' => t('Provide an explanation of the changes you are making. This will help other authors understand your motivations.'), ); } diff --git a/modules/node/node.test b/modules/node/node.test index 60798b01bfd0c5897667ac285d8128f7ab05f177..d73cb44d4241de2964529c9ec26c41bf4d925e63 100644 --- a/modules/node/node.test +++ b/modules/node/node.test @@ -400,6 +400,33 @@ class PagePreviewTestCase extends DrupalWebTestCase { $this->assertFieldByName('title', $edit['title'], t('Title field displayed.')); $this->assertFieldByName('body', '' . $edit['body'], t('Body field displayed.')); } + + /** + * Check the node preview functionality, when using revisions. + */ + function testPagePreviewWithRevisions() { + // Force revision on page content. + variable_set('node_options_page', array('status', 'revision')); + + // Fill in node creation form and preview node. + $edit = array(); + $edit['title'] = $this->randomName(8); + $edit['body'] = $this->randomName(16); + $edit['log'] = $this->randomName(32); + $this->drupalPost('node/add/page', $edit, t('Preview')); + + // Check that the preview is displaying the title and body. + $this->assertTitle(t('Preview | Drupal'), t('Page title is preview.')); + $this->assertText($edit['title'], t('Title displayed.')); + $this->assertText($edit['body'], t('Body displayed.')); + + // Check that the title and body fields are displayed with the correct values. + $this->assertFieldByName('title', $edit['title'], t('Title field displayed.')); + $this->assertFieldByName('body', '' . $edit['body'], t('Body field displayed.')); + + // Check that the log field has the correct value. + $this->assertFieldByName('log', $edit['log'], t('Log field displayed.')); + } } class PageCreationTestCase extends DrupalWebTestCase {