function StatisticsTokenReplaceTestCase::testStatisticsTokenReplacement

7.x statistics.test StatisticsTokenReplaceTestCase::testStatisticsTokenReplacement()

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

File

drupal-7.x/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)));
  }
}