From 6aea1d08736936a7181ee5bcdfe384c802ce5e0a Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Tue, 24 Jun 2008 22:09:52 +0000
Subject: [PATCH] - Patch #260778 by boombatower et al: play a user agent trick
 to make the tests work.

---
 includes/common.inc | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/includes/common.inc b/includes/common.inc
index 3296d98c1068..9ec58b08e3e5 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -414,6 +414,7 @@ function drupal_access_denied() {
  *   data and redirect status.
  */
 function drupal_http_request($url, $headers = array(), $method = 'GET', $data = NULL, $retry = 3) {
+  global $db_prefix;
   static $self_test = FALSE;
   $result = new stdClass();
   // Try to clear the drupal_http_request_fails variable if it's set. We
@@ -482,6 +483,16 @@ function drupal_http_request($url, $headers = array(), $method = 'GET', $data =
     $defaults['Authorization'] = 'Authorization: Basic ' . base64_encode($uri['user'] . (!empty($uri['pass']) ? ":" . $uri['pass'] : ''));
   }
 
+  // If the database prefix is being used by SimpleTest to run the tests in a copied
+  // database then set the user-agent header to the database prefix so that any
+  // calls to other Drupal pages will run the SimpleTest prefixed database. The
+  // user-agent is used to ensure that multiple testing sessions running at the
+  // same time won't interfere with each other as they would if the database
+  // prefix were stored statically in a file or database variable.
+  if (preg_match("/^simpletest\d+/", $db_prefix)) {
+    $headers['User-Agent'] = $db_prefix;
+  }
+
   foreach ($headers as $header => $value) {
     $defaults[$header] = $header . ': ' . $value;
   }
-- 
GitLab