function ContentAccessACLTestCase::testViewAccess in Content Access 5
Same name and namespace in other branches
- 6 tests/content_access_acl.test \ContentAccessACLTestCase::testViewAccess()
- 7 tests/content_access_acl.test \ContentAccessACLTestCase::testViewAccess()
Test Viewing accessibility with permissions for single users
File
- tests/
content_access_acl.test, line 39
Class
Code
function testViewAccess() {
// Enable ACL module
// Exit test if module could not be enabled
if (!$this
->aclModuleEnable()) {
$this
->pass('No ACL module present, skipping test');
return;
}
// Restrict access to this content type (access is only allowed for the author)
// Enable per node access control
$access_permissions = array(
'view[author]' => TRUE,
'view[1]' => FALSE,
'view[2]' => FALSE,
'per_node' => TRUE,
);
$this
->changeAccessContentType($access_permissions);
// Allow access for test user
$edit = array(
'acl[view][add]' => $this->test_user->name,
);
$this
->drupalPostRequest('node/' . $this->node->nid . '/access', $edit, 'Add User');
$this
->postToCurrentPage(array(), 'Submit');
// Logout admin, try to access the node anonymously
$this
->drupalGet(url('logout'));
$this
->drupalGet(url('node/' . $this->node->nid));
$this
->assertText(t('Access denied'), 'node is not viewable');
// Login test user, view access should be allowed now
$this
->drupalLoginUser($this->test_user);
$this
->drupalGet(url('node/' . $this->node->nid));
$this
->assertNoText(t('Access denied'), 'node is viewable');
// Login admin and disable per node access
$this
->drupalGet(url('logout'));
$this
->drupalLoginUser($this->admin_user);
$this
->changeAccessPerNode(FALSE);
// Logout admin, try to access the node anonymously
$this
->drupalGet(url('logout'));
$this
->drupalGet(url('node/' . $this->node->nid));
$this
->assertText(t('Access denied'), 'node is not viewable');
// Login test user, view access should be denied now
$this
->drupalLoginUser($this->test_user);
$this
->drupalGet(url('node/' . $this->node->nid));
$this
->assertText(t('Access denied'), 'node is not viewable');
}