<?php
namespace League\Glide\Signatures;
use League\Glide\Signatures\SignatureException;
use PHPUnit\Framework\TestCase;
class SignatureTest extends TestCase
{
private $httpSignature;
public function setUp(): void
{
$this->httpSignature = new Signature('example');
}
public function testCreateInstance()
{
$this->assertInstanceOf('League\Glide\Signatures\Signature', $this->httpSignature);
}
public function testAddSignature()
{
$this->assertEquals(
['w' => '100', 's' => '9978a40f1fc75fa64ac92ea9baf16ff3'],
$this->httpSignature->addSignature('image.jpg', ['w' => '100'])
);
}
public function testAddSignatureWithExistingSignature()
{
$this->assertEquals(
['w' => '100', 's' => '9978a40f1fc75fa64ac92ea9baf16ff3'],
$this->httpSignature->addSignature('image.jpg', ['w' => '100', 's' => 'existing'])
);
}
public function testValidateRequest()
{
$this->assertNull(
$this->httpSignature->validateRequest('image.jpg', [
'w' => '100',
's' => '9978a40f1fc75fa64ac92ea9baf16ff3',
])
);
}
public function testValidateRequestWithLeadingSlash()
{
$this->assertNull(
$this->httpSignature->validateRequest('/image.jpg', [
'w' => '100',
's' => '9978a40f1fc75fa64ac92ea9baf16ff3',
])
);
}
public function testValidateRequestWithMissingSignature()
{
$this->expectException(SignatureException::class);
$this->expectExceptionMessage('Signature is missing.');
$this->httpSignature->validateRequest('image.jpg', [
'w' => '100',
]);
}
public function testValidateRequestWithInvalidSignature()
{
$this->expectException(SignatureException::class);
$this->expectExceptionMessage('Signature is not valid.');
$this->httpSignature->validateRequest('image.jpg', [
'w' => '100',
's' => 'invalid',
]);
}
public function testGenerateSignature()
{
$this->assertEquals(
'9978a40f1fc75fa64ac92ea9baf16ff3',
$this->httpSignature->generateSignature('image.jpg', ['w' => '100'])
);
}
}