DrupalWebTestCase::curlHeaderCallback

  1. drupal
    1. 8
    2. 7
Versions
7 protected DrupalWebTestCase::curlHeaderCallback($curlHandler, $header)

Reads headers and registers errors received from the tested site.

Parameters

$curlHandler The cURL handler.

$header An header.

See also

_drupal_log_error().

Code

modules/simpletest/drupal_web_test_case.php, line 1633

<?php
protected function curlHeaderCallback($curlHandler, $header) {
  $this->headers[] = $header;

  // Errors are being sent via X-Drupal-Assertion-* headers,
  // generated by _drupal_log_error() in the exact form required
  // by DrupalWebTestCase::error().
  if (preg_match('/^X-Drupal-Assertion-[0-9]+: (.*)$/', $header, $matches)) {
    // Call DrupalWebTestCase::error() with the parameters from the header.
    call_user_func_array(array(&$this, 'error'), unserialize(urldecode($matches[1])));
  }

  // Save cookies.
  if (preg_match('/^Set-Cookie: ([^=]+)=(.+)/', $header, $matches)) {
    $name = $matches[1];
    $parts = array_map('trim', explode(';', $matches[2]));
    $value = array_shift($parts);
    $this->cookies[$name] = array(
      'value' => $value,
      'secure' => in_array('secure', $parts),
    );
    if ($name == $this->session_name) {
      if ($value != 'deleted') {
        $this->session_id = $value;
      }
      else {
        $this->session_id = NULL;
      }
    }
  }

  // This is required by cURL.
  return strlen($header);
}
?>