You are here

public function MenuExampleTestCase::testMenuExample in Examples for Developers 7

Same name and namespace in other branches
  1. 6 menu_example/menu_example.test \MenuExampleTestCase::testMenuExample()

Test the various menus.

File

menu_example/menu_example.test, line 36
Tests for menu example module.

Class

MenuExampleTestCase
Functional tests for the Menu Example module.

Code

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()');
}