QRCodeReaderImagickTest.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. /**
  3. * Class QRCodeReaderImagickTest
  4. *
  5. * @created 12.12.2021
  6. * @author smiley <smiley@chillerlan.net>
  7. * @copyright 2021 smiley
  8. * @license MIT
  9. */
  10. namespace chillerlan\QRCodeTest;
  11. use chillerlan\QRCode\Decoder\IMagickLuminanceSource;
  12. use chillerlan\QRCode\QRCode;
  13. use function extension_loaded;
  14. /**
  15. * Tests the Imagick based reader
  16. */
  17. final class QRCodeReaderImagickTest extends QRCodeReaderTestAbstract{
  18. protected string $FQN = IMagickLuminanceSource::class;
  19. protected function setUp():void{
  20. if(!extension_loaded('imagick')){
  21. $this::markTestSkipped('imagick not installed');
  22. }
  23. parent::setUp();
  24. $this->options->readerUseImagickIfAvailable = true;
  25. }
  26. public function vectorQRCodeProvider():array{
  27. return [
  28. 'SVG' => ['vector_sample.svg', 'https://www.youtube.com/watch?v=dQw4w9WgXcQ', false],
  29. 'EPS' => ['vector_sample.eps', 'https://www.youtube.com/watch?v=dQw4w9WgXcQ', false],
  30. ];
  31. }
  32. /**
  33. * @dataProvider vectorQRCodeProvider
  34. */
  35. public function testReadVectorFormats(string $img, string $expected):void{
  36. $this::assertSame($expected, (string)(new QRCode)
  37. ->readFromSource(IMagickLuminanceSource::fromFile(__DIR__.'/samples/'.$img, $this->options)));
  38. }
  39. }