ImagickRenderingTest.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. declare(strict_types = 1);
  3. namespace BaconQrCodeTest\Integration;
  4. use BaconQrCode\Renderer\Color\Rgb;
  5. use BaconQrCode\Renderer\Eye\SquareEye;
  6. use BaconQrCode\Renderer\Image\ImagickImageBackEnd;
  7. use BaconQrCode\Renderer\ImageRenderer;
  8. use BaconQrCode\Renderer\Module\SquareModule;
  9. use BaconQrCode\Renderer\RendererStyle\EyeFill;
  10. use BaconQrCode\Renderer\RendererStyle\Fill;
  11. use BaconQrCode\Renderer\RendererStyle\Gradient;
  12. use BaconQrCode\Renderer\RendererStyle\GradientType;
  13. use BaconQrCode\Renderer\RendererStyle\RendererStyle;
  14. use BaconQrCode\Writer;
  15. use PHPUnit\Framework\TestCase;
  16. use Spatie\Snapshots\MatchesSnapshots;
  17. final class ImagickRenderingTest extends TestCase
  18. {
  19. use MatchesSnapshots;
  20. public function testGenericQrCode() : void
  21. {
  22. $renderer = new ImageRenderer(
  23. new RendererStyle(400),
  24. new ImagickImageBackEnd()
  25. );
  26. $writer = new Writer($renderer);
  27. $tempName = tempnam(sys_get_temp_dir(), 'test') . '.png';
  28. $writer->writeFile('Hello World!', $tempName);
  29. $this->assertMatchesFileSnapshot($tempName);
  30. unlink($tempName);
  31. }
  32. public function testIssue79() : void
  33. {
  34. $eye = SquareEye::instance();
  35. $squareModule = SquareModule::instance();
  36. $eyeFill = new EyeFill(new Rgb(100, 100, 55), new Rgb(100, 100, 255));
  37. $gradient = new Gradient(new Rgb(100, 100, 55), new Rgb(100, 100, 255), GradientType::HORIZONTAL());
  38. $renderer = new ImageRenderer(
  39. new RendererStyle(
  40. 400,
  41. 2,
  42. $squareModule,
  43. $eye,
  44. Fill::withForegroundGradient(new Rgb(255, 255, 255), $gradient, $eyeFill, $eyeFill, $eyeFill)
  45. ),
  46. new ImagickImageBackEnd()
  47. );
  48. $writer = new Writer($renderer);
  49. $tempName = tempnam(sys_get_temp_dir(), 'test') . '.png';
  50. $writer->writeFile('https://apiroad.net/very-long-url', $tempName);
  51. $this->assertMatchesFileSnapshot($tempName);
  52. unlink($tempName);
  53. }
  54. }