protected function DrupalWebTestCase::curlHeaderCallback in SimpleTest 7.2
Same name and namespace in other branches
- 6.2 drupal_web_test_case.php \DrupalWebTestCase::curlHeaderCallback()
- 7 drupal_web_test_case.php \DrupalWebTestCase::curlHeaderCallback()
Reads headers and registers errors received from the tested site.
Parameters
$curlHandler: The cURL handler.
$header: An header.
See also
File
- ./
drupal_web_test_case.php, line 1671 - Provides DrupalTestCase, DrupalUnitTestCase, and DrupalWebTestCase classes.
Class
- DrupalWebTestCase
- Test case for typical Drupal tests.
Code
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);
}