summaryrefslogtreecommitdiff
path: root/modules/node/node.test
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2010-01-13 05:55:12 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2010-01-13 05:55:12 +0000
commit2bef9e06732d98cee4dd0f0429dedb799091de2f (patch)
treebebb9ebc25d8092f264462f80e1aec43144f34f4 /modules/node/node.test
parente349ea9c9c855ee6ec953dcb8599be3f99a487d1 (diff)
downloadbrdo-2bef9e06732d98cee4dd0f0429dedb799091de2f.tar.gz
brdo-2bef9e06732d98cee4dd0f0429dedb799091de2f.tar.bz2
#261258 by pwolanin, Damien Tournoud, David_Rothstein: Fix node_save() insertion logic. (with tests)
Diffstat (limited to 'modules/node/node.test')
-rw-r--r--modules/node/node.test48
1 files changed, 47 insertions, 1 deletions
diff --git a/modules/node/node.test b/modules/node/node.test
index c9f4fbd76..7ec078d35 100644
--- a/modules/node/node.test
+++ b/modules/node/node.test
@@ -88,7 +88,7 @@ class NodeRevisionsTestCase extends DrupalWebTestCase {
public static function getInfo() {
return array(
'name' => 'Node revisions',
- 'description' => 'Create a node with revisions and test viewing, reverting, and deleting revisions.',
+ 'description' => 'Create a node with revisions and test viewing, saving, reverting, and deleting revisions.',
'group' => 'Node',
);
}
@@ -164,6 +164,52 @@ class NodeRevisionsTestCase extends DrupalWebTestCase {
'@type' => 'Basic page', '%title' => $nodes[1]->title)), t('Revision deleted.'));
$this->assertTrue(db_query('SELECT COUNT(vid) FROM {node_revision} WHERE nid = :nid and vid = :vid', array(':nid' => $node->nid, ':vid' => $nodes[1]->vid))->fetchField() == 0, t('Revision not found.'));
}
+
+ /**
+ * Checks that revisions are correctly saved without log messages.
+ */
+ function testNodeRevisionWithoutLogMessage() {
+ // Create a node with an initial log message.
+ $log = $this->randomName(10);
+ $node = $this->drupalCreateNode(array('log' => $log));
+
+ // Save over the same revision but do not provide a log message, and check
+ // that the original log message is preserved.
+ $new_title = $this->randomName(10) . 'testNodeRevisionWithoutLogMessage1';
+ $updated_node = (object) array(
+ 'nid' => $node->nid,
+ 'vid' => $node->vid,
+ 'uid' => $node->uid,
+ 'type' => $node->type,
+ 'title' => array(LANGUAGE_NONE => array(array('value' => $new_title))),
+ 'log' => '',
+ );
+ node_save($updated_node);
+ $this->drupalGet('node/' . $node->nid);
+ $this->assertText($new_title, t('New node title appears on the page.'));
+ $node_revision = node_load($node->nid, NULL, TRUE);
+ $this->assertEqual($node_revision->log, $log, t('After an existing node revision is re-saved without a log message, the original log message is preserved.'));
+
+ // Create another node with an initial log message.
+ $node = $this->drupalCreateNode(array('log' => $log));
+
+ // Save a new node revision without providing a log message, and check that
+ // this revision has an empty log message.
+ $new_title = $this->randomName(10) . 'testNodeRevisionWithoutLogMessage2';
+ $updated_node = (object) array(
+ 'nid' => $node->nid,
+ 'vid' => $node->vid,
+ 'uid' => $node->uid,
+ 'type' => $node->type,
+ 'title' => array(LANGUAGE_NONE => array(array('value' => $new_title))),
+ 'revision' => 1,
+ );
+ node_save($updated_node);
+ $this->drupalGet('node/' . $node->nid);
+ $this->assertText($new_title, t('New node title appears on the page.'));
+ $node_revision = node_load($node->nid, NULL, TRUE);
+ $this->assertTrue(empty($node_revision->log), t('After a new node revision is saved with an empty log message, the log message for the node is empty.'));
+ }
}
class PageEditTestCase extends DrupalWebTestCase {