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
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.