summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/node/node.test137
1 files changed, 66 insertions, 71 deletions
diff --git a/modules/node/node.test b/modules/node/node.test
index 7bd75cb6f..62ddfbe82 100644
--- a/modules/node/node.test
+++ b/modules/node/node.test
@@ -2,99 +2,94 @@
// $Id$
class NodeRevisionsTestCase extends DrupalWebTestCase {
+ protected $nodes;
+ protected $logs;
+
/**
- * Implementation of getInfo() for information
+ * Implementation of getInfo().
*/
function getInfo() {
return array(
'name' => t('Node revisions'),
- 'description' => t('Creates a node of type page and then a user tries various revision actions such as viewing, reverting to, and deleting revisions.'),
+ 'description' => t('Creates a node of type Page and then a user tries various revision
+ actions such as viewing, reverting to, and deleting revisions.'),
'group' => t('Node')
);
}
/**
- * Setup function used by tests. Creates a node with three revisions.
- *
- * If $log is TRUE, then a log message will be recorded.
- */
- function prepareRevisions($log = FALSE) {
-
- $return_array = array();
- $numtimes = 3; // First, middle, last.
- for ($i = 0; $i < $numtimes; $i++) {
- $settings = array('revision' => 1);
- if ($log && $i == 1) {
- $log_message = $this->randomName(32);
- $settings['log'] = $log_message;
- $return_array['log'] = $log_message;
- }
- if ($i != 0) {
- $settings['nid'] = $node->nid;
- }
- $node = $this->drupalCreateNode($settings);
- if ($i == 1) {
- $return_array['text'] = $node->body;
- $return_array['vid'] = $node->vid;
- }
- // Avoid confusion on the revisions overview page which is sorted by r.timestamp.
- sleep(1);
- }
- $return_array['node'] = $node;
- return $return_array;
- }
-
- /**
- * Confirm the correct revision text appears on "view revisions" page.
+ * Implementation of setUp().
*/
- function testNodeRevisions() {
- // Get $log, $text, $vid, $node.
- extract( $this->prepareRevisions() );
+ function setUp() {
+ parent::setUp();
- $test_user = $this->drupalCreateUser(array('view revisions'));
+ // Create and login user.
+ $test_user = $this->drupalCreateUser(array('view revisions', 'revert revisions', 'edit any page content',
+ 'delete revisions', 'delete any page content'));
$this->drupalLogin($test_user);
- $this->drupalGet("node/$node->nid/revisions/$vid/view");
- $this->assertText($text, 'Check to make sure correct revision text appears on "view revisions" page.');
- }
- /**
- * Confirm the correct log message appears on "revisions overview" page.
- */
- function testLogMessage() {
- // Get $log, $text, $vid, $node.
- extract( $this->prepareRevisions(TRUE) );
+ // Create initial node.
+ $node = $this->drupalCreateNode();
+ $settings = get_object_vars($node);
+ $settings['revision'] = 1;
- $test_user = $this->drupalCreateUser(array('view revisions'));
- $this->drupalLogin($test_user);
- $this->drupalGet("node/$node->nid/revisions");
- $this->assertText($log, 'Check to make sure log message is properly displayed.');
- }
+ $nodes = array();
+ $logs = array();
- /**
- * Confirm that revisions revert properly.
- */
- function testRevisionRevert() {
- // Get $log, $text, $vid, $node.
- extract( $this->prepareRevisions() );
+ // Get original node.
+ $nodes[] = $node;
- $test_user = $this->drupalCreateUser(array('revert revisions', 'edit any page content'));
- $this->drupalLogin($test_user);
- $this->drupalPost("node/$node->nid/revisions/$vid/revert", array(), t('Revert'));
- $new_node = node_load($node->nid);
- $this->assertTrue(($text == $new_node->body), 'Check to make sure reversions occur properly');
+ // Create three revisions.
+ $revision_count = 3;
+ for ($i = 0; $i < $revision_count; $i++) {
+ $logs[] = $settings['log'] = $this->randomName(32);
+
+ // Create revision with random title and body and update variables.
+ $this->drupalCreateNode($settings);
+ $node = node_load($node->nid); // Make sure we get revision information.
+ $settings = get_object_vars($node);
+
+ $nodes[] = $node;
+ }
+
+ $this->nodes = $nodes;
+ $this->logs = $logs;
}
/**
- * Confirm revisions delete properly.
+ * Check node revision related opperations.
*/
- function testRevisionDelete() {
- // Get $log, $text, $vid, $node.
- extract( $this->prepareRevisions() );
+ function testRevisions() {
+ $nodes = $this->nodes;
+ $logs = $this->logs;
- $test_user = $this->drupalCreateUser(array('delete revisions', 'delete any page content'));
- $this->drupalLogin($test_user);
- $this->drupalPost("node/$node->nid/revisions/$vid/delete", array(), t('Delete'));
- $this->assertTrue(db_result(db_query('SELECT COUNT(vid) FROM {node_revisions} WHERE nid = %d and VID = %d', $node->nid, $vid)) == 0, 'Check to make sure revisions delete properly');
+ // Get last node for simple checks.
+ $node = $nodes[3];
+
+ // Confirm the correct revision text appears on "view revisions" page.
+ $this->drupalGet("node/$node->nid/revisions/$node->vid/view");
+ $this->assertText($node->body, t('Correct text displays for version.'));
+
+ // Confirm the correct log message appears on "revisions overview" page.
+ $this->drupalGet("node/$node->nid/revisions");
+ foreach ($logs as $log) {
+ $this->assertText($log, t('Log message found.'));
+ }
+
+ // Confirm that revisions revert properly.
+ $this->drupalPost("node/$node->nid/revisions/{$nodes[1]->vid}/revert", array(), t('Revert'));
+ $this->assertRaw(t('@type %title has been reverted back to the revision from %revision-date.',
+ array('@type' => 'Page', '%title' => $nodes[1]->title,
+ '%revision-date' => format_date($nodes[1]->revision_timestamp))), t('Revision reverted.'));
+ $reverted_node = node_load($node->nid);
+ $this->assertTrue(($nodes[1]->body == $reverted_node->body), t('Node reverted correctly.'));
+
+ // Confirm revisions delete properly.
+ $this->drupalPost("node/$node->nid/revisions/{$nodes[1]->vid}/delete", array(), t('Delete'));
+ $this->assertRaw(t('Revision from %revision-date of @type %title has been deleted.',
+ array('%revision-date' => format_date($nodes[1]->revision_timestamp),
+ '@type' => 'Page', '%title' => $nodes[1]->title)), t('Revision deleted.'));
+ $this->assertTrue(db_result(db_query('SELECT COUNT(vid) FROM {node_revisions} WHERE nid = %d and vid = %d', $node->nid, $nodes[1]->vid)) == 0, t('Revision not found.'));
}
}