You are here

public function ContextualLinksExampleTestCase::testContextualLinksExample in Examples for Developers 7

Test the various contextual links that this module defines and displays.

File

contextual_links_example/contextual_links_example.test, line 40
Functional tests for the contextual_links_example module.

Class

ContextualLinksExampleTestCase
Functional tests for the contextual_links_example module.

Code

public function testContextualLinksExample() {

  // Create a node and promote it to the front page. Then view the front page
  // and verify that the "Example action" contextual link works.
  $node = $this
    ->drupalCreateNode(array(
    'type' => 'page',
    'promote' => 1,
  ));
  $this
    ->drupalGet('');
  $this
    ->clickLink(t('Example action'));
  $this
    ->assertUrl('node/' . $node->nid . '/example-action', array(
    'query' => array(
      'destination' => 'node',
    ),
  ));

  // Visit our example overview page and click the third contextual link.
  // This should take us to a page for editing the third object we defined.
  $this
    ->drupalGet('examples/contextual-links');
  $this
    ->clickLink('Edit object', 2);
  $this
    ->assertUrl('examples/contextual-links/3/edit', array(
    'query' => array(
      'destination' => 'examples/contextual-links',
    ),
  ));

  // Enable our module's block, go back to the front page, and click the
  // "Edit object" contextual link that we expect to be there.
  $edit['blocks[contextual_links_example_example][region]'] = 'sidebar_first';
  $this
    ->drupalPost('admin/structure/block', $edit, t('Save blocks'));
  $this
    ->drupalGet('');
  $this
    ->clickLink('Edit object');
  $this
    ->assertUrl('examples/contextual-links/1/edit', array(
    'query' => array(
      'destination' => 'node',
    ),
  ));
}