Page MenuHomeWickedGov Phorge

OAuthTestUtils.php
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

OAuthTestUtils.php

<?php
namespace MediaWiki\Extension\OAuth\Tests\Lib;
use MediaWiki\Extension\OAuth\Lib\OAuthRequest;
/**
* A simple utils class for methods needed
* during some of the tests
*/
class OAuthTestUtils {
private static function reset_request_vars() {
$_SERVER = array();
$_POST = array();
$_GET = array();
}
/**
* Populates $_{SERVER,GET,POST} and whatever environment-variables needed to test everything..
*
* @param string $method GET or POST
* @param string $uri What URI is the request to (eg http://example.com/foo?bar=baz)
* @param string $post_data What should the post-data be
* @param string $auth_header What to set the Authorization header to
*/
public static function build_request( $method, $uri, $post_data = '', $auth_header = '' ) {
self::reset_request_vars();
$method = strtoupper($method);
$parts = parse_url($uri);
$scheme = $parts['scheme'];
$port = isset( $parts['port'] ) && $parts['port'] ? $parts['port'] : ( $scheme === 'https' ? '443' : '80' );
$host = $parts['host'];
$path = $parts['path'] ?? NULL;
$query = $parts['query'] ?? '';
if( $scheme == 'https') {
$_SERVER['HTTPS'] = 'on';
}
$_SERVER['REQUEST_METHOD'] = $method;
$_SERVER['HTTP_HOST'] = $host;
$_SERVER['SERVER_NAME'] = $host;
$_SERVER['SERVER_PORT'] = $port;
$_SERVER['SCRIPT_NAME'] = $path;
$_SERVER['REQUEST_URI'] = $path . '?' . $query;
$_SERVER['QUERY_STRING'] = $query;
parse_str($query, $_GET);
if( $method == 'POST' ) {
$_SERVER['HTTP_CONTENT_TYPE'] = 'application/x-www-form-urlencoded';
parse_str($post_data, $_POST);
OAuthRequest::$POST_INPUT = 'data:application/x-www-form-urlencoded,'.$post_data;
}
if( $auth_header != '' ) {
$_SERVER['HTTP_AUTHORIZATION'] = $auth_header;
}
}
}

File Metadata

Mime Type
text/x-php
Expires
Wed, Aug 19, 11:39 (3 w, 1 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
a9/96/fc7b8b9d1923e87807c07b9e60e4
Default Alt Text
OAuthTestUtils.php (1 KB)

Event Timeline