62 lines
1.6 KiB
PHP
62 lines
1.6 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace TestsDependency;
|
||
|
|
||
|
use BaconQrCode\Renderer\Image\ImagickImageBackEnd;
|
||
|
use PHPUnit\Framework\TestCase;
|
||
|
use RobThree\Auth\Providers\Qr\BaconQrCodeProvider;
|
||
|
use RobThree\Auth\TwoFactorAuth;
|
||
|
use RobThree\Auth\Providers\Qr\HandlesDataUri;
|
||
|
|
||
|
class BaconQRCodeTest extends TestCase
|
||
|
{
|
||
|
use HandlesDataUri;
|
||
|
|
||
|
public function testDependency()
|
||
|
{
|
||
|
// php < 7.1 will install an older Bacon QR Code
|
||
|
if (! class_exists(ImagickImageBackEnd::class)) {
|
||
|
$this->expectException(\RuntimeException::class);
|
||
|
|
||
|
$qr = new BaconQrCodeProvider(1, '#000', '#FFF', 'svg');
|
||
|
} else {
|
||
|
$qr = new BaconQrCodeProvider(1, '#000', '#FFF', 'svg');
|
||
|
|
||
|
$tfa = new TwoFactorAuth('Test&Issuer', 6, 30, 'sha1', $qr);
|
||
|
|
||
|
$data = $this->DecodeDataUri($tfa->getQRCodeImageAsDataUri('Test&Label', 'VMR466AB62ZBOKHE'));
|
||
|
$this->assertEquals('image/svg+xml', $data['mimetype']);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public function testBadTextColour()
|
||
|
{
|
||
|
$this->expectException(\RuntimeException::class);
|
||
|
|
||
|
new BaconQrCodeProvider(1, 'not-a-colour', '#FFF');
|
||
|
}
|
||
|
|
||
|
public function testBadBackgroundColour()
|
||
|
{
|
||
|
$this->expectException(\RuntimeException::class);
|
||
|
|
||
|
new BaconQrCodeProvider(1, '#000', 'not-a-colour');
|
||
|
}
|
||
|
|
||
|
public function testBadTextColourHexRef()
|
||
|
{
|
||
|
$this->expectException(\RuntimeException::class);
|
||
|
|
||
|
new BaconQrCodeProvider(1, '#AAAA', '#FFF');
|
||
|
}
|
||
|
|
||
|
public function testBadBackgroundColourHexRef()
|
||
|
{
|
||
|
$this->expectException(\RuntimeException::class);
|
||
|
|
||
|
new BaconQrCodeProvider(1, '#000', '#AAAA');
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|