ImageTest.php 47 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. *
  4. * @filesource ImageTest.php
  5. * @created 08.02.2016
  6. * @package chillerlan\QRCodeTest\Output
  7. * @author Smiley <smiley@chillerlan.net>
  8. * @copyright 2015 Smiley
  9. * @license MIT
  10. */
  11. namespace chillerlan\QRCodeTest\Output;
  12. use chillerlan\QRCode\Output\QRImage;
  13. use chillerlan\QRCode\Output\QRImageOptions;
  14. use chillerlan\QRCode\QRCode;
  15. class ImageTest extends \PHPUnit_Framework_TestCase{
  16. /**
  17. * @var \chillerlan\QRCode\Output\QRImageOptions
  18. */
  19. protected $options;
  20. /**
  21. * @var \chillerlan\QRCode\QRCode
  22. */
  23. protected $QRCode;
  24. protected function setUp(){
  25. $this->options = new QRImageOptions;
  26. }
  27. public function testOptionsInstance(){
  28. $this->assertInstanceOf(QRImageOptions::class, $this->options);
  29. $this->assertEquals(QRCode::OUTPUT_IMAGE_PNG, $this->options->type);
  30. $this->assertEquals(true, $this->options->base64);
  31. }
  32. public function testImageInstance(){
  33. $this->assertInstanceOf(QRImage::class, new QRImage);
  34. }
  35. public function testImageInstanceWithOptionsOverride(){
  36. $this->options->type = 'foobar';
  37. $this->options->pngCompression = 42;
  38. $this->options->jpegQuality = 'OVER 9000!!!';
  39. $this->assertInstanceOf(QRImage::class, new QRImage($this->options));
  40. }
  41. public function imageDataProvider(){
  42. return [
  43. [QRCode::OUTPUT_IMAGE_PNG, 'foobar', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAABzCAIAAAAkIaqxAAAABnRSTlMA/wD/AP83WBt9AAACGUlEQVR4nO3cwU4DMQwAUYL4/19e7j54ZTmTuNW8G6K0MIqw0mZ3Pc/zI8Dv7V/ga1mWYlmKZSl/4eu11pkXLk3O0m8VnvnWX+SapViWYlmKZSlxggUbd2j5JOnMqJJjf5FrlmJZimUplqW8TLCAmzP5xil/qtKD85/NlZ7ZNUuxLMWyFMtSahPslnzOzPwozzVLsSzFshTLUqZMsNKMCg/u7ME4rlmKZSmWpViWUptg3HDoHL8Y8rFY4JqlWJZiWYplKS8T7NhBvnwf1flu/kIc1yzFshTLUixLWUPecws+8YOvwDVLsSzFshTLUl6uB9u4F+p8WnXsLOLGF3LNUixLsSzFspS4B9v4Jltnp7TxEuZjbzl6RfMhlqVYlmJZSuskB3eR8sa5WvrZ0vTLuWYplqVYlmJZSus0fekf/K2rkm+dxHfNUixLsSzFspTaXaXy//elWdF5odJ3bx0Kcc1SLEuxLMWylClnEbm90MadYc7PwQ6xLMWyFMtSwJMcuc7o2HjKsfNC+YNdsxTLUixLsSxlyr3pO7h9VIdrlmJZimUplqVMuTf9xtOG+ese23O6ZimWpViWYlnKlDv7Drl0ujMMA9csxbIUy1IsS5kywbi90MZ9Y2lUumYplqVYlmJZytB705ccOy/vXaVGsCzFshTLUj7y3vRB55pl7i1H1yzFshTLUixLmXI92PdxzVIsS7EsxbKUf5cMC/onT8WdAAAAAElFTkSuQmCC'],
  44. [QRCode::OUTPUT_IMAGE_GIF, 'foobar', 'data:image/gif;base64,R0lGODlhcwBzAIAAAAQCBP///yH5BAEAAAEALAAAAABzAHMAAAL+jI+py+0Po5y02ouz3rz7D4biSJYXgKbqyrbt5L5ITNerY+c0rCf6z8IBhwBezkcECpM9yQ/JPDaizchzRrUtUZ0bVmpVdcVT8sZ7uIZTY3bZfTYb1BC0xq7AY/D0h/4klxe4F9i3VcTxl1ZYNTf4xfUWuQjnCGY5ucDXGKCIiciwWdnJ6Uk62meqyoha+kiZeaoFCar5+gkVm3orW9u7Q3soHEwLDOub67s7mmxs23rZO3zsLC1ZM/1ZvQo9e3xYndwcI3497lIeypmuTU6s3o39/uxNr+zKPP/r/l3MKtOPGj9c5vyh07dtoDWBBwPaOweQIENdCkXVW/jQYET+jPviWbwXjRvFkP+CaAQ58qJIZIDyOeTILsPKNrFizkzEy5SRmghz8trJ8iUhlxKLCiJK4WYcpB+zyfSZJWE8m1HDnaxKderVqOCqlsya0utKsVpffiTLc6JXsCjbog1qYs3GuHRDWK2Ld+ncvHyH7u0LGKjOwEfDsnUaE7E+p00XOxZaEF7ajGa/RqZcB+rkwm0PX+YMVLHkzj2ZaoYL+nNXIn7lVTYdDaKSliotj77bjjVt10bHKpRtyAk+w9dwdxzSWirx279PAl/nfGvZ3JuVR1kd1rps7G6TcH8+/Thq60y+S19OfXxFrsVLao/OHPbf3t7h2/Mt3+Ro8Bv+jftvrhZj9QXYXn74VefecPrdd9qB6nmkoIMCGrheeMHFh2B4/JH22kXm7fdYeo11yJsfANJHYUMoZnciZ0oZtaFnag1GIGEhJtXihYDRmJmKLrbIF48m+hijjTcK1iCQeQn5IYNEnnddgegN2V+ObyWpoZTdpShWkzBpuZ2WWIF5pH3icTcmhhz2WOWTkFkgoXCxmZnYbl6iiWWGm4VGplwlhgmiXg/O96Ob6YlWQZx+/mcoR8uw6OOIMNJZWm0QRmrbpDViJp6knWbqaJ6DbtkmpKWu+eWmqc0I6qOoKsqpqxNOCaimsSo4K6q1pnorSfnJ6CStn8k6LKi7CnmMVoV6vipqnYGK2KqypP6pWqUlJmvhgGyOWiSJnpYn57LdrrhgqLr5met7qmLrYbVvJvqTmPGiGy5qfMIJHb5IOQvvvvL6S2/Ad8wbbLmt3TswwAUz6e7C7HmbYJaqbgguxJcKOzGUFZPLrq6UspoFWx3ze+a/VIgcMcaHGslyyy6/DHPMMs9Mc80WFAAAOw=='],
  45. [QRCode::OUTPUT_IMAGE_JPG, 'foobar', 'data:image/jpg;base64,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'],
  46. [QRCode::OUTPUT_IMAGE_PNG, 'otpauth://totp/test?secret=B3JX4VCVJDVNXNZ5&issuer=chillerlan.net', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMMAAADDCAIAAACwHTL9AAAABnRSTlMA/wD/AP83WBt9AAAE6UlEQVR4nO3dQY4rKRBF0a5W73/L1XMGWIgLmS6dM/tyOZ22n1CYH8DP7+/vP7Dt36dvgD9CkmhIEg1JovHf8O+fn587Lzyv9HduY7jy0qXmzw1/ncyvPL/ncx/dkuE2jEk0JImGJNGQJBpjxT04V2PuWCo5rxXg4evOLf0OuPYNGpNoSBINSaIhSTQ+VNyDnXL1nJ1CeOlSO3+85Fq1vnQbc8YkGpJEQ5JoSBKNtYr7mnnJea7Enj+6VIF+RWdIyJhEQ5JoSBINSaLx0or7XJvz3LV+lb/HmERDkmhIEg1JorFWcZ9rFNnpTd7plNh5R9e6Wa61wO8wJtGQJBqSREOSaHyouF8yb3uuHn9qMeS11732DRqTaEgSDUmiIUk0ft65H/e5CeKndiV85+ccMibRkCQakkRDkmh82I/7XC9EOG8bLmicu/YGd27jqcLfmERDkmhIEg1JolHOcZ9b0PgVPdHn9gEfXLvU0hs0JtGQJBqSREOSaJRz3IN39kQPwpt8ydYl576yOWMSDUmiIUk0JInGOMd9bkXfud6Pp2bP586ddbnkWv+4MYmGJNGQJBqSRGOc4762mfU55/qal95gOJt8bSeTnbsyJtGQJBqSREOSaGydgLNUkV1b0XetuyM8VfKp/VXCSxmTaEgSDUmiIUk01rpKtl7pWFvFta6SnSsPwnueO9c1ZI6bIySJhiTRkCQaa3PcYfPD0gvNr/xU0/eSp7YfudY/bkyiIUk0JImGJNG4d8r7tRaUa7sDDsKfFEueWrA6MCbRkCQakkRDkmh82I/7XBPCuYnpp5ou5rfxFfssWjnJ8ySJhiTRkCQaH+a4l0qwc5uEnCv8l1536a6eWu54bVJ7YEyiIUk0JImGJNEoV06eK/2eOonm2p7a4UrRp37ZGJNoSBINSaIhSTQ+7Md9rt14aUZ4x7W55qfWZIZXnr+F+aPGJBqSREOSaEgSjQ993B+efKtjeunKg3ce2PhUg/y5SxmTaEgSDUmiIUk0Dp7y/geK6JfMgO8497GruDlCkmhIEg1JorF1yvtSz8m5w8iXnnvtrMu5p2r5c9+vMYmGJNGQJBqSRGOsuM8tSvyKHajPVa/z5+587DvFe7jfoTGJhiTRkCQakkRjaz/u+R8Prm3pNxd2Ls+vPH/utd8fS7exRMXNEZJEQ5JoSBKND3PcO3Xiua31nvqVsPTc8K6eOgFnflcDYxINSaIhSTQkiUY5x73z3GvHuFzb2ePaXt7z515jTKIhSTQkiYYk0Vjr457/8U5NHfZEz1837AFfcm2e+tyaTH3c3CBJNCSJhiTR2NqPO/QVTReDa+0cg6f+42Gg4uYISaIhSTQkicbWHPeO+Rz3udu4dp76ud8Qc9cWuw6MSTQkiYYk0ZAkGmPFPTi3ScjSo0+dAT84t79KuAZ153V39h00JtGQJBqSREOSaHyouAfnlvDtlH4v2bTvWvvK4Nx+3E7A4QGSREOSaEgSjbWK+5ydXoiwj2LJtf0Ol648uPafB8YkGpJEQ5JoSBKNt1TcT02IX9tZcEe4JjP8sWLlJEdIEg1JoiFJNNYq7msbm4RH7VybXN5pgn7JEZRLjw6MSTQkiYYk0ZAkGh8q7mtbl7ykTL52QOU7N+BeurI5bo6QJBqSREOSaLxlP26+nTGJhiTRkCQakkTjf7A1wcz7nDmoAAAAAElFTkSuQmCC'],
  47. [QRCode::OUTPUT_IMAGE_GIF, 'otpauth://totp/test?secret=B3JX4VCVJDVNXNZ5&issuer=chillerlan.net', 'data:image/gif;base64,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'],
  48. [QRCode::OUTPUT_IMAGE_JPG, 'otpauth://totp/test?secret=B3JX4VCVJDVNXNZ5&issuer=chillerlan.net', 'data:image/jpg;base64,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'],
  49. ];
  50. }
  51. /**
  52. * @dataProvider imageDataProvider
  53. */
  54. public function testImageOutput($type, $data, $expected){
  55. $this->options->type = $type;
  56. $output = (new QRCode($data, new QRImage($this->options)))->output();
  57. // jpeg test is causing trouble
  58. if($type !== QRCode::OUTPUT_IMAGE_JPG){
  59. $this->assertEquals($expected, $output);
  60. }
  61. }
  62. /**
  63. * @expectedException \chillerlan\QRCode\Output\QRCodeOutputException
  64. * @expectedExceptionMessage Invalid matrix!
  65. */
  66. public function testSetMatrixException(){
  67. (new QRImage)->setMatrix([]);
  68. }
  69. }