protected function DrupalWebTestCase::assertFieldByXPath in SimpleTest 7
Same name and namespace in other branches
- 6.2 drupal_web_test_case.php \DrupalWebTestCase::assertFieldByXPath()
- 7.2 drupal_web_test_case.php \DrupalWebTestCase::assertFieldByXPath()
Assert that a field exists in the current page by the given XPath.
Parameters
$xpath: XPath used to find the field.
$value: Value of the field to assert.
$message: Message to display.
$group: The group this message belongs to.
Return value
TRUE on pass, FALSE on fail.
6 calls to DrupalWebTestCase::assertFieldByXPath()
- DrupalWebTestCase::assertField in ./drupal_web_test_case.php 
- Assert that a field exists with the given name or id.
- DrupalWebTestCase::assertFieldById in ./drupal_web_test_case.php 
- Assert that a field exists in the current page with the given id and value.
- DrupalWebTestCase::assertFieldByName in ./drupal_web_test_case.php 
- Assert that a field exists in the current page with the given name and value.
- FormsElementsTableSelectFunctionalTest::testAdvancedSelect in tests/form.test 
- Test the #js_select property.
- FormsElementsTableSelectFunctionalTest::testMultipleFalse in tests/form.test 
- Test the display of radios when #multiple is FALSE.
File
- ./drupal_web_test_case.php, line 2226 
Class
- DrupalWebTestCase
- Test case for typical Drupal tests.
Code
protected function assertFieldByXPath($xpath, $value, $message, $group = 'Other') {
  $fields = $this
    ->xpath($xpath);
  // If value specified then check array for match.
  $found = TRUE;
  if ($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);
}