HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/www.sfzvq.com/vendor/endroid/qr-code/tests/QrCodeTest.php
<?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));
    }
}