From f5d1094bbbae0170ce5de10879305fb180a85bf0 Mon Sep 17 00:00:00 2001 From: Angie Byron <webchick@24967.no-reply.drupal.org> Date: Wed, 16 Sep 2009 15:28:00 +0000 Subject: [PATCH] =?UTF-8?q?#578470=20by=20Dries,=20jbrauer,=20G=C3=A1bor?= =?UTF-8?q?=20Hojtsy:=20Add=20return=20status=20codes=20to=20drupal=5Fhttp?= =?UTF-8?q?=5Frequest()=20when=20a=20URL=20fails=20to=20parse,=20instead?= =?UTF-8?q?=20of=20failing=20silently.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- includes/common.inc | 3 +++ modules/simpletest/tests/common.test | 15 ++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/includes/common.inc b/includes/common.inc index de85c77a0f75..8d6b8c6a1c3d 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -578,11 +578,13 @@ function drupal_http_request($url, array $options = array()) { if ($uri == FALSE) { $result->error = 'unable to parse URL'; + $result->code = -1001; return $result; } if (!isset($uri['scheme'])) { $result->error = 'missing schema'; + $result->code = -1002; return $result; } @@ -611,6 +613,7 @@ function drupal_http_request($url, array $options = array()) { break; default: $result->error = 'invalid schema ' . $uri['scheme']; + $result->code = -1003; return $result; } diff --git a/modules/simpletest/tests/common.test b/modules/simpletest/tests/common.test index d58a0ec1abd2..da49b8f564f0 100644 --- a/modules/simpletest/tests/common.test +++ b/modules/simpletest/tests/common.test @@ -473,10 +473,12 @@ class DrupalHTTPRequestTestCase extends DrupalWebTestCase { function testDrupalHTTPRequest() { // Parse URL schema. $missing_scheme = drupal_http_request('example.com/path'); - $this->assertEqual($missing_scheme->error, 'missing schema', t('Returned with "missing schema" error.')); + $this->assertEqual($missing_scheme->code, -1002, t('Returned with "-1002" error code.')); + $this->assertEqual($missing_scheme->error, 'missing schema', t('Returned with "missing schema" error message.')); $unable_to_parse = drupal_http_request('http:///path'); - $this->assertEqual($unable_to_parse->error, 'unable to parse URL', t('Returned with "unable to parse URL" error.')); + $this->assertEqual($unable_to_parse->code, -1001, t('Returned with "-1001" error code.')); + $this->assertEqual($unable_to_parse->error, 'unable to parse URL', t('Returned with "unable to parse URL" error message.')); // Fetch page. $result = drupal_http_request(url('node', array('absolute' => TRUE))); @@ -525,13 +527,16 @@ class DrupalHTTPRequestTestCase extends DrupalWebTestCase { $this->assertFalse(isset($redirect_301->redirect_code), t('drupal_http_request does not follow 301 redirect if max_redirects = 0.')); $redirect_invalid = drupal_http_request(url('system-test/redirect-noscheme', array('absolute' => TRUE)), array('max_redirects' => 1)); - $this->assertEqual($redirect_invalid->error, 'missing schema', t('301 redirect to invalid URL returned with error "!error".', array('!error' => $redirect_invalid->error))); + $this->assertEqual($redirect_invalid->code, -1002, t('301 redirect to invalid URL returned with error code !error.', array('!error' => $redirect_invalid->error))); + $this->assertEqual($redirect_invalid->error, 'missing schema', t('301 redirect to invalid URL returned with error message "!error".', array('!error' => $redirect_invalid->error))); $redirect_invalid = drupal_http_request(url('system-test/redirect-noparse', array('absolute' => TRUE)), array('max_redirects' => 1)); - $this->assertEqual($redirect_invalid->error, 'unable to parse URL', t('301 redirect to invalid URL returned with error "!error".', array('!error' => $redirect_invalid->error))); + $this->assertEqual($redirect_invalid->code, -1001, t('301 redirect to invalid URL returned with error message code "!error".', array('!error' => $redirect_invalid->error))); + $this->assertEqual($redirect_invalid->error, 'unable to parse URL', t('301 redirect to invalid URL returned with error message "!error".', array('!error' => $redirect_invalid->error))); $redirect_invalid = drupal_http_request(url('system-test/redirect-invalid-scheme', array('absolute' => TRUE)), array('max_redirects' => 1)); - $this->assertEqual($redirect_invalid->error, 'invalid schema ftp', t('301 redirect to invalid URL returned with error "!error".', array('!error' => $redirect_invalid->error))); + $this->assertEqual($redirect_invalid->code, -1003, t('301 redirect to invalid URL returned with error code !error.', array('!error' => $redirect_invalid->error))); + $this->assertEqual($redirect_invalid->error, 'invalid schema ftp', t('301 redirect to invalid URL returned with error message "!error".', array('!error' => $redirect_invalid->error))); $redirect_302 = drupal_http_request(url('system-test/redirect/302', array('absolute' => TRUE)), array('max_redirects' => 1)); $this->assertEqual($redirect_302->redirect_code, 302, t('drupal_http_request follows the 302 redirect.')); -- GitLab