function ShoutboxUserAccessTest::testShoutboxUserAccess in Shoutbox 5
File
- tests/
shoutbox_user_access.test, line 94 - shoutbox unit test for shoutbox_user_access and shoutbox_is_user_owned
Class
- ShoutboxUserAccessTest
- @file shoutbox unit test for shoutbox_user_access and shoutbox_is_user_owned
Code
function testShoutboxUserAccess() {
// test add, edit and delete for a regular unmoderated user
// Login as basic user to perform initial content creation.
$this
->drupalLoginUser($this->unmoderated_user);
// Create an unmoderated piece of content.
$shout = array();
$shout['nick'] = $this
->randomName(2, 'shout');
$shout['message'] = $this
->randomName(10, 'shout');
$shout['url'] = 'http://slashdot.org';
$this
->drupalPostRequest('node', $shout, 'Shout');
$this
->assertWantedRaw(t('Your shout has been submitted.'));
$this
->assertWantedRaw(t($shout['message']));
// get the shout id
$sid = $this
->_get_shout_id($shout);
// edit the shout
$edited_shout = array();
$edited_shout['shout'] = $this
->randomName(10, 'shout');
$url = 'shoutbox/' . $sid . '/edit';
$this
->drupalPostRequest($url, $edited_shout, 'Update');
$this
->assertWantedRaw(t('Your shout has been saved.'));
$this
->assertWantedRaw(t($edited_shout['shout']));
// delete the shout
$url = 'shoutbox/' . $sid . '/delete';
$this
->drupalPostRequest($url, NULL, 'Confirm');
$this
->assertWantedRaw(t('Your shout was deleted.'));
$this
->assertNoText(t($edited_shout['shout']));
$url = url('logout', NULL, NULL, TRUE);
$this
->get($url);
$this
->cleanup($sid);
// test add, edit and delete for a regular moderated user
$this
->drupalLoginUser($this->basic_user);
// Create an unmoderated piece of content.
$shout = array();
$shout['nick'] = $this
->randomName(2, 'shout');
$shout['message'] = $this
->randomName(10, 'shout');
$shout['url'] = 'http://slashdot.org';
$this
->drupalPostRequest('node', $shout, 'Shout');
$this
->assertWantedRaw(t('Your shout has been submitted for approval by a moderator. Others will not see this shout until it is approved.'));
// get the shout id
$sid = $this
->_get_shout_id($shout);
// edit the shout
$edited_shout = array();
$edited_shout['shout'] = $this
->randomName(10, 'shout');
$url = 'shoutbox/' . $sid . '/edit';
$this
->drupalPostRequest($url, $edited_shout, 'Update');
$this
->assertWantedRaw(t('Your shout has been saved.'));
$this
->assertWantedRaw(t($edited_shout['shout']));
// delete the shout
$url = 'shoutbox/' . $sid . '/delete';
$this
->drupalPostRequest($url, NULL, 'Confirm');
$this
->assertWantedRaw(t('Your shout was deleted.'));
$this
->assertNoText(t($edited_shout['shout']));
$url = url('logout', NULL, NULL, TRUE);
$this
->get($url);
$this
->cleanup($sid);
// now test moderation
// create a moderated shout
$this
->drupalLoginUser($this->basic_user);
// Create an unmoderated piece of content.
$shout = array();
$shout['nick'] = $this
->randomName(2, 'shout');
$shout['message'] = $this
->randomName(10, 'shout');
$shout['url'] = 'http://slashdot.org';
$this
->drupalPostRequest('node', $shout, 'Shout');
$this
->assertWantedRaw(t('Your shout has been submitted for approval by a moderator. Others will not see this shout until it is approved.'));
// get the shout id
$sid = $this
->_get_shout_id($shout);
// Try to moderate it
$path = 'shoutbox/' . $sid . '/publish';
$url = url($path, NULL, NULL, TRUE);
$this
->get($url);
$this
->assertResponse(403);
// logout
$url = url('logout', NULL, NULL, TRUE);
$this
->get($url);
// login as moderator
$this
->drupalLoginUser($this->moderator);
// moderate content
$path = 'shoutbox/' . $sid . '/publish';
$url = url($path, NULL, NULL, TRUE);
// verify confirmation page
$this
->get($url);
$this
->assertText(t('Are you sure you want to publish this shout?'));
$this
->drupalPostRequest($path, NULL, 'Confirm');
$this
->assertText(t('The shout was published.'));
// now unpublish it
$path = 'shoutbox/' . $sid . '/unpublish';
$url = url($path, NULL, NULL, TRUE);
// verify confirmation page
$this
->get($url);
$this
->assertText(t('Are you sure you want to unpublish this shout?'));
$this
->drupalPostRequest($path, NULL, 'Confirm');
$this
->assertText(t('The shout was unpublished.'));
// try and edit it
$path = 'shoutbox/' . $sid . '/edit';
$url = url($path, NULL, NULL, TRUE);
$this
->get($url);
$this
->assertResponse(403);
// try and delete it
$path = 'shoutbox/' . $sid . '/delete';
$url = url($path, NULL, NULL, TRUE);
$this
->get($url);
$this
->assertResponse(403);
$this
->cleanup($sid);
}