protected function WebTestBase::assertFieldByXPath

Asserts that a field exists in the current page by the given XPath.

Parameters

$xpath: XPath used to find the field.

$value: (optional) Value of the field to assert.

$message: (optional) A message to display with the assertion. Do not translate messages: use format_string() to embed variables in the message text, not t(). If left blank, a default message will be displayed.

$group: (optional) The group this message is in, which is displayed in a column in test output. Use 'Debug' to indicate this is debugging output. Do not translate this string. Defaults to 'Other'; most tests do not override this default.

Return value

TRUE on pass, FALSE on fail.

31 calls to WebTestBase::assertFieldByXPath()
BlockTest::moveBlockToRegion in drupal/core/modules/block/lib/Drupal/block/Tests/BlockTest.php
Moves a block to a given region via the UI and confirms the result.
BlockTest::testCustomBlockFormat in drupal/core/modules/block/lib/Drupal/block/Tests/BlockTest.php
Test creating custom block using Full HTML.
CommentPreviewTest::testCommentPreview in drupal/core/modules/comment/lib/Drupal/comment/Tests/CommentPreviewTest.php
Tests comment preview.
ElementsTableSelectTest::testAdvancedSelect in drupal/core/modules/system/lib/Drupal/system/Tests/Form/ElementsTableSelectTest.php
Test the #js_select property.
ElementsTableSelectTest::testMultipleFalse in drupal/core/modules/system/lib/Drupal/system/Tests/Form/ElementsTableSelectTest.php
Test the display of radios when #multiple is FALSE.

... See full list

File

drupal/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php, line 2487
Definition of Drupal\simpletest\WebTestBase.

Class

WebTestBase
Test case for typical Drupal tests.

Namespace

Drupal\simpletest

Code

protected function assertFieldByXPath($xpath, $value = NULL, $message = '', $group = 'Other') {
  $fields = $this
    ->xpath($xpath);

  // If value specified then check array for match.
  $found = TRUE;
  if (isset($value)) {
    $found = FALSE;
    if ($fields) {
      foreach ($fields as $field) {
        if (isset($field['value']) && $field['value'] == $value) {

          // Input element with correct value.
          $found = TRUE;
        }
        elseif (isset($field->option)) {

          // Select element found.
          if ($this
            ->getSelectedItem($field) == $value) {
            $found = TRUE;
          }
          else {

            // No item selected so use first item.
            $items = $this
              ->getAllOptions($field);
            if (!empty($items) && $items[0]['value'] == $value) {
              $found = TRUE;
            }
          }
        }
        elseif ((string) $field == $value) {

          // Text area with correct text.
          $found = TRUE;
        }
      }
    }
  }
  return $this
    ->assertTrue($fields && $found, $message, $group);
}