mirror of
				https://github.com/elyby/oauth2-server.git
				synced 2025-05-31 14:12:07 +05:30 
			
		
		
		
	Updated server test
This commit is contained in:
		@@ -3,13 +3,21 @@
 | 
			
		||||
namespace LeagueTests;
 | 
			
		||||
 | 
			
		||||
use League\OAuth2\Server\Entities\ClientEntity;
 | 
			
		||||
use League\OAuth2\Server\Exception\OAuthServerException;
 | 
			
		||||
use League\OAuth2\Server\Grant\AuthCodeGrant;
 | 
			
		||||
use League\OAuth2\Server\Grant\ClientCredentialsGrant;
 | 
			
		||||
use League\OAuth2\Server\Repositories\AccessTokenRepositoryInterface;
 | 
			
		||||
use League\OAuth2\Server\Repositories\AuthCodeRepositoryInterface;
 | 
			
		||||
use League\OAuth2\Server\Repositories\ClientRepositoryInterface;
 | 
			
		||||
use League\OAuth2\Server\Repositories\RefreshTokenRepositoryInterface;
 | 
			
		||||
use League\OAuth2\Server\Repositories\ScopeRepositoryInterface;
 | 
			
		||||
use League\OAuth2\Server\Repositories\UserRepositoryInterface;
 | 
			
		||||
use League\OAuth2\Server\ResponseTypes\BearerTokenResponse;
 | 
			
		||||
use League\OAuth2\Server\Server;
 | 
			
		||||
use LeagueTests\Stubs\StubResponseType;
 | 
			
		||||
use Psr\Http\Message\RequestInterface;
 | 
			
		||||
use Psr\Http\Message\ResponseInterface;
 | 
			
		||||
use Zend\Diactoros\ServerRequest;
 | 
			
		||||
 | 
			
		||||
class ServerTest extends \PHPUnit_Framework_TestCase
 | 
			
		||||
{
 | 
			
		||||
@@ -53,4 +61,80 @@ class ServerTest extends \PHPUnit_Framework_TestCase
 | 
			
		||||
        $response = $server->respondToRequest();
 | 
			
		||||
        $this->assertEquals(200, $response->getStatusCode());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function testRespondToRequestPsrResponse()
 | 
			
		||||
    {
 | 
			
		||||
        $client = new ClientEntity();
 | 
			
		||||
        $client->setIdentifier('foo');
 | 
			
		||||
        $client->setIdentifier('http://bar.com');
 | 
			
		||||
 | 
			
		||||
        $clientRepository = $this->getMock(ClientRepositoryInterface::class);
 | 
			
		||||
        $clientRepository->method('getClientEntity')->willReturn($client);
 | 
			
		||||
 | 
			
		||||
        $server = new Server(
 | 
			
		||||
            $clientRepository,
 | 
			
		||||
            $this->getMock(AccessTokenRepositoryInterface::class),
 | 
			
		||||
            $this->getMock(ScopeRepositoryInterface::class),
 | 
			
		||||
            '',
 | 
			
		||||
            '',
 | 
			
		||||
            new StubResponseType()
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        $server->enableGrantType(
 | 
			
		||||
            new AuthCodeGrant(
 | 
			
		||||
                $this->getMock(AuthCodeRepositoryInterface::class),
 | 
			
		||||
                $this->getMock(RefreshTokenRepositoryInterface::class),
 | 
			
		||||
                $this->getMock(UserRepositoryInterface::class),
 | 
			
		||||
                new \DateInterval('PT1H')
 | 
			
		||||
            ),
 | 
			
		||||
            new \DateInterval('PT1M')
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        $_SERVER['HTTP_HOST'] = 'http://auth.com';
 | 
			
		||||
        $_SERVER['REQUEST_URI'] = '/auth';
 | 
			
		||||
        $_GET['response_type'] = 'code';
 | 
			
		||||
        $_GET['client_id'] = $client->getIdentifier();
 | 
			
		||||
        $_GET['redirect_uri'] = $client->getRedirectUri();
 | 
			
		||||
        $response = $server->respondToRequest();
 | 
			
		||||
        $this->assertEquals(200, $response->getStatusCode());
 | 
			
		||||
        $this->assertTrue($response instanceof ResponseInterface);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function testGetResponseType()
 | 
			
		||||
    {
 | 
			
		||||
        $clientRepository = $this->getMock(ClientRepositoryInterface::class);
 | 
			
		||||
 | 
			
		||||
        $server = new Server(
 | 
			
		||||
            $clientRepository,
 | 
			
		||||
            $this->getMock(AccessTokenRepositoryInterface::class),
 | 
			
		||||
            $this->getMock(ScopeRepositoryInterface::class),
 | 
			
		||||
            '',
 | 
			
		||||
            ''
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        $abstractGrantReflection = new \ReflectionClass($server);
 | 
			
		||||
        $method = $abstractGrantReflection->getMethod('getResponseType');
 | 
			
		||||
        $method->setAccessible(true);
 | 
			
		||||
 | 
			
		||||
        $this->assertTrue($method->invoke($server) instanceof BearerTokenResponse);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function testValidateRequest()
 | 
			
		||||
    {
 | 
			
		||||
        $clientRepository = $this->getMock(ClientRepositoryInterface::class);
 | 
			
		||||
 | 
			
		||||
        $server = new Server(
 | 
			
		||||
            $clientRepository,
 | 
			
		||||
            $this->getMock(AccessTokenRepositoryInterface::class),
 | 
			
		||||
            $this->getMock(ScopeRepositoryInterface::class),
 | 
			
		||||
            '',
 | 
			
		||||
            ''
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            $server->validateRequest(new ServerRequest());
 | 
			
		||||
        } catch (OAuthServerException $e) {
 | 
			
		||||
            $this->assertEquals('Missing "Authorization" header', $e->getHint());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user