Helper module for testing EntityFieldQuery access on any type of entity.

File

modules/simpletest/tests/entity_query_access_test.module
View source
<?php

/**
 * @file
 * Helper module for testing EntityFieldQuery access on any type of entity.
 */

/**
 * Implements hook_menu().
 */
function entity_query_access_test_menu() {
  $items['entity-query-access/test/%'] = array(
    'title' => "Retrieve a sample of entity query access data",
    'page callback' => 'entity_query_access_test_sample_query',
    'page arguments' => array(
      2,
    ),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
  );
  return $items;
}

/**
 * Returns the results from an example EntityFieldQuery.
 */
function entity_query_access_test_sample_query($field_name) {
  global $user;

  // Simulate user does not have access to view all nodes.
  $access =& drupal_static('node_access_view_all_nodes');
  $access[$user->uid] = FALSE;
  $query = new EntityFieldQuery();
  $query
    ->entityCondition('entity_type', 'test_entity_bundle_key')
    ->fieldCondition($field_name, 'value', 0, '>')
    ->entityOrderBy('entity_id', 'ASC');
  $results = array(
    'items' => array(),
    'title' => t('EntityFieldQuery results'),
  );
  foreach ($query
    ->execute() as $entity_type => $entity_ids) {
    foreach ($entity_ids as $entity_id => $entity_stub) {
      $results['items'][] = format_string('Found entity of type @entity_type with id @entity_id', array(
        '@entity_type' => $entity_type,
        '@entity_id' => $entity_id,
      ));
    }
  }
  if (count($results['items']) > 0) {
    $output = theme('item_list', $results);
  }
  else {
    $output = 'No results found with EntityFieldQuery.';
  }
  return $output;
}

Functions

Namesort descending Description
entity_query_access_test_menu Implements hook_menu().
entity_query_access_test_sample_query Returns the results from an example EntityFieldQuery.