123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- <?php
- /*
- * (c) Jeroen van den Enden <info@endroid.nl>
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
- namespace Endroid\QrCode\Tests;
- use Endroid\QrCode\Factory\QrCodeFactory;
- use Endroid\QrCode\QrCode;
- use PHPUnit\Framework\TestCase;
- class QrCodeTest extends TestCase
- {
- public function testReadable()
- {
- $messages = [
- 'Tiny',
- 'This one has spaces',
- 'd2llMS9uU01BVmlvalM2YU9BUFBPTTdQMmJabHpqdndt',
- 'http://this.is.an/url?with=query&string=attached',
- '11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111',
- '{"i":"serialized.data","v":1,"t":1,"d":"4AEPc9XuIQ0OjsZoSRWp9DRWlN6UyDvuMlyOYy8XjOw="}',
- 'Spëci&al ch@ract3rs',
- '有限公司',
- ];
- foreach ($messages as $message) {
- $qrCode = new QrCode($message);
- $qrCode->setSize(300);
- $qrCode->setValidateResult(true);
- $pngData = $qrCode->writeString();
- $this->assertTrue(is_string($pngData));
- }
- }
- public function testFactory()
- {
- $qrCodeFactory = new QrCodeFactory();
- $qrCode = $qrCodeFactory->create('QR Code', [
- 'writer' => 'png',
- 'size' => 300,
- 'margin' => 10,
- ]);
- $pngData = $qrCode->writeString();
- $this->assertTrue(is_string($pngData));
- }
- public function testWriteQrCode()
- {
- $qrCode = new QrCode('QrCode');
- $qrCode->setWriterByName('binary');
- $binData = $qrCode->writeString();
- $this->assertTrue(is_string($binData));
- $qrCode->setWriterByName('debug');
- $debugData = $qrCode->writeString();
- $this->assertTrue(is_string($debugData));
- $qrCode->setWriterByName('eps');
- $epsData = $qrCode->writeString();
- $this->assertTrue(is_string($epsData));
- $qrCode->setWriterByName('png');
- $pngData = $qrCode->writeString();
- $this->assertTrue(is_string($pngData));
- $pngDataUriData = $qrCode->writeDataUri();
- $this->assertTrue(0 === strpos($pngDataUriData, 'data:image/png;base64'));
- $qrCode->setWriterByName('svg');
- $svgData = $qrCode->writeString();
- $this->assertTrue(is_string($svgData));
- $svgDataUriData = $qrCode->writeDataUri();
- $this->assertTrue(0 === strpos($svgDataUriData, 'data:image/svg+xml;base64'));
- }
- public function testSetSize()
- {
- $size = 400;
- $margin = 10;
- $qrCode = new QrCode('QrCode');
- $qrCode->setSize($size);
- $qrCode->setMargin($margin);
- $pngData = $qrCode->writeString();
- $image = imagecreatefromstring($pngData);
- $this->assertTrue(imagesx($image) === $size + 2 * $margin);
- $this->assertTrue(imagesy($image) === $size + 2 * $margin);
- }
- public function testSetLabel()
- {
- $qrCode = new QrCode('QrCode');
- $qrCode
- ->setSize(300)
- ->setLabel('Scan the code', 15)
- ;
- $pngData = $qrCode->writeString();
- $this->assertTrue(is_string($pngData));
- }
- public function testSetLogo()
- {
- $qrCode = new QrCode('QrCode');
- $qrCode
- ->setSize(400)
- ->setLogoPath(__DIR__.'/../assets/symfony.png')
- ->setLogoWidth(150)
- ->setValidateResult(true);
- $pngData = $qrCode->writeString();
- $this->assertTrue(is_string($pngData));
- }
- }
|