You are here

function NodequeueAPIAccessUnitTest::testNodequeueQueueAccess in Nodequeue 7.2

Same name and namespace in other branches
  1. 6.2 tests/nodequeue.test \NodequeueAPIAccessUnitTest::testNodequeueQueueAccess()

File

tests/nodequeue.test, line 607
Tests for the Nodequeue module.

Class

NodequeueAPIAccessUnitTest

Code

function testNodequeueQueueAccess() {

  // create and populate a nodequeue
  $queue = $this
    ->createNodequeue(array(
    'page',
    'article',
  ), array(
    2,
  ));
  $nodes = $this
    ->populateNodequeue($queue->qid, 4);
  $subqueues = nodequeue_load_subqueues_by_queue($queue->qid);
  $subqueue = array_shift($subqueues);

  // test using the currenlty logged in user
  $this
    ->assertTrue(nodequeue_queue_access($queue), t('Access granted to currently logged in user.'), t('Nodequeue'));
  $this
    ->assertTrue(nodequeue_queue_access($queue, $subqueue), t('Access granted to currently logged in user.'), t('Nodequeue'));

  // a user without nodequeue-related permissions should be denied access
  $user = $this
    ->drupalCreateUser();
  $this
    ->assertFalse(nodequeue_queue_access($queue, NULL, $user), t('Access denied because of missing permissions.'), t('Nodequeue'));
  $this
    ->assertFalse(nodequeue_queue_access($queue, $subqueue, $user), t('Access denied because of missing permissions.'), t('Nodequeue'));

  // create a user with permission to manipulate queues
  $user = $this
    ->drupalCreateUser(array(
    'manipulate all queues',
  ));
  $this
    ->assertTrue(nodequeue_queue_access($queue, NULL, $user), t('Access granted because of permission.'), t('Nodequeue'));
  $this
    ->assertTrue(nodequeue_queue_access($queue, $subqueue, $user), t('Access granted because of permission.'), t('Nodequeue'));

  // TODO: case where nodequeue_api_queue_access() returns FALSE
}