You are here

protected function DrupalWebTestCase::clickLink in Drupal 7

Follows a link by name.

Will click the first link found with this link text by default, or a later one if an index is given. Match is case sensitive with normalized space. The label is translated label.

If the link is discovered and clicked, the test passes. Fail otherwise.

Parameters

$label: Text between the anchor tags.

$index: Link position counting from zero.

Return value

Page contents on success, or FALSE on failure.

55 calls to DrupalWebTestCase::clickLink()
ActionsConfigurationTestCase::testActionConfiguration in modules/simpletest/tests/actions.test
Test the configuration of advanced actions through the administration interface.
AggregatorTestCase::updateFeedItems in modules/aggregator/aggregator.test
Updates the feed items.
BasicMinimalUpdatePath::testBasicMinimalUpdate in modules/simpletest/tests/upgrade/upgrade.test
Tests a successful point release update.
BasicStandardUpdatePath::testBasicStandardUpdate in modules/simpletest/tests/upgrade/upgrade.test
Tests a successful point release update.
BasicUpgradePath::testBasicUpgrade in modules/simpletest/tests/upgrade/upgrade.test
Test a successful upgrade.

... See full list

File

modules/simpletest/drupal_web_test_case.php, line 2991

Class

DrupalWebTestCase
Test case for typical Drupal tests.

Code

protected function clickLink($label, $index = 0) {
  $url_before = $this
    ->getUrl();
  $urls = $this
    ->xpath('//a[normalize-space(text())=:label]', array(
    ':label' => $label,
  ));
  if (isset($urls[$index])) {
    $url_target = $this
      ->getAbsoluteUrl($urls[$index]['href']);
    $this
      ->pass(t('Clicked link %label (@url_target) from @url_before', array(
      '%label' => $label,
      '@url_target' => $url_target,
      '@url_before' => $url_before,
    )), 'Browser');
    return $this
      ->drupalGet($url_target);
  }
  $this
    ->fail(t('Link %label does not exist on @url_before', array(
    '%label' => $label,
    '@url_before' => $url_before,
  )), 'Browser');
  return FALSE;
}