function DrupalWebTestCase::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. You may pass in NULL (default) to skip checking the actual value, while still checking that the field exists.

$message: (optional) Message to display.

$group: (optional) The group this message belongs to.

Return value

TRUE on pass, FALSE on fail.

38 calls to DrupalWebTestCase::assertFieldByXPath()
AJAXMultiFormTestCase::testMultiForm in modules/simpletest/tests/ajax.test
Test that a page with the 'page_node_form' included twice works correctly.
BlockTestCase::moveBlockToRegion in modules/block/block.test
BlockTestCase::testCustomBlockFormat in modules/block/block.test
Test creating custom block using Full HTML.
CommentPreviewTest::testCommentPreview in modules/comment/comment.test
Test comment preview.
DrupalRenderTestCase::assertRenderedElement in modules/simpletest/tests/common.test

... See full list

File

modules/simpletest/drupal_web_test_case.php, line 3596

Class

DrupalWebTestCase
Test case for typical Drupal tests.

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

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.