blob: 71cca3bd91fe547bfd4fdb77f86acffc6eaead96 [file] [log] [blame]
<?php
namespace OAuth2\TokenType;
use OAuth2\Request\TestRequest;
use OAuth2\Response;
use PHPUnit\Framework\TestCase;
class BearerTest extends TestCase
{
public function testValidContentTypeWithCharset()
{
$bearer = new Bearer();
$request = TestRequest::createPost(array(
'access_token' => 'ThisIsMyAccessToken'
));
$request->server['CONTENT_TYPE'] = 'application/x-www-form-urlencoded; charset=UTF-8';
$param = $bearer->getAccessTokenParameter($request, $response = new Response());
$this->assertEquals($param, 'ThisIsMyAccessToken');
}
public function testInvalidContentType()
{
$bearer = new Bearer();
$request = TestRequest::createPost(array(
'access_token' => 'ThisIsMyAccessToken'
));
$request->server['CONTENT_TYPE'] = 'application/json; charset=UTF-8';
$param = $bearer->getAccessTokenParameter($request, $response = new Response());
$this->assertNull($param);
$this->assertEquals($response->getStatusCode(), 400);
$this->assertEquals($response->getParameter('error'), 'invalid_request');
$this->assertEquals($response->getParameter('error_description'), 'The content type for POST requests must be "application/x-www-form-urlencoded"');
}
public function testValidRequestUsingAuthorizationHeader()
{
$bearer = new Bearer();
$request = new TestRequest();
$request->headers['AUTHORIZATION'] = 'Bearer MyToken';
$request->server['CONTENT_TYPE'] = 'application/x-www-form-urlencoded; charset=UTF-8';
$param = $bearer->getAccessTokenParameter($request, $response = new Response());
$this->assertEquals('MyToken', $param);
}
public function testValidRequestUsingAuthorizationHeaderCaseInsensitive()
{
$bearer = new Bearer();
$request = new TestRequest();
$request->server['CONTENT_TYPE'] = 'application/x-www-form-urlencoded; charset=UTF-8';
$request->headers['Authorization'] = 'Bearer MyToken';
$param = $bearer->getAccessTokenParameter($request, $response = new Response());
$this->assertEquals('MyToken', $param);
}
}