From a2db7e1929765405ad974661bcc8ff40057f7f97 Mon Sep 17 00:00:00 2001 From: Alex Bilbie Date: Thu, 16 Jan 2014 16:50:03 +0000 Subject: [PATCH] Removed old tests --- tests/authorization/AuthCodeGrantTest.php | 428 ------------ tests/authorization/AuthServerTest.php | 513 --------------- .../ClientCredentialsGrantTest.php | 411 ------------ tests/authorization/PasswordGrantTest.php | 613 ------------------ tests/authorization/RefreshTokenTest.php | 421 ------------ tests/resource/ResourceServerTest.php | 226 ------- tests/util/RequestTest.php | 87 --- 7 files changed, 2699 deletions(-) delete mode 100644 tests/authorization/AuthCodeGrantTest.php delete mode 100644 tests/authorization/AuthServerTest.php delete mode 100644 tests/authorization/ClientCredentialsGrantTest.php delete mode 100644 tests/authorization/PasswordGrantTest.php delete mode 100644 tests/authorization/RefreshTokenTest.php delete mode 100644 tests/resource/ResourceServerTest.php delete mode 100644 tests/util/RequestTest.php diff --git a/tests/authorization/AuthCodeGrantTest.php b/tests/authorization/AuthCodeGrantTest.php deleted file mode 100644 index fadf90f2..00000000 --- a/tests/authorization/AuthCodeGrantTest.php +++ /dev/null @@ -1,428 +0,0 @@ -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)); - } - - -} \ No newline at end of file diff --git a/tests/authorization/AuthServerTest.php b/tests/authorization/AuthServerTest.php deleted file mode 100644 index 2646fc75..00000000 --- a/tests/authorization/AuthServerTest.php +++ /dev/null @@ -1,513 +0,0 @@ -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(); - } -} \ No newline at end of file diff --git a/tests/authorization/ClientCredentialsGrantTest.php b/tests/authorization/ClientCredentialsGrantTest.php deleted file mode 100644 index 0883a825..00000000 --- a/tests/authorization/ClientCredentialsGrantTest.php +++ /dev/null @@ -1,411 +0,0 @@ -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']); - } - -} \ No newline at end of file diff --git a/tests/authorization/PasswordGrantTest.php b/tests/authorization/PasswordGrantTest.php deleted file mode 100644 index fcd45c7a..00000000 --- a/tests/authorization/PasswordGrantTest.php +++ /dev/null @@ -1,613 +0,0 @@ -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']); - } -} \ No newline at end of file diff --git a/tests/authorization/RefreshTokenTest.php b/tests/authorization/RefreshTokenTest.php deleted file mode 100644 index 572b50cb..00000000 --- a/tests/authorization/RefreshTokenTest.php +++ /dev/null @@ -1,421 +0,0 @@ -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' - )); - } -} \ No newline at end of file diff --git a/tests/resource/ResourceServerTest.php b/tests/resource/ResourceServerTest.php deleted file mode 100644 index 04f988ca..00000000 --- a/tests/resource/ResourceServerTest.php +++ /dev/null @@ -1,226 +0,0 @@ -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)); - } -} \ No newline at end of file diff --git a/tests/util/RequestTest.php b/tests/util/RequestTest.php deleted file mode 100644 index 205c70ad..00000000 --- a/tests/util/RequestTest.php +++ /dev/null @@ -1,87 +0,0 @@ -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'); - } -} \ No newline at end of file