You are here

pagenotfound.test in Customerror 6

Same filename and directory in other branches
  1. 5 tests/pagenotfound.test

Automated tests CustomError.

File

tests/pagenotfound.test
View source
<?php

/**
 * @file
 * Automated tests CustomError.
 */
class CustomerrorPageNotFoundTest extends DrupalTestCase {

  /**
   * Implements getInfo().
   */
  public function getInfo() {
    return array(
      'name' => '404 Page not found',
      'desc' => 'Check that the custom error message is displayed when a page is not found.',
      'group' => 'CustomError',
    );
  }

  /**
   * Tests 404 pages.
   */
  public function testPageNotFoundMessage() {

    /* Enable CustomError module */
    $this
      ->drupalModuleEnable('customerror');

    /* Set title and text of error message */
    $error_code = 404;
    $title = $this
      ->randomName(10, 'simpletest_');
    $this
      ->drupalVariableSet('customerror_' . $error_code . '_title', $title);
    $description = $this
      ->randomName(512, 'simpletest_');
    $this
      ->drupalVariableSet('customerror_' . $error_code, $description);

    /* Access error page directly, check for title and text of error message */
    $this
      ->get(url('customerror/' . $error_code, NULL, NULL, TRUE));
    $this
      ->assertText($title, 'Title on ' . $error_code . ' error page set when accessed directly');
    $this
      ->assertText($description, 'Description on ' . $error_code . ' error page set when accessed directly');

    /* Point Drupal to the new error message */
    $this
      ->drupalVariableSet('site_' . $error_code, 'customerror/' . $error_code);

    /* Log in as a user with basic privileges */
    $user = $this
      ->drupalCreateUserRolePerm(array(
      'access content',
    ));
    $this
      ->drupalLoginUser($user);

    /* Access next node ID, shouldn't exist yet. Note that this increments the nid each time it's run. */
    $this
      ->get(url('node/' . db_next_id('{node}_nid'), NULL, NULL, TRUE));

    /* Check for response code, title and text of error message */
    $this
      ->assertResponse($error_code, 'Response code on ' . $error_code . ' error page set when accessed at non-existent URL');
    $this
      ->assertText($title, 'Title on ' . $error_code . ' error page set when accessed at non-existent URL');
    $this
      ->assertText($description, 'Description on ' . $error_code . ' error page set when accessed at non-existent URL');

    /* Could also create node, prove it's accessible, delete it, then try to access again and prove it's gone */
  }

}

Classes

Namesort descending Description
CustomerrorPageNotFoundTest @file Automated tests CustomError.