Same filename and directory in other branches
  1. 6.x-1.x menu_example/menu_example.test

Tests for menu example module.

File

menu_example/menu_example.test
View source
<?php

/**
 * @file
 * Tests for menu example module.
 */

/**
 * Functional tests for the Menu Example module.
 *
 * @ingroup menu_example
 */
class MenuExampleTestCase extends DrupalWebTestCase {

  /**
   * {@inheritdoc}
   */
  public static function getInfo() {
    return array(
      'name' => 'Menu example functionality',
      'description' => 'Checks behavior of Menu Example.',
      'group' => 'Examples',
    );
  }

  /**
   * Enable modules and create user with specific permissions.
   */
  public function setUp() {
    parent::setUp('menu_example');
  }

  /**
   * Test the various menus.
   */
  public function testMenuExample() {
    $this
      ->drupalGet('');
    $this
      ->assertText(t('Menu Example: Menu in alternate menu'));
    $this
      ->clickLink(t('Menu Example'));
    $this
      ->assertText(t('This is the base page of the Menu Example'));
    $this
      ->drupalGet('examples/menu_example_alternate_menu');
    $this
      ->assertResponse(200);
    $this
      ->clickLink(t('Custom Access Example'));
    $this
      ->assertText(t('Custom Access Example'));
    $this
      ->clickLink(t('examples/menu_example/custom_access/page'));
    $this
      ->assertResponse(403);
    $this
      ->drupalGet('examples/menu_example/permissioned');
    $this
      ->assertText(t('Permissioned Example'));
    $this
      ->clickLink('examples/menu_example/permissioned/controlled');
    $this
      ->assertResponse(403);
    $this
      ->drupalGet('examples/menu_example');
    $this
      ->clickLink(t('MENU_CALLBACK example'));
    $this
      ->drupalGet('examples/menu_example/path_only/callback');
    $this
      ->assertText(t('The menu entry for this page is of type MENU_CALLBACK'));
    $this
      ->clickLink(t('Tabs'));
    $this
      ->assertText(t('This is the "tabs" menu entry'));
    $this
      ->drupalGet('examples/menu_example/tabs/second');
    $this
      ->assertText(t('This is the tab "second" in the "basic tabs" example'));
    $this
      ->clickLink(t('third'));
    $this
      ->assertText(t('This is the tab "third" in the "basic tabs" example'));
    $this
      ->clickLink(t('Extra Arguments'));
    $this
      ->drupalGet('examples/menu_example/use_url_arguments/one/two');
    $this
      ->assertText(t('Argument 1=one'));
    $this
      ->clickLink(t('Placeholder Arguments'));
    $this
      ->clickLink(t('examples/menu_example/placeholder_argument/3343/display'));
    $this
      ->assertRaw('<div>3343</div>');
    $this
      ->clickLink(t('Processed Placeholder Arguments'));
    $this
      ->assertText(t('Loaded value was jackpot! default'));

    // Create a user with permissions to access protected menu entry.
    $web_user = $this
      ->drupalCreateUser(array(
      'access protected menu example',
    ));

    // Use custom overridden drupalLogin function to verify the user is logged
    // in.
    $this
      ->drupalLogin($web_user);

    // Check that our title callback changing /user dynamically is working.
    // Using &#039; because of the format_username function.
    $this
      ->assertRaw(t("@name&#039;s account", array(
      '@name' => format_username($web_user),
    )), format_string('Title successfully changed to account name: %name.', array(
      '%name' => $web_user->name,
    )));

    // Now start testing other menu entries.
    $this
      ->drupalGet('examples/menu_example');
    $this
      ->clickLink(t('Custom Access Example'));
    $this
      ->assertText(t('Custom Access Example'));
    $this
      ->drupalGet('examples/menu_example/custom_access/page');
    $this
      ->assertResponse(200);
    $this
      ->drupalGet('examples/menu_example/permissioned');
    $this
      ->assertText('Permissioned Example');
    $this
      ->clickLink('examples/menu_example/permissioned/controlled');
    $this
      ->assertText('This menu entry will not show');
    $this
      ->drupalGet('examples/menu_example/menu_altered_path');
    $this
      ->assertText('This menu item was created strictly to allow the hook_menu_alter()');
  }

}

Classes

Namesort descending Description
MenuExampleTestCase Functional tests for the Menu Example module.