? modules/simpletest/tests/drupal_redirect_test.patch ? modules/simpletest/tests/request_test.info ? modules/simpletest/tests/request_test.module Index: modules/simpletest/tests/common.test =================================================================== RCS file: /cvs/drupal/drupal/modules/simpletest/tests/common.test,v retrieving revision 1.4 diff -u -p -r1.4 common.test --- modules/simpletest/tests/common.test 29 Aug 2008 14:45:19 -0000 1.4 +++ modules/simpletest/tests/common.test 29 Aug 2008 18:04:12 -0000 @@ -128,6 +128,10 @@ class DrupalHTTPRequestTestCase extends 'group' => t('System') ); } + + function setUp() { + parent::setUp('drupal_http_request_test'); + } function testDrupalHTTPRequest() { // Parse URL schema. @@ -143,4 +147,52 @@ class DrupalHTTPRequestTestCase extends $this->drupalSetContent($result->data); $this->assertTitle(variable_get('site_name', 'Drupal'), t('Site title matches.')); } + + function testDrupalHTTPRequestBasicAuth() { + $username = $this->randomName(); + $password = $this->randomName(); + $url = url('drupal_http_request_test', array('absolute' => TRUE)); + + $auth = str_replace('http://', 'http://' . $username . ':' . $password .'@', $url); + $result = drupal_http_request($auth); + + // We use strpos directly. + // assertRaw() cannot be used because we are getting the data + // in a variable instead of $this->_content. + $this->assertTrue(strpos($result->data, $username) !== FALSE, t('$_SERVER[\'PHP_AUTH_USER\'] is passed correctly.')); + $this->assertTrue(strpos($result->data, $password) !== FALSE, t('$_SERVER[\'PHP_AUTH_PW\'] is passed correctly.')); + } + + function testDrupalHTTPRequestRedirect() { + $redirect_301 = drupal_http_request( + url('drupal_http_request_test/301', + array('absolute' => TRUE)), + array(), + 'GET', + NULL, + 1 + ); + $this->assertEqual($redirect_301->redirect_code, 200, t('drupal_http_request follows the 301 redirect.')); + + $redirect_302 = drupal_http_request( + url('drupal_http_request_test/302', + array('absolute' => TRUE)), + array(), + 'GET', + NULL, + 1 + ); + $this->assertEqual($redirect_302->redirect_code, 200, t('drupal_http_request follows the 302 redirect.')); + + $redirect_307 = drupal_http_request( + url('drupal_http_request_test/307', + array('absolute' => TRUE)), + array(), + 'GET', + NULL, + 1 + ); + $this->assertEqual($redirect_307->redirect_code, 200, t('drupal_http_request follows the 307 redirect.')); + } + } Index: modules/simpletest/tests/drupal_http_request_test.info =================================================================== RCS file: modules/simpletest/tests/drupal_http_request_test.info diff -N modules/simpletest/tests/drupal_http_request_test.info --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/simpletest/tests/drupal_http_request_test.info 29 Aug 2008 18:04:12 -0000 @@ -0,0 +1,8 @@ +; $id$ +name = "drupal_HTTP_request Test" +description = "Support module for drupal_HTTP_request testing." +package = Testing +version = VERSION +core = 7.x +files[] = drupal_http_request_test.module +hidden = TRUE Index: modules/simpletest/tests/drupal_http_request_test.module =================================================================== RCS file: modules/simpletest/tests/drupal_http_request_test.module diff -N modules/simpletest/tests/drupal_http_request_test.module --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/simpletest/tests/drupal_http_request_test.module 29 Aug 2008 18:04:12 -0000 @@ -0,0 +1,63 @@ + 'drupal_http_request_test_basic_auth_page', + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + ); + + $items['drupal_http_request_test/301'] = array( + 'title' => t('Redirect'), + 'page callback' => 'drupal_http_request_test_301', + 'access arguments' => array('access content'), + 'type' => MENU_CALLBACK, + ); + $items['drupal_http_request_test/302'] = array( + 'title' => t('Redirect'), + 'page callback' => 'drupal_http_request_test_302', + 'access arguments' => array('access content'), + 'type' => MENU_CALLBACK, + ); + $items['drupal_http_request_test/307'] = array( + 'title' => t('Redirect'), + 'page callback' => 'drupal_http_request_test_307', + 'access arguments' => array('access content'), + 'type' => MENU_CALLBACK, + ); + $items['drupal_http_request_test/200'] = array( + 'title' => t('Redirect'), + 'page callback' => 'drupal_http_request_test_200', + 'access arguments' => array('access content'), + 'type' => MENU_CALLBACK, + ); + + return $items; +} + +function drupal_http_request_test_basic_auth_page() { + $output = t('$_SERVER[\'PHP_AUTH_USER\'] is @username.', array('@username' => $_SERVER['PHP_AUTH_USER'])); + $output .= t('$_SERVER[\'PHP_AUTH_PW\'] is @password.', array('@password' => $_SERVER['PHP_AUTH_PW'])); + return $output; +} + +function drupal_http_request_test_301() { + header( "Location: ".url('drupal_http_request_test/200', array('absolute' => TRUE) ), TRUE, 301); +} + +function drupal_http_request_test_302() { + header( "Location: ".url('drupal_http_request_test/200', array('absolute' => TRUE) ), TRUE, 302); +} + +function drupal_http_request_test_307() { + header( "Location: ".url('drupal_http_request_test/200', array('absolute' => TRUE) ), TRUE, 307); +} + +function drupal_http_request_test_200() { + return ''; +}