radarrplexorganizrnginxsonarrdashboardembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdall
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							573 lines
						
					
					
						
							15 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							573 lines
						
					
					
						
							15 KiB
						
					
					
				
								<?php
							 | 
						|
								/**
							 | 
						|
								 * This file is part of Lcobucci\JWT, a simple library to handle JWT and JWS
							 | 
						|
								 *
							 | 
						|
								 * @license http://opensource.org/licenses/BSD-3-Clause BSD-3-Clause
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								namespace Lcobucci\JWT;
							 | 
						|
								
							 | 
						|
								use DateInterval;
							 | 
						|
								use DateTime;
							 | 
						|
								use Lcobucci\JWT\Claim\Basic;
							 | 
						|
								use Lcobucci\JWT\Claim\EqualsTo;
							 | 
						|
								use Lcobucci\JWT\Claim\GreaterOrEqualsTo;
							 | 
						|
								use Lcobucci\JWT\Claim\LesserOrEqualsTo;
							 | 
						|
								
							 | 
						|
								/**
							 | 
						|
								 * @author Luís Otávio Cobucci Oblonczyk <lcobucci@gmail.com>
							 | 
						|
								 * @since 0.1.0
							 | 
						|
								 */
							 | 
						|
								class TokenTest extends \PHPUnit\Framework\TestCase
							 | 
						|
								{
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::__construct
							 | 
						|
								     */
							 | 
						|
								    public function constructMustInitializeAnEmptyPlainTextTokenWhenNoArgumentsArePassed()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token();
							 | 
						|
								
							 | 
						|
								        $this->assertAttributeEquals(['alg' => 'none'], 'headers', $token);
							 | 
						|
								        $this->assertAttributeEquals([], 'claims', $token);
							 | 
						|
								        $this->assertAttributeEquals(null, 'signature', $token);
							 | 
						|
								        $this->assertAttributeEquals(['', ''], 'payload', $token);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::hasHeader
							 | 
						|
								     */
							 | 
						|
								    public function hasHeaderMustReturnTrueWhenItIsConfigured()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token(['test' => 'testing']);
							 | 
						|
								
							 | 
						|
								        $this->assertTrue($token->hasHeader('test'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::hasHeader
							 | 
						|
								     */
							 | 
						|
								    public function hasHeaderMustReturnFalseWhenItIsNotConfigured()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token(['test' => 'testing']);
							 | 
						|
								
							 | 
						|
								        $this->assertFalse($token->hasHeader('testing'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\Token::hasHeader
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getHeader
							 | 
						|
								     *
							 | 
						|
								     * @expectedException \OutOfBoundsException
							 | 
						|
								     */
							 | 
						|
								    public function getHeaderMustRaiseExceptionWhenHeaderIsNotConfigured()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token(['test' => 'testing']);
							 | 
						|
								
							 | 
						|
								        $token->getHeader('testing');
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\Token::hasHeader
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getHeader
							 | 
						|
								     */
							 | 
						|
								    public function getHeaderMustReturnTheDefaultValueWhenIsNotConfigured()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token(['test' => 'testing']);
							 | 
						|
								
							 | 
						|
								        $this->assertEquals('blah', $token->getHeader('testing', 'blah'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\Token::hasHeader
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getHeader
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getHeaderValue
							 | 
						|
								     */
							 | 
						|
								    public function getHeaderMustReturnTheRequestedHeader()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token(['test' => 'testing']);
							 | 
						|
								
							 | 
						|
								        $this->assertEquals('testing', $token->getHeader('test'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\Token::hasHeader
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\Basic
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getHeader
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getHeaderValue
							 | 
						|
								     */
							 | 
						|
								    public function getHeaderMustReturnValueWhenItIsAReplicatedClaim()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token(['jti' => new EqualsTo('jti', 1)]);
							 | 
						|
								
							 | 
						|
								        $this->assertEquals(1, $token->getHeader('jti'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getHeaders
							 | 
						|
								     */
							 | 
						|
								    public function getHeadersMustReturnTheConfiguredHeader()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token(['test' => 'testing']);
							 | 
						|
								
							 | 
						|
								        $this->assertEquals(['test' => 'testing'], $token->getHeaders());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getClaims
							 | 
						|
								     */
							 | 
						|
								    public function getClaimsMustReturnTheConfiguredClaims()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token([], ['test' => 'testing']);
							 | 
						|
								
							 | 
						|
								        $this->assertEquals(['test' => 'testing'], $token->getClaims());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\Basic
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::hasClaim
							 | 
						|
								     */
							 | 
						|
								    public function hasClaimMustReturnTrueWhenItIsConfigured()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token([], ['test' => new Basic('test', 'testing')]);
							 | 
						|
								
							 | 
						|
								        $this->assertTrue($token->hasClaim('test'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\Basic
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::hasClaim
							 | 
						|
								     */
							 | 
						|
								    public function hasClaimMustReturnFalseWhenItIsNotConfigured()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token([], ['test' => new Basic('test', 'testing')]);
							 | 
						|
								
							 | 
						|
								        $this->assertFalse($token->hasClaim('testing'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\Token::hasClaim
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\Basic
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getClaim
							 | 
						|
								     */
							 | 
						|
								    public function getClaimMustReturnTheDefaultValueWhenIsNotConfigured()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token([], ['test' => new Basic('test', 'testing')]);
							 | 
						|
								
							 | 
						|
								        $this->assertEquals('blah', $token->getClaim('testing', 'blah'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\Token::hasClaim
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\Basic
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getClaim
							 | 
						|
								     *
							 | 
						|
								     * @expectedException \OutOfBoundsException
							 | 
						|
								     */
							 | 
						|
								    public function getClaimShouldRaiseExceptionWhenClaimIsNotConfigured()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token();
							 | 
						|
								        $token->getClaim('testing');
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\Token::hasClaim
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\Basic
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getClaim
							 | 
						|
								     */
							 | 
						|
								    public function getClaimShouldReturnTheClaimValueWhenItExists()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token([], ['testing' => new Basic('testing', 'test')]);
							 | 
						|
								
							 | 
						|
								        $this->assertEquals('test', $token->getClaim('testing'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::verify
							 | 
						|
								     *
							 | 
						|
								     * @expectedException BadMethodCallException
							 | 
						|
								     */
							 | 
						|
								    public function verifyMustRaiseExceptionWhenTokenIsUnsigned()
							 | 
						|
								    {
							 | 
						|
								        $signer = $this->createMock(Signer::class);
							 | 
						|
								
							 | 
						|
								        $token = new Token();
							 | 
						|
								        $token->verify($signer, 'test');
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::verify
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getPayload
							 | 
						|
								     */
							 | 
						|
								    public function verifyShouldReturnFalseWhenTokenAlgorithmIsDifferent()
							 | 
						|
								    {
							 | 
						|
								        $signer = $this->createMock(Signer::class);
							 | 
						|
								        $signature = $this->createMock(Signature::class, [], [], '', false);
							 | 
						|
								
							 | 
						|
								        $signer->expects($this->any())
							 | 
						|
								               ->method('getAlgorithmId')
							 | 
						|
								               ->willReturn('HS256');
							 | 
						|
								
							 | 
						|
								        $signature->expects($this->never())
							 | 
						|
								                  ->method('verify');
							 | 
						|
								
							 | 
						|
								        $token = new Token(['alg' => 'RS256'], [], $signature);
							 | 
						|
								
							 | 
						|
								        $this->assertFalse($token->verify($signer, 'test'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::verify
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getPayload
							 | 
						|
								     */
							 | 
						|
								    public function verifyMustDelegateTheValidationToSignature()
							 | 
						|
								    {
							 | 
						|
								        $signer = $this->createMock(Signer::class);
							 | 
						|
								        $signature = $this->createMock(Signature::class, [], [], '', false);
							 | 
						|
								
							 | 
						|
								        $signer->expects($this->any())
							 | 
						|
								               ->method('getAlgorithmId')
							 | 
						|
								               ->willReturn('HS256');
							 | 
						|
								
							 | 
						|
								        $signature->expects($this->once())
							 | 
						|
								                  ->method('verify')
							 | 
						|
								                  ->with($signer, $this->isType('string'), 'test')
							 | 
						|
								                  ->willReturn(true);
							 | 
						|
								
							 | 
						|
								        $token = new Token(['alg' => 'HS256'], [], $signature);
							 | 
						|
								
							 | 
						|
								        $this->assertTrue($token->verify($signer, 'test'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\ValidationData::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\ValidationData::setCurrentTime
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::validate
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getValidatableClaims
							 | 
						|
								     */
							 | 
						|
								    public function validateShouldReturnTrueWhenClaimsAreEmpty()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token();
							 | 
						|
								
							 | 
						|
								        $this->assertTrue($token->validate(new ValidationData()));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\ValidationData::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\ValidationData::setCurrentTime
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\Basic::__construct
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::validate
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getValidatableClaims
							 | 
						|
								     */
							 | 
						|
								    public function validateShouldReturnTrueWhenThereAreNoValidatableClaims()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token([], ['testing' => new Basic('testing', 'test')]);
							 | 
						|
								
							 | 
						|
								        $this->assertTrue($token->validate(new ValidationData()));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\ValidationData
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\Basic
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\EqualsTo
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::validate
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getValidatableClaims
							 | 
						|
								     */
							 | 
						|
								    public function validateShouldReturnFalseWhenThereIsAtLeastOneFailedValidatableClaim()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token(
							 | 
						|
								            [],
							 | 
						|
								            [
							 | 
						|
								                'iss' => new EqualsTo('iss', 'test'),
							 | 
						|
								                'testing' => new Basic('testing', 'test')
							 | 
						|
								            ]
							 | 
						|
								        );
							 | 
						|
								
							 | 
						|
								        $data = new ValidationData();
							 | 
						|
								        $data->setIssuer('test1');
							 | 
						|
								
							 | 
						|
								        $this->assertFalse($token->validate($data));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\ValidationData
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\Basic
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\EqualsTo
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\LesserOrEqualsTo
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\GreaterOrEqualsTo
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::validate
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getValidatableClaims
							 | 
						|
								     */
							 | 
						|
								    public function validateShouldReturnFalseWhenATimeBasedClaimFails()
							 | 
						|
								    {
							 | 
						|
								        $now = time();
							 | 
						|
								
							 | 
						|
								        $token = new Token(
							 | 
						|
								            [],
							 | 
						|
								            [
							 | 
						|
								                'iss' => new EqualsTo('iss', 'test'),
							 | 
						|
								                'iat' => new LesserOrEqualsTo('iat', $now),
							 | 
						|
								                'nbf' => new LesserOrEqualsTo('nbf', $now + 20),
							 | 
						|
								                'exp' => new GreaterOrEqualsTo('exp', $now + 500),
							 | 
						|
								                'testing' => new Basic('testing', 'test')
							 | 
						|
								            ]
							 | 
						|
								        );
							 | 
						|
								
							 | 
						|
								        $data = new ValidationData($now + 10);
							 | 
						|
								        $data->setIssuer('test');
							 | 
						|
								
							 | 
						|
								        $this->assertFalse($token->validate($data));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\ValidationData
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\Basic
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\EqualsTo
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\LesserOrEqualsTo
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\GreaterOrEqualsTo
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::validate
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getValidatableClaims
							 | 
						|
								     */
							 | 
						|
								    public function validateShouldReturnTrueWhenThereAreNoFailedValidatableClaims()
							 | 
						|
								    {
							 | 
						|
								        $now = time();
							 | 
						|
								
							 | 
						|
								        $token = new Token(
							 | 
						|
								            [],
							 | 
						|
								            [
							 | 
						|
								                'iss' => new EqualsTo('iss', 'test'),
							 | 
						|
								                'iat' => new LesserOrEqualsTo('iat', $now),
							 | 
						|
								                'exp' => new GreaterOrEqualsTo('exp', $now + 500),
							 | 
						|
								                'testing' => new Basic('testing', 'test')
							 | 
						|
								            ]
							 | 
						|
								        );
							 | 
						|
								
							 | 
						|
								        $data = new ValidationData($now + 10);
							 | 
						|
								        $data->setIssuer('test');
							 | 
						|
								
							 | 
						|
								        $this->assertTrue($token->validate($data));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\ValidationData
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\Basic
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\EqualsTo
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\LesserOrEqualsTo
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\GreaterOrEqualsTo
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::validate
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getValidatableClaims
							 | 
						|
								     */
							 | 
						|
								    public function validateShouldReturnTrueWhenLeewayMakesAllTimeBasedClaimsTrueAndOtherClaimsAreTrue()
							 | 
						|
								    {
							 | 
						|
								        $now = time();
							 | 
						|
								
							 | 
						|
								        $token = new Token(
							 | 
						|
								            [],
							 | 
						|
								            [
							 | 
						|
								                'iss' => new EqualsTo('iss', 'test'),
							 | 
						|
								                'iat' => new LesserOrEqualsTo('iat', $now),
							 | 
						|
								                'nbf' => new LesserOrEqualsTo('nbf', $now + 20),
							 | 
						|
								                'exp' => new GreaterOrEqualsTo('exp', $now + 500),
							 | 
						|
								                'testing' => new Basic('testing', 'test')
							 | 
						|
								            ]
							 | 
						|
								        );
							 | 
						|
								
							 | 
						|
								        $data = new ValidationData($now + 10, 20);
							 | 
						|
								        $data->setIssuer('test');
							 | 
						|
								
							 | 
						|
								        $this->assertTrue($token->validate($data));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::isExpired
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\Token::getClaim
							 | 
						|
								     * @uses Lcobucci\JWT\Token::hasClaim
							 | 
						|
								     */
							 | 
						|
								    public function isExpiredShouldReturnFalseWhenTokenDoesNotExpires()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token(['alg' => 'none']);
							 | 
						|
								
							 | 
						|
								        $this->assertFalse($token->isExpired());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::isExpired
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\Token::getClaim
							 | 
						|
								     * @uses Lcobucci\JWT\Token::hasClaim
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\Basic
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\GreaterOrEqualsTo
							 | 
						|
								     */
							 | 
						|
								    public function isExpiredShouldReturnFalseWhenTokenIsNotExpired()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token(
							 | 
						|
								            ['alg' => 'none'],
							 | 
						|
								            ['exp' => new GreaterOrEqualsTo('exp', time() + 500)]
							 | 
						|
								        );
							 | 
						|
								
							 | 
						|
								        $this->assertFalse($token->isExpired());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::isExpired
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\Token::getClaim
							 | 
						|
								     * @uses Lcobucci\JWT\Token::hasClaim
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\Basic
							 | 
						|
								     * @uses Lcobucci\JWT\Claim\GreaterOrEqualsTo
							 | 
						|
								     */
							 | 
						|
								    public function isExpiredShouldReturnTrueAfterTokenExpires()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token(
							 | 
						|
								            ['alg' => 'none'],
							 | 
						|
								            ['exp' => new GreaterOrEqualsTo('exp', time())]
							 | 
						|
								        );
							 | 
						|
								
							 | 
						|
								        $this->assertTrue($token->isExpired(new DateTime('+10 days')));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::getPayload
							 | 
						|
								     */
							 | 
						|
								    public function getPayloadShouldReturnAStringWithTheTwoEncodePartsThatGeneratedTheToken()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token(['alg' => 'none'], [], null, ['test1', 'test2', 'test3']);
							 | 
						|
								
							 | 
						|
								        $this->assertEquals('test1.test2', $token->getPayload());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\Token::getPayload
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::__toString
							 | 
						|
								     */
							 | 
						|
								    public function toStringMustReturnEncodedDataWithEmptySignature()
							 | 
						|
								    {
							 | 
						|
								        $token = new Token(['alg' => 'none'], [], null, ['test', 'test']);
							 | 
						|
								
							 | 
						|
								        $this->assertEquals('test.test.', (string) $token);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @test
							 | 
						|
								     *
							 | 
						|
								     * @uses Lcobucci\JWT\Token::__construct
							 | 
						|
								     * @uses Lcobucci\JWT\Token::getPayload
							 | 
						|
								     *
							 | 
						|
								     * @covers Lcobucci\JWT\Token::__toString
							 | 
						|
								     */
							 | 
						|
								    public function toStringMustReturnEncodedData()
							 | 
						|
								    {
							 | 
						|
								        $signature = $this->createMock(Signature::class, [], [], '', false);
							 | 
						|
								
							 | 
						|
								        $token = new Token(['alg' => 'none'], [], $signature, ['test', 'test', 'test']);
							 | 
						|
								
							 | 
						|
								        $this->assertEquals('test.test.test', (string) $token);
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |