You are here

function ContentAccessACLTestCase::testDeleteAccess in Content Access 7

Same name and namespace in other branches
  1. 5 tests/content_access_acl.test \ContentAccessACLTestCase::testDeleteAccess()
  2. 6 tests/content_access_acl.test \ContentAccessACLTestCase::testDeleteAccess()

Test Deleting accessibility with permissions for single users

File

tests/content_access_acl.test, line 142

Class

ContentAccessACLTestCase

Code

function testDeleteAccess() {

  // Exit test if ACL module could not be enabled
  if (!module_exists('acl')) {
    $this
      ->pass('No ACL module present, skipping test');
    return;
  }

  // Enable per node access control
  $this
    ->changeAccessPerNode();

  // Allow delete access for test user
  $edit = array(
    'acl[delete][add]' => $this->test_user->name,
  );
  $this
    ->drupalPost('node/' . $this->node->nid . '/access', $edit, t('Add User'));
  $this
    ->drupalPost(NULL, array(), t('Submit'));

  // Logout admin, try to delete the node anonymously
  $this
    ->drupalLogout();
  $this
    ->drupalGet('node/' . $this->node->nid . '/delete');
  $this
    ->assertText(t('Access denied'), 'node is not deletable');

  // Login test user, delete access should be allowed now
  $this
    ->drupalLogin($this->test_user);
  $this
    ->drupalGet('node/' . $this->node->nid . '/delete');
  $this
    ->assertNoText(t('Access denied'), 'node is deletable');

  // Login admin and disable per node access
  $this
    ->drupalLogin($this->admin_user);
  $this
    ->changeAccessPerNode(FALSE);

  // Logout admin, try to delete the node anonymously
  $this
    ->drupalLogout();
  $this
    ->drupalGet('node/' . $this->node->nid . '/delete');
  $this
    ->assertText(t('Access denied'), 'node is not deletable');

  // Login test user, delete access should be denied now
  $this
    ->drupalLogin($this->test_user);
  $this
    ->drupalGet('node/' . $this->node->nid . '/delete');
  $this
    ->assertText(t('Access denied'), 'node is not deletable');
}