<?php
/*
Plugin Name: HTTP Test plugin
Plugin URI: http://www.semiologic.com/software/
Description: Tests HTTP
Version: 0.1
Author: Denis de Bernardy
Author URI: http://www.semiologic.com
*/

add_action('init', 'do_http_tests', 1000);

function do_http_tests() {
	if ( is_admin() || !isset($_GET['http_test']) )
		return;
	
	header('Content-Type: text/plain; Charset: UTF-8');
	$logfile = WP_CONTENT_DIR . '/http-tests.log';
	ini_set('error_reporting', E_ALL);
	ini_set('display_errors', '1');
	switch ( $_GET['http_test'] ) {
	case 'response':
		$request = var_export(function_exists('apache_request_headers') ? apache_request_headers() : $_COOKIE, true);
		$log = "Request:\n\n$request\n\n";

		#$fp = fopen($logfile, 'a');
		#fwrite($fp, $log);
		#fclose($fp);
		echo $log;
		die;
	
	default:
		$transport = _wp_http_get_object();
		$transport = var_export($transport->_getTransport(), true);
		$log = "Transport:\n\n$transport\n\n";

		#$fp = fopen($logfile, 'a');
		#fwrite($fp, $log);
		#fclose($fp);
		echo $log;

		foreach ( array(
			get_option('home') . '/?http_test=response' => COOKIE_DOMAIN,
			'http://dev.semiologic.com/?http_test=response' => 'dev.semiologic.com',
			'https://dev.semiologic.com/?http_test=response' => 'dev.semiologic.com',
			) as $url => $domain ) {
			$cookies = new WP_Http_Cookie(array( 'name' => 'test', 'value' => 'test', 'expires' => NULL, 'path' => '/', 'domain' => $domain, ));
			$args = array('cookies' => array($cookies), 'headers' => array( 'Custom' => 'Headers'));
			
			$request = var_export($args, true);
			$log = "Request to $url:\n\n$request\n\n";
			
			echo $log;
			
			$response = var_export(wp_remote_get($url, $args), true);
			$log = "Response from $url:\n\n$response\n\n";

			#$fp = fopen($logfile, 'a');
			#fwrite($fp, $log);
			#fclose($fp);
			echo $log;
		}
		die;
	}
}
?>