You are here

function StatisticsTokenReplaceTestCase::testStatisticsTokenReplacement in Drupal 7

Creates a node, then tests the statistics tokens generated from it.

File

modules/statistics/statistics.test, line 473
Tests for the Statistics module.

Class

StatisticsTokenReplaceTestCase
Tests statistics token replacement in strings.

Code

function testStatisticsTokenReplacement() {
  global $language;

  // Create user and node.
  $user = $this
    ->drupalCreateUser(array(
    'create page content',
  ));
  $this
    ->drupalLogin($user);
  $node = $this
    ->drupalCreateNode(array(
    'type' => 'page',
    'uid' => $user->uid,
  ));

  // Hit the node.
  $this
    ->drupalGet('node/' . $node->nid);
  $statistics = statistics_get($node->nid);

  // Generate and test tokens.
  $tests = array();
  $tests['[node:total-count]'] = 1;
  $tests['[node:day-count]'] = 1;
  $tests['[node:last-view]'] = format_date($statistics['timestamp']);
  $tests['[node:last-view:short]'] = format_date($statistics['timestamp'], 'short');

  // Test to make sure that we generated something for each token.
  $this
    ->assertFalse(in_array(0, array_map('strlen', $tests)), 'No empty tokens generated.');
  foreach ($tests as $input => $expected) {
    $output = token_replace($input, array(
      'node' => $node,
    ), array(
      'language' => $language,
    ));
    $this
      ->assertEqual($output, $expected, format_string('Statistics token %token replaced.', array(
      '%token' => $input,
    )));
  }
}