mirror of
				https://github.com/elyby/oauth2-server.git
				synced 2025-05-31 14:12:07 +05:30 
			
		
		
		
	Updated AbstractGrantTest
This commit is contained in:
		@@ -10,7 +10,6 @@ use League\OAuth2\Server\Entities\Interfaces\AuthCodeEntityInterface;
 | 
			
		||||
use League\OAuth2\Server\Entities\Interfaces\RefreshTokenEntityInterface;
 | 
			
		||||
use League\OAuth2\Server\Entities\ScopeEntity;
 | 
			
		||||
use League\OAuth2\Server\Grant\AbstractGrant;
 | 
			
		||||
use League\OAuth2\Server\Repositories\AccessTokenRepositoryInterface;
 | 
			
		||||
use League\OAuth2\Server\Repositories\ClientRepositoryInterface;
 | 
			
		||||
use League\OAuth2\Server\Repositories\ScopeRepositoryInterface;
 | 
			
		||||
use Zend\Diactoros\ServerRequest;
 | 
			
		||||
@@ -19,24 +18,45 @@ class AbstractGrantTest extends \PHPUnit_Framework_TestCase
 | 
			
		||||
{
 | 
			
		||||
    public function testGetSet()
 | 
			
		||||
    {
 | 
			
		||||
        $clientRepositoryMock = $this->getMock(ClientRepositoryInterface::class);
 | 
			
		||||
        $accessTokenRepositoryMock = $this->getMock(AccessTokenRepositoryInterface::class);
 | 
			
		||||
        $scopeRepositoryMock = $this->getMock(ScopeRepositoryInterface::class);
 | 
			
		||||
        /** @var AbstractGrant $grantMock */
 | 
			
		||||
        $grantMock = $this->getMockForAbstractClass(AbstractGrant::class);
 | 
			
		||||
        $grantMock->setPathToPrivateKey('./private.key');
 | 
			
		||||
        $grantMock->setPathToPublicKey('./public.key');
 | 
			
		||||
        $grantMock->setEmitter(new Emitter());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function testValidateClientPublic()
 | 
			
		||||
    {
 | 
			
		||||
        $client = new ClientEntity();
 | 
			
		||||
 | 
			
		||||
        $clientRepositoryMock = $this->getMockBuilder(ClientRepositoryInterface::class)->getMock();
 | 
			
		||||
        $clientRepositoryMock->method('getClientEntity')->willReturn($client);
 | 
			
		||||
 | 
			
		||||
        /** @var AbstractGrant $grantMock */
 | 
			
		||||
        $grantMock = $this->getMockForAbstractClass(AbstractGrant::class);
 | 
			
		||||
        $grantMock->setClientRepository($clientRepositoryMock);
 | 
			
		||||
        $grantMock->setAccessTokenRepository($accessTokenRepositoryMock);
 | 
			
		||||
        $grantMock->setScopeRepository($scopeRepositoryMock);
 | 
			
		||||
        $grantMock->setPathToPrivateKey('./private.key');
 | 
			
		||||
        $grantMock->setPathToPublicKey('./public.key');
 | 
			
		||||
        $grantMock->setEmitter(new Emitter());
 | 
			
		||||
        $grantMock->setRefreshTokenTTL(new \DateInterval('PT1H'));
 | 
			
		||||
 | 
			
		||||
        $abstractGrantReflection = new \ReflectionClass($grantMock);
 | 
			
		||||
 | 
			
		||||
        $serverRequest = new ServerRequest();
 | 
			
		||||
        $serverRequest = $serverRequest->withParsedBody(
 | 
			
		||||
            [
 | 
			
		||||
                'client_id' => 'foo',
 | 
			
		||||
            ]
 | 
			
		||||
        );
 | 
			
		||||
        $validateClientMethod = $abstractGrantReflection->getMethod('validateClient');
 | 
			
		||||
        $validateClientMethod->setAccessible(true);
 | 
			
		||||
 | 
			
		||||
        $result = $validateClientMethod->invoke($grantMock, $serverRequest, true, true);
 | 
			
		||||
        $this->assertEquals($client, $result);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function testValidateClient()
 | 
			
		||||
    public function testValidateClientConfidential()
 | 
			
		||||
    {
 | 
			
		||||
        $client = new ClientEntity();
 | 
			
		||||
        $client->setSecret('bar');
 | 
			
		||||
        $client->setRedirectUri('http://foo/bar');
 | 
			
		||||
 | 
			
		||||
        $clientRepositoryMock = $this->getMockBuilder(ClientRepositoryInterface::class)->getMock();
 | 
			
		||||
        $clientRepositoryMock->method('getClientEntity')->willReturn($client);
 | 
			
		||||
 | 
			
		||||
@@ -89,6 +109,7 @@ class AbstractGrantTest extends \PHPUnit_Framework_TestCase
 | 
			
		||||
    public function testValidateClientMissingClientSecret()
 | 
			
		||||
    {
 | 
			
		||||
        $client = new ClientEntity();
 | 
			
		||||
        $client->setSecret('bar');
 | 
			
		||||
        $clientRepositoryMock = $this->getMockBuilder(ClientRepositoryInterface::class)->getMock();
 | 
			
		||||
        $clientRepositoryMock->method('getClientEntity')->willReturn($client);
 | 
			
		||||
 | 
			
		||||
@@ -112,11 +133,67 @@ class AbstractGrantTest extends \PHPUnit_Framework_TestCase
 | 
			
		||||
    /**
 | 
			
		||||
     * @expectedException \League\OAuth2\Server\Exception\OAuthServerException
 | 
			
		||||
     */
 | 
			
		||||
    public function testValidateClientMissingRedirectUri()
 | 
			
		||||
    public function testValidateClientInvalidClientSecret()
 | 
			
		||||
    {
 | 
			
		||||
        $client = new ClientEntity();
 | 
			
		||||
        $client->setSecret('bar');
 | 
			
		||||
        $clientRepositoryMock = $this->getMockBuilder(ClientRepositoryInterface::class)->getMock();
 | 
			
		||||
        $clientRepositoryMock->method('getClientEntity')->willReturn($client);
 | 
			
		||||
 | 
			
		||||
        /** @var AbstractGrant $grantMock */
 | 
			
		||||
        $grantMock = $this->getMockForAbstractClass(AbstractGrant::class);
 | 
			
		||||
        $grantMock->setClientRepository($clientRepositoryMock);
 | 
			
		||||
 | 
			
		||||
        $abstractGrantReflection = new \ReflectionClass($grantMock);
 | 
			
		||||
 | 
			
		||||
        $serverRequest = new ServerRequest();
 | 
			
		||||
        $serverRequest = $serverRequest->withParsedBody([
 | 
			
		||||
            'client_id' => 'foo',
 | 
			
		||||
            'client_secret' => 'foo',
 | 
			
		||||
        ]);
 | 
			
		||||
 | 
			
		||||
        $validateClientMethod = $abstractGrantReflection->getMethod('validateClient');
 | 
			
		||||
        $validateClientMethod->setAccessible(true);
 | 
			
		||||
 | 
			
		||||
        $validateClientMethod->invoke($grantMock, $serverRequest, true, true);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @expectedException \League\OAuth2\Server\Exception\OAuthServerException
 | 
			
		||||
     */
 | 
			
		||||
    public function testValidateClientInvalidRedirectUri()
 | 
			
		||||
    {
 | 
			
		||||
        $client = new ClientEntity();
 | 
			
		||||
        $client->setRedirectUri('http://foo/bar');
 | 
			
		||||
        $clientRepositoryMock = $this->getMockBuilder(ClientRepositoryInterface::class)->getMock();
 | 
			
		||||
        $clientRepositoryMock->method('getClientEntity')->willReturn($client);
 | 
			
		||||
 | 
			
		||||
        /** @var AbstractGrant $grantMock */
 | 
			
		||||
        $grantMock = $this->getMockForAbstractClass(AbstractGrant::class);
 | 
			
		||||
        $grantMock->setClientRepository($clientRepositoryMock);
 | 
			
		||||
 | 
			
		||||
        $abstractGrantReflection = new \ReflectionClass($grantMock);
 | 
			
		||||
 | 
			
		||||
        $serverRequest = new ServerRequest();
 | 
			
		||||
        $serverRequest = $serverRequest->withParsedBody([
 | 
			
		||||
            'client_id'     => 'foo',
 | 
			
		||||
            'redirect_uri'  =>  'http://bar/foo'
 | 
			
		||||
        ]);
 | 
			
		||||
 | 
			
		||||
        $validateClientMethod = $abstractGrantReflection->getMethod('validateClient');
 | 
			
		||||
        $validateClientMethod->setAccessible(true);
 | 
			
		||||
 | 
			
		||||
        $validateClientMethod->invoke($grantMock, $serverRequest, true, true);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @expectedException \League\OAuth2\Server\Exception\OAuthServerException
 | 
			
		||||
     */
 | 
			
		||||
    public function testValidateClientBadClient()
 | 
			
		||||
    {
 | 
			
		||||
        $client = new ClientEntity();
 | 
			
		||||
        $clientRepositoryMock = $this->getMockBuilder(ClientRepositoryInterface::class)->getMock();
 | 
			
		||||
        $clientRepositoryMock->method('getClientEntity')->willReturn($client);
 | 
			
		||||
        $clientRepositoryMock->method('getClientEntity')->willReturn(null);
 | 
			
		||||
 | 
			
		||||
        /** @var AbstractGrant $grantMock */
 | 
			
		||||
        $grantMock = $this->getMockForAbstractClass(AbstractGrant::class);
 | 
			
		||||
@@ -133,7 +210,7 @@ class AbstractGrantTest extends \PHPUnit_Framework_TestCase
 | 
			
		||||
        $validateClientMethod = $abstractGrantReflection->getMethod('validateClient');
 | 
			
		||||
        $validateClientMethod->setAccessible(true);
 | 
			
		||||
 | 
			
		||||
        $validateClientMethod->invoke($grantMock, $serverRequest, true, true);
 | 
			
		||||
        $validateClientMethod->invoke($grantMock, $serverRequest, true);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function testCanRespondToRequest()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user