mirror of
https://github.com/elyby/oauth2-server.git
synced 2024-12-23 05:29:52 +05:30
Removed old tests
This commit is contained in:
parent
3cd5f50e64
commit
a2db7e1929
@ -1,428 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use \Mockery as m;
|
|
||||||
|
|
||||||
class Auth_Code_Grant_Test extends PHPUnit_Framework_TestCase
|
|
||||||
{
|
|
||||||
private $client;
|
|
||||||
private $session;
|
|
||||||
private $scope;
|
|
||||||
|
|
||||||
public function setUp()
|
|
||||||
{
|
|
||||||
$this->client = M::mock('League\OAuth2\Server\Storage\ClientInterface');
|
|
||||||
$this->session = M::mock('League\OAuth2\Server\Storage\SessionInterface');
|
|
||||||
$this->scope = M::mock('League\OAuth2\Server\Storage\ScopeInterface');
|
|
||||||
}
|
|
||||||
|
|
||||||
private function returnDefault()
|
|
||||||
{
|
|
||||||
return new League\OAuth2\Server\Authorization($this->client, $this->session, $this->scope);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException PHPUnit_Framework_Error
|
|
||||||
*/
|
|
||||||
public function test__construct()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$grant = new League\OAuth2\Server\Grant\AuthCode($a);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_setIdentifier()
|
|
||||||
{
|
|
||||||
$grant = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$grant->setIdentifier('foobar');
|
|
||||||
$this->assertEquals($grant->getIdentifier(), 'foobar');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_setAuthTokenTTL()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$grant = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$grant->setAuthTokenTTL(30);
|
|
||||||
|
|
||||||
$reflector = new ReflectionClass($grant);
|
|
||||||
$requestProperty = $reflector->getProperty('authTokenTTL');
|
|
||||||
$requestProperty->setAccessible(true);
|
|
||||||
$v = $requestProperty->getValue($grant);
|
|
||||||
|
|
||||||
$this->assertEquals(30, $v);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_checkAuthoriseParams_noClientId()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$g = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$a->addGrantType($g);
|
|
||||||
$g->checkAuthoriseParams();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_checkAuthoriseParams_noRedirectUri()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$g = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$a->addGrantType($g);
|
|
||||||
$g->checkAuthoriseParams(array(
|
|
||||||
'client_id' => 1234
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_checkAuthoriseParams_noRequiredState()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$g = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$a->addGrantType($g);
|
|
||||||
$a->requireStateParam(true);
|
|
||||||
$g->checkAuthoriseParams(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'redirect_uri' => 'http://foo/redirect'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 8
|
|
||||||
*/
|
|
||||||
public function test_checkAuthoriseParams_badClient()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(false);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$g = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$a->addGrantType($g);
|
|
||||||
$g->checkAuthoriseParams(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'redirect_uri' => 'http://foo/redirect'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_checkAuthoriseParams_missingResponseType()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$g = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$a->addGrantType($g);
|
|
||||||
$g->checkAuthoriseParams(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'redirect_uri' => 'http://foo/redirect'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 3
|
|
||||||
*/
|
|
||||||
public function test_checkAuthoriseParams_badResponseType()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$g = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$a->addGrantType($g);
|
|
||||||
$g->checkAuthoriseParams(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'response_type' => 'foo'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_checkAuthoriseParams_missingScopes()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$g = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$a->addGrantType($g);
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
$a->requireScopeParam(true);
|
|
||||||
|
|
||||||
$g->checkAuthoriseParams(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'response_type' => 'code',
|
|
||||||
'scope' => ''
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_checkAuthoriseParams_defaultScope()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->scope->shouldReceive('getScope')->andReturn(array(
|
|
||||||
'id' => 1,
|
|
||||||
'scope' => 'foo',
|
|
||||||
'name' => 'Foo Name',
|
|
||||||
'description' => 'Foo Name Description'
|
|
||||||
));
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$g = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$a->addGrantType($g);
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
$a->setDefaultScope('test.scope');
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
|
|
||||||
$params = $g->checkAuthoriseParams(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'response_type' => 'code',
|
|
||||||
'scope' => ''
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('scopes', $params);
|
|
||||||
$this->assertEquals(1, count($params['scopes']));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_checkAuthoriseParams_defaultScopeArray()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->scope->shouldReceive('getScope')->andReturn(array(
|
|
||||||
'id' => 1,
|
|
||||||
'scope' => 'foo',
|
|
||||||
'name' => 'Foo Name',
|
|
||||||
'description' => 'Foo Name Description'
|
|
||||||
));
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$g = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$a->addGrantType($g);
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
$a->setDefaultScope(array('test.scope', 'test.scope2'));
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
|
|
||||||
$params = $g->checkAuthoriseParams(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'response_type' => 'code',
|
|
||||||
'scope' => ''
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('scopes', $params);
|
|
||||||
$this->assertEquals(2, count($params['scopes']));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 4
|
|
||||||
*/
|
|
||||||
public function test_checkAuthoriseParams_badScopes()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->scope->shouldReceive('getScope')->andReturn(false);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$g = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$a->addGrantType($g);
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
|
|
||||||
$g->checkAuthoriseParams(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'response_type' => 'code',
|
|
||||||
'scope' => 'foo'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_checkAuthoriseParams_passedInput()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$g = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$a->addGrantType($g);
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->scope->shouldReceive('getScope')->andReturn(array(
|
|
||||||
'id' => 1,
|
|
||||||
'scope' => 'foo',
|
|
||||||
'name' => 'Foo Name',
|
|
||||||
'description' => 'Foo Name Description'
|
|
||||||
));
|
|
||||||
|
|
||||||
$v = $g->checkAuthoriseParams(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'response_type' => 'code',
|
|
||||||
'scope' => 'foo',
|
|
||||||
'state' => 'xyz'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertEquals(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'client_details' => array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
),
|
|
||||||
'response_type' => 'code',
|
|
||||||
'scopes' => array(
|
|
||||||
array(
|
|
||||||
'id' => 1,
|
|
||||||
'scope' => 'foo',
|
|
||||||
'name' => 'Foo Name',
|
|
||||||
'description' => 'Foo Name Description'
|
|
||||||
)
|
|
||||||
),
|
|
||||||
'scope' => 'foo',
|
|
||||||
'state' => 'xyz'
|
|
||||||
), $v);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_checkAuthoriseParams()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->scope->shouldReceive('getScope')->andReturn(array(
|
|
||||||
'id' => 1,
|
|
||||||
'scope' => 'foo',
|
|
||||||
'name' => 'Foo Name',
|
|
||||||
'description' => 'Foo Name Description'
|
|
||||||
));
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$g = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$a->addGrantType($g);
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
|
|
||||||
$_GET['client_id'] = 1234;
|
|
||||||
$_GET['redirect_uri'] = 'http://foo/redirect';
|
|
||||||
$_GET['response_type'] = 'code';
|
|
||||||
$_GET['scope'] = 'foo';
|
|
||||||
$_GET['state'] = 'xyz';
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request($_GET);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$v = $g->checkAuthoriseParams();
|
|
||||||
|
|
||||||
$this->assertEquals(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'client_details' => array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
),
|
|
||||||
'response_type' => 'code',
|
|
||||||
'scopes' => array(
|
|
||||||
array(
|
|
||||||
'id' => 1,
|
|
||||||
'scope' => 'foo',
|
|
||||||
'name' => 'Foo Name',
|
|
||||||
'description' => 'Foo Name Description'
|
|
||||||
)
|
|
||||||
),
|
|
||||||
'scope' => 'foo',
|
|
||||||
'state' => 'xyz'
|
|
||||||
), $v);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function test_newAuthoriseRequest()
|
|
||||||
{
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateRedirectUri')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateAuthCodeScope')->andReturn(null);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$g = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$a->addGrantType($g);
|
|
||||||
|
|
||||||
$params = array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'client_details' => array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
),
|
|
||||||
'response_type' => 'code',
|
|
||||||
'scopes' => array(
|
|
||||||
array(
|
|
||||||
'id' => 1,
|
|
||||||
'scope' => 'foo',
|
|
||||||
'name' => 'Foo Name',
|
|
||||||
'description' => 'Foo Name Description'
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
$v = $g->newAuthoriseRequest('user', 123, $params);
|
|
||||||
|
|
||||||
$this->assertEquals(40, strlen($v));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,513 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use \Mockery as m;
|
|
||||||
|
|
||||||
class Authorization_Server_test extends PHPUnit_Framework_TestCase
|
|
||||||
{
|
|
||||||
private $client;
|
|
||||||
private $session;
|
|
||||||
private $scope;
|
|
||||||
|
|
||||||
public function setUp()
|
|
||||||
{
|
|
||||||
$this->client = M::mock('League\OAuth2\Server\Storage\ClientInterface');
|
|
||||||
$this->session = M::mock('League\OAuth2\Server\Storage\SessionInterface');
|
|
||||||
$this->scope = M::mock('League\OAuth2\Server\Storage\ScopeInterface');
|
|
||||||
}
|
|
||||||
|
|
||||||
private function returnDefault()
|
|
||||||
{
|
|
||||||
return new League\OAuth2\Server\Authorization($this->client, $this->session, $this->scope);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException PHPUnit_Framework_Error
|
|
||||||
*/
|
|
||||||
public function test__construct_NoStorage()
|
|
||||||
{
|
|
||||||
new League\OAuth2\Server\Authorization;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test__contruct_WithStorage()
|
|
||||||
{
|
|
||||||
$this->returnDefault();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_getExceptionMessage()
|
|
||||||
{
|
|
||||||
$m = League\OAuth2\Server\Authorization::getExceptionMessage('access_denied');
|
|
||||||
|
|
||||||
$reflector = new ReflectionClass($this->returnDefault());
|
|
||||||
$exceptionMessages = $reflector->getProperty('exceptionMessages');
|
|
||||||
$exceptionMessages->setAccessible(true);
|
|
||||||
$v = $exceptionMessages->getValue();
|
|
||||||
|
|
||||||
$this->assertEquals($v['access_denied'], $m);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_getExceptionCode()
|
|
||||||
{
|
|
||||||
$this->assertEquals('access_denied', League\OAuth2\Server\Authorization::getExceptionType(2));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_getExceptionHttpHeaders()
|
|
||||||
{
|
|
||||||
$this->assertEquals(array('HTTP/1.1 401 Unauthorized'), League\OAuth2\Server\Authorization::getExceptionHttpHeaders('access_denied'));
|
|
||||||
$this->assertEquals(array('HTTP/1.1 500 Internal Server Error'), League\OAuth2\Server\Authorization::getExceptionHttpHeaders('server_error'));
|
|
||||||
$this->assertEquals(array('HTTP/1.1 501 Not Implemented'), League\OAuth2\Server\Authorization::getExceptionHttpHeaders('unsupported_grant_type'));
|
|
||||||
$this->assertEquals(array('HTTP/1.1 400 Bad Request'), League\OAuth2\Server\Authorization::getExceptionHttpHeaders('invalid_refresh'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_hasGrantType()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$this->assertFalse($a->hasGrantType('test'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_addGrantType()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$grant = M::mock('League\OAuth2\Server\Grant\GrantTypeInterface');
|
|
||||||
$grant->shouldReceive('getResponseType')->andReturn('test');
|
|
||||||
$grant->shouldReceive('setAuthorizationServer')->andReturn($grant);
|
|
||||||
$a->addGrantType($grant, 'test');
|
|
||||||
|
|
||||||
$this->assertTrue($a->hasGrantType('test'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_addGrantType_noIdentifier()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$grant = M::mock('League\OAuth2\Server\Grant\GrantTypeInterface');
|
|
||||||
$grant->shouldReceive('getIdentifier')->andReturn('test');
|
|
||||||
$grant->shouldReceive('getResponseType')->andReturn('test');
|
|
||||||
$grant->shouldReceive('setAuthorizationServer')->andReturn($grant);
|
|
||||||
$a->addGrantType($grant);
|
|
||||||
|
|
||||||
$this->assertTrue($a->hasGrantType('test'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_getScopeDelimeter()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$this->assertEquals(' ', $a->getScopeDelimeter());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_setScopeDelimeter()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->setScopeDelimeter(',');
|
|
||||||
$this->assertEquals(',', $a->getScopeDelimeter());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_requireScopeParam()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
|
|
||||||
$reflector = new ReflectionClass($a);
|
|
||||||
$requestProperty = $reflector->getProperty('requireScopeParam');
|
|
||||||
$requestProperty->setAccessible(true);
|
|
||||||
$v = $requestProperty->getValue($a);
|
|
||||||
|
|
||||||
$this->assertFalse($v);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_scopeParamRequired()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
|
|
||||||
$this->assertFalse($a->scopeParamRequired());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_setDefaultScope()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->setDefaultScope('test.default');
|
|
||||||
|
|
||||||
$reflector = new ReflectionClass($a);
|
|
||||||
$requestProperty = $reflector->getProperty('defaultScope');
|
|
||||||
$requestProperty->setAccessible(true);
|
|
||||||
$v = $requestProperty->getValue($a);
|
|
||||||
|
|
||||||
$this->assertEquals('test.default', $v);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_getDefaultScope()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->setDefaultScope('test.default');
|
|
||||||
$this->assertEquals('test.default', $a->getDefaultScope());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_requireStateParam()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->requireStateParam(true);
|
|
||||||
|
|
||||||
$reflector = new ReflectionClass($a);
|
|
||||||
$requestProperty = $reflector->getProperty('requireStateParam');
|
|
||||||
$requestProperty->setAccessible(true);
|
|
||||||
$v = $requestProperty->getValue($a);
|
|
||||||
|
|
||||||
$this->assertTrue($v);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_getAccessTokenTTL()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->setAccessTokenTTL(7200);
|
|
||||||
$this->assertEquals(7200, $a->getAccessTokenTTL());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_setAccessTokenTTL()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->setScopeDelimeter(';');
|
|
||||||
$this->assertEquals(';', $a->getScopeDelimeter());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_setRequest()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$request = new League\OAuth2\Server\Util\Request();
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$reflector = new ReflectionClass($a);
|
|
||||||
$requestProperty = $reflector->getProperty('request');
|
|
||||||
$requestProperty->setAccessible(true);
|
|
||||||
$v = $requestProperty->getValue($a);
|
|
||||||
|
|
||||||
$this->assertTrue($v instanceof League\OAuth2\Server\Util\RequestInterface);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_getRequest()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$request = new League\OAuth2\Server\Util\Request();
|
|
||||||
$a->setRequest($request);
|
|
||||||
$v = $a->getRequest();
|
|
||||||
|
|
||||||
$this->assertTrue($v instanceof League\OAuth2\Server\Util\RequestInterface);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_getStorage()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$this->assertTrue($a->getStorage('session') instanceof League\OAuth2\Server\Storage\SessionInterface);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_getGrantType()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
|
|
||||||
$reflector = new ReflectionClass($a);
|
|
||||||
$method = $reflector->getMethod('getGrantType');
|
|
||||||
$method->setAccessible(true);
|
|
||||||
|
|
||||||
$result = $method->invoke($a, 'authorization_code');
|
|
||||||
|
|
||||||
$this->assertTrue($result instanceof League\OAuth2\Server\Grant\GrantTypeInterface);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\InvalidGrantTypeException
|
|
||||||
* @expectedExceptionCode 9
|
|
||||||
*/
|
|
||||||
public function test_getGrantType_fail()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->getGrantType('blah');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_missingGrantType()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
|
|
||||||
$a->issueAccessToken();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 7
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_badGrantType()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
|
|
||||||
$a->issueAccessToken(array('grant_type' => 'foo'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_missingClientId()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'authorization_code'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_missingClientSecret()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'authorization_code',
|
|
||||||
'client_id' => 1234
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_missingRedirectUri()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'authorization_code',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 8
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_badClient()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(false);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'authorization_code',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_missingCode()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array());
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'authorization_code',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 9
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_badCode()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array());
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(false);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'authorization_code',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'code' => 'foobar'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken_passedInput()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(array(
|
|
||||||
'session_id' => 1,
|
|
||||||
'authcode_id' => 1
|
|
||||||
));
|
|
||||||
$this->session->shouldReceive('updateSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('removeAuthCode')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('getAuthCodeScopes')->andReturn(array('scope_id' => 1));
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'authorization_code',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'code' => 'foobar'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
|
|
||||||
$this->assertEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('updateSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('removeAuthCode')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('getAuthCodeScopes')->andReturn(array('scope_id' => 1));
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
|
|
||||||
$_POST['grant_type'] = 'authorization_code';
|
|
||||||
$_POST['client_id'] = 1234;
|
|
||||||
$_POST['client_secret'] = 5678;
|
|
||||||
$_POST['redirect_uri'] = 'http://foo/redirect';
|
|
||||||
$_POST['code'] = 'foobar';
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken();
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
|
|
||||||
$this->assertEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken_customExpiresIn()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('updateSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('removeAuthCode')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('getAuthCodeScopes')->andReturn(array('scope_id' => 1));
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$grant = new League\OAuth2\Server\Grant\AuthCode();
|
|
||||||
$grant->setAccessTokenTTL(30);
|
|
||||||
$a->addGrantType($grant);
|
|
||||||
|
|
||||||
$_POST['grant_type'] = 'authorization_code';
|
|
||||||
$_POST['client_id'] = 1234;
|
|
||||||
$_POST['client_secret'] = 5678;
|
|
||||||
$_POST['redirect_uri'] = 'http://foo/redirect';
|
|
||||||
$_POST['code'] = 'foobar';
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken();
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
|
|
||||||
$this->assertNotEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
$this->assertNotEquals(time()+$a->getAccessTokenTTL(), $v['expires']);
|
|
||||||
$this->assertEquals(30, $v['expires_in']);
|
|
||||||
$this->assertEquals(time()+30, $v['expires']);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken_HTTP_auth()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('updateSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('removeAuthCode')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('getAuthCodeScopes')->andReturn(array('scope_id' => 1));
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
|
|
||||||
$_POST['grant_type'] = 'authorization_code';
|
|
||||||
$_SERVER['PHP_AUTH_USER'] = 1234;
|
|
||||||
$_SERVER['PHP_AUTH_PW'] = 5678;
|
|
||||||
$_POST['redirect_uri'] = 'http://foo/redirect';
|
|
||||||
$_POST['code'] = 'foobar';
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST, array(), array(), $_SERVER);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken();
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
|
|
||||||
$this->assertEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function tearDown() {
|
|
||||||
M::close();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,411 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use \Mockery as m;
|
|
||||||
|
|
||||||
class Client_Credentials_Grant_Test extends PHPUnit_Framework_TestCase
|
|
||||||
{
|
|
||||||
private $client;
|
|
||||||
private $session;
|
|
||||||
private $scope;
|
|
||||||
|
|
||||||
public function setUp()
|
|
||||||
{
|
|
||||||
$this->client = M::mock('League\OAuth2\Server\Storage\ClientInterface');
|
|
||||||
$this->session = M::mock('League\OAuth2\Server\Storage\SessionInterface');
|
|
||||||
$this->scope = M::mock('League\OAuth2\Server\Storage\ScopeInterface');
|
|
||||||
}
|
|
||||||
|
|
||||||
private function returnDefault()
|
|
||||||
{
|
|
||||||
return new League\OAuth2\Server\Authorization($this->client, $this->session, $this->scope);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_clientCredentialsGrant_missingClientId()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\ClientCredentials());
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'client_credentials'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_clientCredentialsGrant_missingClientPassword()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\ClientCredentials());
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'client_credentials',
|
|
||||||
'client_id' => 1234
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 8
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_clientCredentialsGrant_badClient()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(false);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\ClientCredentials());
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'client_credentials',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_clientCredentialsGrant_missingScopes()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\ClientCredentials());
|
|
||||||
$a->requireScopeParam(true);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'client_credentials',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken_clientCredentialsGrant_defaultScope()
|
|
||||||
{
|
|
||||||
$this->scope->shouldReceive('getScope')->andReturn(array(
|
|
||||||
'id' => 1,
|
|
||||||
'key' => 'foo',
|
|
||||||
'name' => 'Foo Name',
|
|
||||||
'description' => 'Foo Name Description'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\ClientCredentials());
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
$a->setDefaultScope('foobar');
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'client_credentials',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'scope' => ''
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken_clientCredentialsGrant_defaultScopeArray()
|
|
||||||
{
|
|
||||||
$this->scope->shouldReceive('getScope')->andReturn(array(
|
|
||||||
'id' => 1,
|
|
||||||
'key' => 'foo',
|
|
||||||
'name' => 'Foo Name',
|
|
||||||
'description' => 'Foo Name Description'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\ClientCredentials());
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
$a->setDefaultScope(array('foobar', 'barfoo'));
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'client_credentials',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'scope' => ''
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 4
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_clientCredentialsGrant_badScope()
|
|
||||||
{
|
|
||||||
$this->scope->shouldReceive('getScope')->andReturn(false);
|
|
||||||
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\ClientCredentials());
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'client_credentials',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'scope' => 'blah'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken_clientCredentialsGrant_goodScope()
|
|
||||||
{
|
|
||||||
$this->scope->shouldReceive('getScope')->andReturn(array(
|
|
||||||
'id' => 1,
|
|
||||||
'key' => 'foo',
|
|
||||||
'name' => 'Foo Name',
|
|
||||||
'description' => 'Foo Name Description'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\ClientCredentials());
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'client_credentials',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'scope' => 'blah'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_issueAccessToken_clientCredentialsGrant_passedInput()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\ClientCredentials());
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'client_credentials',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
|
|
||||||
$this->assertEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_issueAccessToken_clientCredentialsGrant()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\ClientCredentials());
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
|
|
||||||
$_POST['grant_type'] = 'client_credentials';
|
|
||||||
$_POST['client_id'] = 1234;
|
|
||||||
$_POST['client_secret'] = 5678;
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken();
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
|
|
||||||
$this->assertEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_issueAccessToken_clientCredentialsGrant_customExpiresIn()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$grant = new League\OAuth2\Server\Grant\ClientCredentials();
|
|
||||||
$grant->setAccessTokenTTL(30);
|
|
||||||
$a->addGrantType($grant);
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
|
|
||||||
$_POST['grant_type'] = 'client_credentials';
|
|
||||||
$_POST['client_id'] = 1234;
|
|
||||||
$_POST['client_secret'] = 5678;
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken();
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
|
|
||||||
$this->assertNotEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
$this->assertNotEquals(time()+$a->getAccessTokenTTL(), $v['expires']);
|
|
||||||
$this->assertEquals(30, $v['expires_in']);
|
|
||||||
$this->assertEquals(time()+30, $v['expires']);
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_issueAccessToken_clientCredentialsGrant_withRefreshToken()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\ClientCredentials());
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
|
|
||||||
$_POST['grant_type'] = 'client_credentials';
|
|
||||||
$_POST['client_id'] = 1234;
|
|
||||||
$_POST['client_secret'] = 5678;
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken();
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
|
|
||||||
$this->assertEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,613 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use \Mockery as m;
|
|
||||||
|
|
||||||
class Password_Grant_Test extends PHPUnit_Framework_TestCase
|
|
||||||
{
|
|
||||||
private $client;
|
|
||||||
private $session;
|
|
||||||
private $scope;
|
|
||||||
|
|
||||||
public function setUp()
|
|
||||||
{
|
|
||||||
$this->client = M::mock('League\OAuth2\Server\Storage\ClientInterface');
|
|
||||||
$this->session = M::mock('League\OAuth2\Server\Storage\SessionInterface');
|
|
||||||
$this->scope = M::mock('League\OAuth2\Server\Storage\ScopeInterface');
|
|
||||||
}
|
|
||||||
|
|
||||||
private function returnDefault()
|
|
||||||
{
|
|
||||||
return new League\OAuth2\Server\Authorization($this->client, $this->session, $this->scope);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_passwordGrant_missingClientId()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\Password());
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'password'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_passwordGrant_missingClientPassword()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\Password());
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'password',
|
|
||||||
'client_id' => 1234
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 8
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_passwordGrant_badClient()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(false);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\Password());
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'password',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\InvalidGrantTypeException
|
|
||||||
*/
|
|
||||||
function test_issueAccessToken_passwordGrant_invalidCallback()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
|
|
||||||
$testCredentials = null;
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$pgrant = new League\OAuth2\Server\Grant\Password();
|
|
||||||
$pgrant->setVerifyCredentialsCallback($testCredentials);
|
|
||||||
$a->addGrantType($pgrant);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'password',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'username' => 'foo',
|
|
||||||
'password' => 'bar'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
function test_issueAccessToken_passwordGrant_missingUsername()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
|
|
||||||
$testCredentials = function() { return false; };
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$pgrant = new League\OAuth2\Server\Grant\Password();
|
|
||||||
$pgrant->setVerifyCredentialsCallback($testCredentials);
|
|
||||||
$a->addGrantType($pgrant);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'password',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
function test_issueAccessToken_passwordGrant_missingPassword()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
|
|
||||||
$testCredentials = function() { return false; };
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$pgrant = new League\OAuth2\Server\Grant\Password();
|
|
||||||
$pgrant->setVerifyCredentialsCallback($testCredentials);
|
|
||||||
$a->addGrantType($pgrant);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'password',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'username' => 'foo'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
function test_issueAccessToken_passwordGrant_badCredentials()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
|
|
||||||
$testCredentials = function() { return false; };
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$pgrant = new League\OAuth2\Server\Grant\Password();
|
|
||||||
$pgrant->setVerifyCredentialsCallback($testCredentials);
|
|
||||||
$a->addGrantType($pgrant);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'password',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'username' => 'foo',
|
|
||||||
'password' => 'bar'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 4
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_passwordGrant_badScopes()
|
|
||||||
{
|
|
||||||
$this->scope->shouldReceive('getScope')->andReturn(false);
|
|
||||||
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
|
|
||||||
$testCredentials = function() { return 1; };
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$pgrant = new League\OAuth2\Server\Grant\Password();
|
|
||||||
$pgrant->setVerifyCredentialsCallback($testCredentials);
|
|
||||||
$a->addGrantType($pgrant);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'password',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'username' => 'foo',
|
|
||||||
'password' => 'bar',
|
|
||||||
'scope' => 'blah'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_passwordGrant_missingScopes()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
|
|
||||||
$testCredentials = function() { return 1; };
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$pgrant = new League\OAuth2\Server\Grant\Password();
|
|
||||||
$pgrant->setVerifyCredentialsCallback($testCredentials);
|
|
||||||
$a->addGrantType($pgrant);
|
|
||||||
$a->requireScopeParam(true);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'password',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'username' => 'foo',
|
|
||||||
'password' => 'bar'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken_passwordGrant_defaultScope()
|
|
||||||
{
|
|
||||||
$this->scope->shouldReceive('getScope')->andReturn(array(
|
|
||||||
'id' => 1,
|
|
||||||
'scope' => 'foo',
|
|
||||||
'name' => 'Foo Name',
|
|
||||||
'description' => 'Foo Name Description'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
|
|
||||||
$testCredentials = function() { return 1; };
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$pgrant = new League\OAuth2\Server\Grant\Password();
|
|
||||||
$pgrant->setVerifyCredentialsCallback($testCredentials);
|
|
||||||
$a->addGrantType($pgrant);
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
$a->setDefaultScope('foobar');
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'password',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'username' => 'foo',
|
|
||||||
'password' => 'bar',
|
|
||||||
'scope' => ''
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken_passwordGrant_defaultScopeArray()
|
|
||||||
{
|
|
||||||
$this->scope->shouldReceive('getScope')->andReturn(array(
|
|
||||||
'id' => 1,
|
|
||||||
'scope' => 'foo',
|
|
||||||
'name' => 'Foo Name',
|
|
||||||
'description' => 'Foo Name Description'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
|
|
||||||
$testCredentials = function() { return 1; };
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$pgrant = new League\OAuth2\Server\Grant\Password();
|
|
||||||
$pgrant->setVerifyCredentialsCallback($testCredentials);
|
|
||||||
$a->addGrantType($pgrant);
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
$a->setDefaultScope(array('foobar', 'barfoo'));
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'password',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'username' => 'foo',
|
|
||||||
'password' => 'bar',
|
|
||||||
'scope' => ''
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken_passwordGrant_goodScope()
|
|
||||||
{
|
|
||||||
$this->scope->shouldReceive('getScope')->andReturn(array(
|
|
||||||
'id' => 1,
|
|
||||||
'scope' => 'foo',
|
|
||||||
'name' => 'Foo Name',
|
|
||||||
'description' => 'Foo Name Description'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
|
|
||||||
$testCredentials = function() { return 1; };
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$pgrant = new League\OAuth2\Server\Grant\Password();
|
|
||||||
$pgrant->setVerifyCredentialsCallback($testCredentials);
|
|
||||||
$a->addGrantType($pgrant);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'password',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'username' => 'foo',
|
|
||||||
'password' => 'bar',
|
|
||||||
'scope' => 'blah'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_issueAccessToken_passwordGrant_passedInput()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
|
|
||||||
$testCredentials = function() { return 1; };
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$pgrant = new League\OAuth2\Server\Grant\Password();
|
|
||||||
$pgrant->setVerifyCredentialsCallback($testCredentials);
|
|
||||||
$a->addGrantType($pgrant);
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'password',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'username' => 'foo',
|
|
||||||
'password' => 'bar'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
|
|
||||||
$this->assertEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_issueAccessToken_passwordGrant()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
|
|
||||||
$testCredentials = function() { return 1; };
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$pgrant = new League\OAuth2\Server\Grant\Password();
|
|
||||||
$pgrant->setVerifyCredentialsCallback($testCredentials);
|
|
||||||
$a->addGrantType($pgrant);
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
|
|
||||||
$_POST['grant_type'] = 'password';
|
|
||||||
$_POST['client_id'] = 1234;
|
|
||||||
$_POST['client_secret'] = 5678;
|
|
||||||
$_POST['username'] = 'foo';
|
|
||||||
$_POST['password'] = 'bar';
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken();
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
|
|
||||||
$this->assertEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_issueAccessToken_passwordGrant_customExpiresIn()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
|
|
||||||
$testCredentials = function() { return 1; };
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$pgrant = new League\OAuth2\Server\Grant\Password();
|
|
||||||
$pgrant->setVerifyCredentialsCallback($testCredentials);
|
|
||||||
$pgrant->setAccessTokenTTL(30);
|
|
||||||
$a->addGrantType($pgrant);
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
|
|
||||||
$_POST['grant_type'] = 'password';
|
|
||||||
$_POST['client_id'] = 1234;
|
|
||||||
$_POST['client_secret'] = 5678;
|
|
||||||
$_POST['username'] = 'foo';
|
|
||||||
$_POST['password'] = 'bar';
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken();
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
|
|
||||||
$this->assertNotEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
$this->assertNotEquals(time()+$a->getAccessTokenTTL(), $v['expires']);
|
|
||||||
$this->assertEquals(30, $v['expires_in']);
|
|
||||||
$this->assertEquals(time()+30, $v['expires']);
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_issueAccessToken_passwordGrant_withRefreshToken()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->client->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('createSession')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('deleteSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateRefreshToken')->andReturn(null);
|
|
||||||
|
|
||||||
$testCredentials = function() { return 1; };
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$pgrant = new League\OAuth2\Server\Grant\Password();
|
|
||||||
$pgrant->setVerifyCredentialsCallback($testCredentials);
|
|
||||||
$a->addGrantType($pgrant);
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\RefreshToken());
|
|
||||||
$a->requireScopeParam(false);
|
|
||||||
|
|
||||||
$_POST['grant_type'] = 'password';
|
|
||||||
$_POST['client_id'] = 1234;
|
|
||||||
$_POST['client_secret'] = 5678;
|
|
||||||
$_POST['username'] = 'foo';
|
|
||||||
$_POST['password'] = 'bar';
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken();
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
$this->assertArrayHasKey('refresh_token', $v);
|
|
||||||
|
|
||||||
$this->assertEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,421 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use \Mockery as m;
|
|
||||||
|
|
||||||
class Refresh_Token_test extends PHPUnit_Framework_TestCase
|
|
||||||
{
|
|
||||||
private $client;
|
|
||||||
private $session;
|
|
||||||
private $scope;
|
|
||||||
|
|
||||||
public function setUp()
|
|
||||||
{
|
|
||||||
$this->client = M::mock('League\OAuth2\Server\Storage\ClientInterface');
|
|
||||||
$this->session = M::mock('League\OAuth2\Server\Storage\SessionInterface');
|
|
||||||
$this->scope = M::mock('League\OAuth2\Server\Storage\ScopeInterface');
|
|
||||||
}
|
|
||||||
|
|
||||||
private function returnDefault()
|
|
||||||
{
|
|
||||||
return new League\OAuth2\Server\Authorization($this->client, $this->session, $this->scope);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_setRefreshTokenTTL()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$rt = new League\OAuth2\Server\Grant\RefreshToken();
|
|
||||||
$rt->setRefreshTokenTTL(30);
|
|
||||||
$this->assertEquals(30, $rt->getRefreshTokenTTL());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken_with_refresh_token()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('updateSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('removeAuthCode')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('getAuthCodeScopes')->andReturn(array('scope_id' => 1));
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\AuthCode());
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\RefreshToken());
|
|
||||||
|
|
||||||
$_POST['grant_type'] = 'authorization_code';
|
|
||||||
$_POST['client_id'] = 1234;
|
|
||||||
$_POST['client_secret'] = 5678;
|
|
||||||
$_POST['redirect_uri'] = 'http://foo/redirect';
|
|
||||||
$_POST['code'] = 'foobar';
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken();
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
$this->assertArrayHasKey('refresh_token', $v);
|
|
||||||
|
|
||||||
$this->assertEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_refreshTokenGrant_missingClientId()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\RefreshToken());
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'refresh_token'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_refreshTokenGrant_missingClientSecret()
|
|
||||||
{
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\RefreshToken());
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'refresh_token',
|
|
||||||
'client_id' => 1234
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 8
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_refreshTokenGrant_badClient()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(false);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\RefreshToken());
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'refresh_token',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_refreshTokenGrant_missingRefreshToken()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array());
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\RefreshToken());
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'refresh_token',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_refreshTokenGrant_badRefreshToken()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array());
|
|
||||||
$this->session->shouldReceive('validateRefreshToken')->andReturn(false);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\RefreshToken());
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'refresh_token',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'refresh_token' => 'abcdef'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken_refreshTokenGrant_passedInput()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('updateSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('removeRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('getAccessToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('getScopes')->andReturn(array());
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\RefreshToken());
|
|
||||||
|
|
||||||
$_POST['grant_type'] = 'refresh_token';
|
|
||||||
$_POST['client_id'] = 1234;
|
|
||||||
$_POST['client_secret'] = 5678;
|
|
||||||
$_POST['refresh_token'] = 'abcdef';
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), $_POST);
|
|
||||||
$a->setRequest($request);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken();
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
|
|
||||||
$this->assertEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken_refreshTokenGrant()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('updateSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('getAccessToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('getScopes')->andReturn(array('id' => 1));
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('removeRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$a->addGrantType(new League\OAuth2\Server\Grant\RefreshToken());
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'refresh_token',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'refresh_token' => 'abcdef',
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
|
|
||||||
$this->assertEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken_refreshTokenGrant_rotateTokens()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('updateSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('getAccessToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('getScopes')->andReturn(array('id' => 1));
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('removeRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
|
|
||||||
$rt = new League\OAuth2\Server\Grant\RefreshToken();
|
|
||||||
$rt->rotateRefreshTokens(true);
|
|
||||||
$a->addGrantType($rt);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'refresh_token',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'refresh_token' => 'abcdef',
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
$this->assertArrayHasKey('refresh_token', $v);
|
|
||||||
|
|
||||||
$this->assertEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken_refreshTokenGrant_customExpiresIn()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('updateSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('getAccessToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('getScopes')->andReturn(array('id' => 1));
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('removeRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$grant = new League\OAuth2\Server\Grant\RefreshToken();
|
|
||||||
$grant->setAccessTokenTTL(30);
|
|
||||||
$a->addGrantType($grant);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'refresh_token',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'refresh_token' => 'abcdef',
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
|
|
||||||
$this->assertNotEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
$this->assertNotEquals(time()+$a->getAccessTokenTTL(), $v['expires']);
|
|
||||||
$this->assertEquals(30, $v['expires_in']);
|
|
||||||
$this->assertEquals(time()+30, $v['expires']);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_issueAccessToken_refreshTokenGrant_newScopes()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('updateSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('getAccessToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('getScopes')->andReturn(array(array('id' => 1, 'scope' => 'foo'), array('id' => 2, 'scope' => 'bar')));
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('removeRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
$this->scope->shouldReceive('getScope')->andReturn(array('id' => 1, 'scope' => 'foo'));
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$grant = new League\OAuth2\Server\Grant\RefreshToken();
|
|
||||||
$grant->setAccessTokenTTL(30);
|
|
||||||
$grant->rotateRefreshTokens(true);
|
|
||||||
$a->addGrantType($grant);
|
|
||||||
|
|
||||||
$v = $a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'refresh_token',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'refresh_token' => 'abcdef',
|
|
||||||
'scope' => 'foo'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->assertArrayHasKey('access_token', $v);
|
|
||||||
$this->assertArrayHasKey('token_type', $v);
|
|
||||||
$this->assertArrayHasKey('expires', $v);
|
|
||||||
$this->assertArrayHasKey('expires_in', $v);
|
|
||||||
$this->assertArrayHasKey('refresh_token', $v);
|
|
||||||
|
|
||||||
$this->assertNotEquals($a->getAccessTokenTTL(), $v['expires_in']);
|
|
||||||
$this->assertNotEquals(time()+$a->getAccessTokenTTL(), $v['expires']);
|
|
||||||
$this->assertEquals(30, $v['expires_in']);
|
|
||||||
$this->assertEquals(time()+30, $v['expires']);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\ClientException
|
|
||||||
* @expectedExceptionCode 0
|
|
||||||
*/
|
|
||||||
public function test_issueAccessToken_refreshTokenGrant_badNewScopes()
|
|
||||||
{
|
|
||||||
$this->client->shouldReceive('getClient')->andReturn(array(
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'redirect_uri' => 'http://foo/redirect',
|
|
||||||
'name' => 'Example Client'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->session->shouldReceive('validateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('validateAuthCode')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('updateSession')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('updateRefreshToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('getAccessToken')->andReturn(null);
|
|
||||||
$this->session->shouldReceive('getScopes')->andReturn(array(array('id' => 1, 'scope' => 'foo'), array('id' => 2, 'scope' => 'bar')));
|
|
||||||
$this->session->shouldReceive('associateAccessToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('removeRefreshToken')->andReturn(1);
|
|
||||||
$this->session->shouldReceive('associateScope')->andReturn(null);
|
|
||||||
$this->scope->shouldReceive('getScope')->andReturn(array('id' => 1, 'scope' => 'foo'));
|
|
||||||
|
|
||||||
$a = $this->returnDefault();
|
|
||||||
$grant = new League\OAuth2\Server\Grant\RefreshToken();
|
|
||||||
$grant->setAccessTokenTTL(30);
|
|
||||||
$grant->rotateRefreshTokens(true);
|
|
||||||
$a->addGrantType($grant);
|
|
||||||
|
|
||||||
$a->issueAccessToken(array(
|
|
||||||
'grant_type' => 'refresh_token',
|
|
||||||
'client_id' => 1234,
|
|
||||||
'client_secret' => 5678,
|
|
||||||
'refresh_token' => 'abcdef',
|
|
||||||
'scope' => 'foobar'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,226 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use \Mockery as m;
|
|
||||||
|
|
||||||
class Resource_Server_test extends PHPUnit_Framework_TestCase
|
|
||||||
{
|
|
||||||
private $session;
|
|
||||||
|
|
||||||
public function setUp()
|
|
||||||
{
|
|
||||||
$this->session = M::mock('League\OAuth2\Server\Storage\SessionInterface');
|
|
||||||
}
|
|
||||||
|
|
||||||
private function returnDefault()
|
|
||||||
{
|
|
||||||
return new League\OAuth2\Server\Resource($this->session);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_setRequest()
|
|
||||||
{
|
|
||||||
$s = $this->returnDefault();
|
|
||||||
$request = new League\OAuth2\Server\Util\Request();
|
|
||||||
$s->setRequest($request);
|
|
||||||
|
|
||||||
$reflector = new ReflectionClass($s);
|
|
||||||
$requestProperty = $reflector->getProperty('request');
|
|
||||||
$requestProperty->setAccessible(true);
|
|
||||||
$v = $requestProperty->getValue($s);
|
|
||||||
|
|
||||||
$this->assertTrue($v instanceof League\OAuth2\Server\Util\RequestInterface);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_getRequest()
|
|
||||||
{
|
|
||||||
$s = $this->returnDefault();
|
|
||||||
$request = new League\OAuth2\Server\Util\Request();
|
|
||||||
$s->setRequest($request);
|
|
||||||
$v = $s->getRequest();
|
|
||||||
|
|
||||||
$this->assertTrue($v instanceof League\OAuth2\Server\Util\RequestInterface);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_getTokenKey()
|
|
||||||
{
|
|
||||||
$s = $this->returnDefault();
|
|
||||||
$this->assertEquals('access_token', $s->getTokenKey());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_setTokenKey()
|
|
||||||
{
|
|
||||||
$s = $this->returnDefault();
|
|
||||||
$s->setTokenKey('oauth_token');
|
|
||||||
|
|
||||||
$reflector = new ReflectionClass($s);
|
|
||||||
$requestProperty = $reflector->getProperty('tokenKey');
|
|
||||||
$requestProperty->setAccessible(true);
|
|
||||||
$v = $requestProperty->getValue($s);
|
|
||||||
|
|
||||||
$this->assertEquals('oauth_token', $v);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_getScopes()
|
|
||||||
{
|
|
||||||
$s = $this->returnDefault();
|
|
||||||
$this->assertEquals(array(), $s->getScopes());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\InvalidAccessTokenException
|
|
||||||
*/
|
|
||||||
public function test_determineAccessToken_missingToken()
|
|
||||||
{
|
|
||||||
$_SERVER['HTTP_AUTHORIZATION'] = 'Bearer';
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), array(), array(), array(), $_SERVER);
|
|
||||||
|
|
||||||
$s = $this->returnDefault();
|
|
||||||
$s->setRequest($request);
|
|
||||||
|
|
||||||
$reflector = new ReflectionClass($s);
|
|
||||||
$method = $reflector->getMethod('determineAccessToken');
|
|
||||||
$method->setAccessible(true);
|
|
||||||
|
|
||||||
$method->invoke($s);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\InvalidAccessTokenException
|
|
||||||
*/
|
|
||||||
public function test_determineAccessToken_brokenCurlRequest()
|
|
||||||
{
|
|
||||||
$_SERVER['HTTP_AUTHORIZATION'] = 'Bearer, Bearer abcdef';
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(array(), array(), array(), array(), $_SERVER);
|
|
||||||
|
|
||||||
$s = $this->returnDefault();
|
|
||||||
$s->setRequest($request);
|
|
||||||
|
|
||||||
$reflector = new ReflectionClass($s);
|
|
||||||
$method = $reflector->getMethod('determineAccessToken');
|
|
||||||
$method->setAccessible(true);
|
|
||||||
|
|
||||||
$method->invoke($s);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_determineAccessToken_fromHeader()
|
|
||||||
{
|
|
||||||
$request = new League\OAuth2\Server\Util\Request();
|
|
||||||
|
|
||||||
$requestReflector = new ReflectionClass($request);
|
|
||||||
$param = $requestReflector->getProperty('headers');
|
|
||||||
$param->setAccessible(true);
|
|
||||||
$param->setValue($request, array(
|
|
||||||
'Authorization' => 'Bearer abcdef'
|
|
||||||
));
|
|
||||||
$s = $this->returnDefault();
|
|
||||||
$s->setRequest($request);
|
|
||||||
|
|
||||||
$reflector = new ReflectionClass($s);
|
|
||||||
|
|
||||||
$method = $reflector->getMethod('determineAccessToken');
|
|
||||||
$method->setAccessible(true);
|
|
||||||
|
|
||||||
$result = $method->invoke($s);
|
|
||||||
|
|
||||||
$this->assertEquals('abcdef', $result);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_determineAccessToken_fromBrokenCurlHeader()
|
|
||||||
{
|
|
||||||
$request = new League\OAuth2\Server\Util\Request();
|
|
||||||
|
|
||||||
$requestReflector = new ReflectionClass($request);
|
|
||||||
$param = $requestReflector->getProperty('headers');
|
|
||||||
$param->setAccessible(true);
|
|
||||||
$param->setValue($request, array(
|
|
||||||
'Authorization' => 'Bearer abcdef, Bearer abcdef'
|
|
||||||
));
|
|
||||||
$s = $this->returnDefault();
|
|
||||||
$s->setRequest($request);
|
|
||||||
|
|
||||||
$reflector = new ReflectionClass($s);
|
|
||||||
|
|
||||||
$method = $reflector->getMethod('determineAccessToken');
|
|
||||||
$method->setAccessible(true);
|
|
||||||
|
|
||||||
$result = $method->invoke($s);
|
|
||||||
|
|
||||||
$this->assertEquals('abcdef', $result);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_determineAccessToken_fromMethod()
|
|
||||||
{
|
|
||||||
$s = $this->returnDefault();
|
|
||||||
|
|
||||||
$_GET[$s->getTokenKey()] = 'abcdef';
|
|
||||||
$_SERVER['REQUEST_METHOD'] = 'get';
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request($_GET, array(), array(), array(), $_SERVER);
|
|
||||||
$s->setRequest($request);
|
|
||||||
|
|
||||||
$reflector = new ReflectionClass($s);
|
|
||||||
$method = $reflector->getMethod('determineAccessToken');
|
|
||||||
$method->setAccessible(true);
|
|
||||||
|
|
||||||
$result = $method->invoke($s);
|
|
||||||
|
|
||||||
$this->assertEquals('abcdef', $result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException League\OAuth2\Server\Exception\InvalidAccessTokenException
|
|
||||||
*/
|
|
||||||
public function test_isValid_notValid()
|
|
||||||
{
|
|
||||||
$this->session->shouldReceive('validateAccessToken')->andReturn(false);
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request();
|
|
||||||
$requestReflector = new ReflectionClass($request);
|
|
||||||
$param = $requestReflector->getProperty('headers');
|
|
||||||
$param->setAccessible(true);
|
|
||||||
$param->setValue($request, array(
|
|
||||||
'Authorization' => 'Bearer abcdef'
|
|
||||||
));
|
|
||||||
$s = $this->returnDefault();
|
|
||||||
$s->setRequest($request);
|
|
||||||
|
|
||||||
$s->isValid();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_isValid_valid()
|
|
||||||
{
|
|
||||||
$this->session->shouldReceive('validateAccessToken')->andReturn(array(
|
|
||||||
'session_id' => 1,
|
|
||||||
'owner_type' => 'user',
|
|
||||||
'owner_id' => 123,
|
|
||||||
'client_id' => 'testapp'
|
|
||||||
));
|
|
||||||
|
|
||||||
$this->session->shouldReceive('getScopes')->andReturn(array(
|
|
||||||
array('scope' => 'foo'),
|
|
||||||
array('scope' => 'bar')
|
|
||||||
));
|
|
||||||
|
|
||||||
$request = new League\OAuth2\Server\Util\Request();
|
|
||||||
$requestReflector = new ReflectionClass($request);
|
|
||||||
$param = $requestReflector->getProperty('headers');
|
|
||||||
$param->setAccessible(true);
|
|
||||||
$param->setValue($request, array(
|
|
||||||
'Authorization' => 'Bearer abcdef'
|
|
||||||
));
|
|
||||||
|
|
||||||
$s = $this->returnDefault();
|
|
||||||
$s->setRequest($request);
|
|
||||||
|
|
||||||
$this->assertTrue($s->isValid());
|
|
||||||
$this->assertEquals(123, $s->getOwnerId());
|
|
||||||
$this->assertEquals('user', $s->getOwnerType());
|
|
||||||
$this->assertEquals('abcdef', $s->getAccessToken());
|
|
||||||
$this->assertEquals('testapp', $s->getClientId());
|
|
||||||
$this->assertTrue($s->hasScope('foo'));
|
|
||||||
$this->assertTrue($s->hasScope('bar'));
|
|
||||||
$this->assertTrue($s->hasScope(array('foo', 'bar')));
|
|
||||||
$this->assertFalse($s->hasScope(array('foobar')));
|
|
||||||
$this->assertFalse($s->hasScope('foobar'));
|
|
||||||
$this->assertFalse($s->hasScope(new StdClass));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,87 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
class Request_test extends PHPUnit_Framework_TestCase
|
|
||||||
{
|
|
||||||
private $request;
|
|
||||||
|
|
||||||
function setUp()
|
|
||||||
{
|
|
||||||
$this->request = new League\OAuth2\Server\Util\Request(
|
|
||||||
array('foo' => 'bar'),
|
|
||||||
array('foo' => 'bar'),
|
|
||||||
array('foo' => 'bar'),
|
|
||||||
array('foo' => 'bar'),
|
|
||||||
array('HTTP_HOST' => 'foobar.com')
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_buildFromIndex()
|
|
||||||
{
|
|
||||||
$r = new League\OAuth2\Server\Util\Request();
|
|
||||||
$r->buildFromGlobals();
|
|
||||||
|
|
||||||
$this->assertTrue($r instanceof League\OAuth2\Server\Util\Request);
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_get()
|
|
||||||
{
|
|
||||||
$this->assertEquals('bar', $this->request->get('foo'));
|
|
||||||
$this->assertEquals(array('foo' => 'bar'), $this->request->get());
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_post()
|
|
||||||
{
|
|
||||||
$this->assertEquals('bar', $this->request->post('foo'));
|
|
||||||
$this->assertEquals(array('foo' => 'bar'), $this->request->post());
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_file()
|
|
||||||
{
|
|
||||||
$this->assertEquals('bar', $this->request->file('foo'));
|
|
||||||
$this->assertEquals(array('foo' => 'bar'), $this->request->file());
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_cookie()
|
|
||||||
{
|
|
||||||
$this->assertEquals('bar', $this->request->cookie('foo'));
|
|
||||||
$this->assertEquals(array('foo' => 'bar'), $this->request->cookie());
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_server()
|
|
||||||
{
|
|
||||||
$this->assertEquals('foobar.com', $this->request->server('HTTP_HOST'));
|
|
||||||
$this->assertEquals(array('HTTP_HOST' => 'foobar.com'), $this->request->server());
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_header()
|
|
||||||
{
|
|
||||||
$this->assertEquals('foobar.com', $this->request->header('Host'));
|
|
||||||
$this->assertEquals(array('Host' => 'foobar.com'), $this->request->header());
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_canonical_header()
|
|
||||||
{
|
|
||||||
$request = new League\OAuth2\Server\Util\Request(
|
|
||||||
array('foo' => 'bar'),
|
|
||||||
array('foo' => 'bar'),
|
|
||||||
array('foo' => 'bar'),
|
|
||||||
array('foo' => 'bar'),
|
|
||||||
array('HTTP_HOST' => 'foobar.com'),
|
|
||||||
array('authorization' => 'Bearer ajdfkljadslfjasdlkj')
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->assertEquals('Bearer ajdfkljadslfjasdlkj', $request->header('Authorization'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @expectedException InvalidArgumentException
|
|
||||||
*/
|
|
||||||
function test_unknownProperty()
|
|
||||||
{
|
|
||||||
$reflector = new ReflectionClass($this->request);
|
|
||||||
$method = $reflector->getMethod('getPropertyValue');
|
|
||||||
$method->setAccessible(true);
|
|
||||||
|
|
||||||
$method->invoke($this->request, 'blah');
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user