diff options
author | Angie Byron <webchick@24967.no-reply.drupal.org> | 2009-09-16 15:28:00 +0000 |
---|---|---|
committer | Angie Byron <webchick@24967.no-reply.drupal.org> | 2009-09-16 15:28:00 +0000 |
commit | f5d1094bbbae0170ce5de10879305fb180a85bf0 (patch) | |
tree | a84a86e1ca861523ad83b105b8d1bf8bf7a30fb6 | |
parent | d61e0e8d39618bf532feb25d5e17a428ab8b4847 (diff) | |
download | brdo-f5d1094bbbae0170ce5de10879305fb180a85bf0.tar.gz brdo-f5d1094bbbae0170ce5de10879305fb180a85bf0.tar.bz2 |
#578470 by Dries, jbrauer, Gábor Hojtsy: Add return status codes to drupal_http_request() when a URL fails to parse, instead of failing silently.
-rw-r--r-- | includes/common.inc | 3 | ||||
-rw-r--r-- | modules/simpletest/tests/common.test | 15 |
2 files changed, 13 insertions, 5 deletions
diff --git a/includes/common.inc b/includes/common.inc index de85c77a0..8d6b8c6a1 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 d58a0ec1a..da49b8f56 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.')); |