You are here

function RelationEntityCollectorTestCase::testEntityCollector in Relation 7

Add relations to Node 1 and to Node 3 and then check that they are related.

File

relation_entity_collector/tests/relation_entity_collector.test, line 29
Tests for Relation Entity Collector module.

Class

RelationEntityCollectorTestCase
Functional test of Relation's integration with the Entity Collector.

Code

function testEntityCollector() {
  $node1key = 'node:' . $this->node1->nid;
  $node3key = 'node:' . $this->node3->nid;
  $relation_type = $this->relation_types['symmetric']['relation_type'];
  $edit = array(
    "relation_type" => $relation_type,
    "entity_key" => $node1key,
  );
  $this
    ->drupalPost('node', $edit, t('Pick'));
  $edit = array(
    //"relation_type" => $relation_type, // First pick will disable this field
    "entity_key" => $node3key,
  );
  $this
    ->drupalPost('node', $edit, t('Pick'));
  $this
    ->drupalPost('node', array(), t('Save relation'));

  // Now figure out the new rid.
  $result = array_keys(relation_query('node', $this->node3->nid)
    ->propertyCondition('relation_type', $relation_type)
    ->execute());
  $path = 'relation/' . $result[0];
  $link = l($relation_type, $path);

  // Rebuild the message using the known bundle and entity labels to make sure
  // the message contains those.
  $node1_label = _relation_get_bundle_label('node', 'article') . ': ' . entity_label('node', $this->node1);
  $node3_label = _relation_get_bundle_label('node', 'page') . ': ' . entity_label('node', $this->node3);
  $items = array(
    $node1_label,
    $node3_label,
  );
  $item_list = array(
    '#theme' => 'item_list',
    '#items' => $items,
  );
  $list = drupal_render($item_list);
  $message = t('Created new !link from !list', array(
    '!link' => $link,
    '!list' => $list,
  ));
  $this
    ->assertRaw($message, 'Created a new relation.');
  $this
    ->drupalGet($path);
  $node1_uri = entity_uri('node', $this->node1);
  $node3_uri = entity_uri('node', $this->node3);
  $this
    ->assertRaw(l(entity_label('node', $this->node1), $node1_uri['path'], $node1_uri['options']), 'Node1 link found');
  $this
    ->assertRaw(l(entity_label('node', $this->node3), $node3_uri['path'], $node3_uri['options']), 'Node1 link found');
}