function WorkbenchModerationDraftTabTestCase::testDraftTab in Workbench Moderation 7
Same name and namespace in other branches
- 7.3 tests/workbench_moderation.test \WorkbenchModerationDraftTabTestCase::testDraftTab()
File
- tests/
workbench_moderation.test, line 151 - Tests for workbench_moderation.module.
Class
Code
function testDraftTab() {
// Create a new node and make sure it is unpublished.
$body_name = 'body[' . LANGUAGE_NONE . '][0]';
$edit = array(
'title' => $this
->randomName(),
"{$body_name}[value]" => $this
->randomName(128),
"{$body_name}[format]" => filter_default_format(),
);
$this
->drupalPost("node/add/{$this->content_type}", $edit, t('Save'));
// Get the new node.
$node = $this
->drupalGetNodeByTitle($edit['title']);
$this
->assertFalse($node->status, t('New content is unpublished'));
// Publish the node via the moderation form.
$moderate = array(
'state' => workbench_moderation_state_published(),
);
$this
->drupalPost("node/{$node->nid}/moderation", $moderate, t('Apply'));
$node = node_load($node->nid, NULL, TRUE);
$this
->assertTrue($node->status, t('Content is published'));
// Create a new draft.
$edit = array(
'title' => $this
->randomName(10) . '_revision1',
"{$body_name}[value]" => $this
->randomName(128) . '_revision1',
);
$this
->drupalPost("node/{$node->nid}/edit", $edit, t('Save'));
// Can we get to the 'draft' tab?
$this
->drupalGet("node/{$node->nid}/draft");
$this
->assertResponse(200, t('Draft tab is accessible'));
// Ensure the new draft content is visible.
$this
->assertText($edit['title']);
$this
->assertText($edit["{$body_name}[value]"]);
// Moderate the content to a non-draft, non-published state.
$middle_state = current(array_diff(array_keys(workbench_moderation_states()), array(
workbench_moderation_state_none(),
workbench_moderation_state_published(),
)));
$edit = array(
'state' => $middle_state,
);
$this
->drupalPost(NULL, $edit, t('Apply'));
// Are we still on node/NID/draft?
$this
->assertUrl("node/{$node->nid}/draft");
$this
->assertResponse(200);
// Publish the content.
$edit = array(
'state' => workbench_moderation_state_published(),
);
$this
->drupalPost(NULL, $edit, t('Apply'));
// Are we redirected to node/NID?
$this
->assertUrl("node/{$node->nid}");
$this
->assertResponse(200);
}