You are here

function DrupalApacheSolrNodeAccess::testIndexing in Apache Solr Search 6.2

Same name and namespace in other branches
  1. 8 apachesolr_access/tests/apachesolr_access.test \DrupalApacheSolrNodeAccess::testIndexing()
  2. 5 contrib/apachesolr_nodeaccess/tests/apachesolr_nodeaccess.test \DrupalApacheSolrNodeAccess::testIndexing()
  3. 6.3 apachesolr_access/tests/apachesolr_access.test \DrupalApacheSolrNodeAccess::testIndexing()
  4. 6 contrib/apachesolr_nodeaccess/tests/apachesolr_nodeaccess.test \DrupalApacheSolrNodeAccess::testIndexing()
  5. 7 apachesolr_access/tests/apachesolr_access.test \DrupalApacheSolrNodeAccess::testIndexing()

File

contrib/apachesolr_nodeaccess/tests/apachesolr_nodeaccess.test, line 31
Tests for the apachsolr_nodeaccess module.

Class

DrupalApacheSolrNodeAccess
@file Tests for the apachsolr_nodeaccess module.

Code

function testIndexing() {
  $basic_user = $this->basic_user;

  // Login as basic user to perform initial content creation.
  $this
    ->drupalLogin($basic_user);

  //Create 2 nodes
  $edit = array();
  $edit['title'] = $this
    ->randomName(32);
  $edit['body'] = $this
    ->randomName(32);
  $role_restricted_node = $this
    ->drupalCreateNode($edit);
  $edit = array();
  $edit['title'] = $this
    ->randomName(32);
  $edit['body'] = $this
    ->randomName(32);
  $author_restricted_node = $this
    ->drupalCreateNode($edit);
  $this
    ->drupalLogout();
  $roles = array_keys($basic_user->roles);

  // The assigned role will be the last in the array.
  $assigned_role = end($roles);
  $role_grant = array(
    'gid' => $assigned_role,
    'realm' => 'nodeaccess_rid',
    'grant_view' => '1',
    'grant_update' => '0',
    'grant_delete' => '0',
  );
  node_access_write_grants($role_restricted_node, array(
    $role_grant,
  ), 'nodeaccess_rid');
  $author_grant = array(
    'gid' => $basic_user->uid,
    'realm' => 'nodeaccess_author',
    'grant_view' => '1',
    'grant_update' => '0',
    'grant_delete' => '0',
  );
  node_access_write_grants($author_restricted_node, array(
    $author_grant,
  ), 'nodeaccess_author');
  $include_path = get_include_path();
  set_include_path('./' . drupal_get_path('module', 'apachesolr') . '/SolrPhpClient/');
  include_once 'Apache/Solr/Service.php';
  set_include_path($include_path);
  $document = new Apache_Solr_Document();
  apachesolr_nodeaccess_apachesolr_update_index($document, $role_restricted_node, 'apachesolr_search');
  $field = 'nodeaccess_' . apachesolr_site_hash() . '_nodeaccess_rid';
  $this
    ->assertEqual($document->{$field}[0], $assigned_role, 'Solr Document being indexed is restricted by the proper role');
  $document = new Apache_Solr_Document();
  apachesolr_nodeaccess_apachesolr_update_index($document, $author_restricted_node, 'apachesolr_search');
  $field = 'nodeaccess_' . apachesolr_site_hash() . '_nodeaccess_author';
  $this
    ->assertEqual($document->{$field}[0], $basic_user->uid, 'Solr Document being indexed is restricted by the proper author');
}