129 lines
3.4 KiB
PHP
Executable File
129 lines
3.4 KiB
PHP
Executable File
<?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\Signer;
|
|
|
|
use Lcobucci\JWT\Signature;
|
|
|
|
/**
|
|
* @author Luís Otávio Cobucci Oblonczyk <lcobucci@gmail.com>
|
|
* @since 0.1.0
|
|
*/
|
|
class BaseSignerTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
/**
|
|
* @var BaseSigner|\PHPUnit_Framework_MockObject_MockObject
|
|
*/
|
|
protected $signer;
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
protected function setUp()
|
|
{
|
|
$this->signer = $this->getMockForAbstractClass(BaseSigner::class);
|
|
|
|
$this->signer->method('getAlgorithmId')
|
|
->willReturn('TEST123');
|
|
}
|
|
|
|
/**
|
|
* @test
|
|
*
|
|
* @covers Lcobucci\JWT\Signer\BaseSigner::modifyHeader
|
|
*/
|
|
public function modifyHeaderShouldChangeAlgorithm()
|
|
{
|
|
$headers = ['typ' => 'JWT'];
|
|
|
|
$this->signer->modifyHeader($headers);
|
|
|
|
$this->assertEquals($headers['typ'], 'JWT');
|
|
$this->assertEquals($headers['alg'], 'TEST123');
|
|
}
|
|
|
|
/**
|
|
* @test
|
|
*
|
|
* @uses Lcobucci\JWT\Signature::__construct
|
|
* @uses Lcobucci\JWT\Signer\Key
|
|
*
|
|
* @covers Lcobucci\JWT\Signer\BaseSigner::sign
|
|
* @covers Lcobucci\JWT\Signer\BaseSigner::getKey
|
|
*/
|
|
public function signMustReturnANewSignature()
|
|
{
|
|
$key = new Key('123');
|
|
|
|
$this->signer->expects($this->once())
|
|
->method('createHash')
|
|
->with('test', $key)
|
|
->willReturn('test');
|
|
|
|
$this->assertEquals(new Signature('test'), $this->signer->sign('test', $key));
|
|
}
|
|
|
|
/**
|
|
* @test
|
|
*
|
|
* @uses Lcobucci\JWT\Signature::__construct
|
|
* @uses Lcobucci\JWT\Signer\Key
|
|
*
|
|
* @covers Lcobucci\JWT\Signer\BaseSigner::sign
|
|
* @covers Lcobucci\JWT\Signer\BaseSigner::getKey
|
|
*/
|
|
public function signShouldConvertKeyWhenItsNotAnObject()
|
|
{
|
|
$this->signer->expects($this->once())
|
|
->method('createHash')
|
|
->with('test', new Key('123'))
|
|
->willReturn('test');
|
|
|
|
$this->assertEquals(new Signature('test'), $this->signer->sign('test', '123'));
|
|
}
|
|
|
|
/**
|
|
* @test
|
|
*
|
|
* @uses Lcobucci\JWT\Signature::__construct
|
|
* @uses Lcobucci\JWT\Signer\Key
|
|
*
|
|
* @covers Lcobucci\JWT\Signer\BaseSigner::verify
|
|
* @covers Lcobucci\JWT\Signer\BaseSigner::getKey
|
|
*/
|
|
public function verifyShouldDelegateTheCallToAbstractMethod()
|
|
{
|
|
$key = new Key('123');
|
|
|
|
$this->signer->expects($this->once())
|
|
->method('doVerify')
|
|
->with('test', 'test', $key)
|
|
->willReturn(true);
|
|
|
|
$this->assertTrue($this->signer->verify('test', 'test', $key));
|
|
}
|
|
|
|
/**
|
|
* @test
|
|
*
|
|
* @uses Lcobucci\JWT\Signature::__construct
|
|
* @uses Lcobucci\JWT\Signer\Key
|
|
*
|
|
* @covers Lcobucci\JWT\Signer\BaseSigner::verify
|
|
* @covers Lcobucci\JWT\Signer\BaseSigner::getKey
|
|
*/
|
|
public function verifyShouldConvertKeyWhenItsNotAnObject()
|
|
{
|
|
$this->signer->expects($this->once())
|
|
->method('doVerify')
|
|
->with('test', 'test', new Key('123'))
|
|
->willReturn(true);
|
|
|
|
$this->assertTrue($this->signer->verify('test', 'test', '123'));
|
|
}
|
|
}
|