From dfff6528ff1aefb054d42a925293751a43c43ff2 Mon Sep 17 00:00:00 2001 From: Dries Buytaert <dries@buytaert.net> Date: Wed, 15 Apr 2009 13:28:08 +0000 Subject: [PATCH] - Patch #385602 by Damien Tournoud, desbeers, Gabor Hojtsy: log message sometimes lost on node preview. With a test\! --- modules/node/node.pages.inc | 3 +++ modules/node/node.test | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/modules/node/node.pages.inc b/modules/node/node.pages.inc index c02d70fe55f7..242fcf658443 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 60798b01bfd0..d73cb44d4241 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', '<!--break-->' . $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', '<!--break-->' . $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 { -- GitLab