diff options
author | Andrew Dolgov <[email protected]> | 2021-02-26 19:16:17 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2021-02-26 19:16:17 +0300 |
commit | 3fd785654372d493c031d9b541ab33a881023a32 (patch) | |
tree | 0a76cb410217074378de3d7012b95754cd3c7e6f /vendor/chillerlan/php-qrcode/tests/QROptionsTest.php | |
parent | bc4475b6698f5a74e475674aa7af43253c459892 (diff) |
* switch to composer for qrcode and otp dependencies
* move most OTP-related stuff into userhelper
* remove old phpqrcode and otphp libraries
Diffstat (limited to 'vendor/chillerlan/php-qrcode/tests/QROptionsTest.php')
-rw-r--r-- | vendor/chillerlan/php-qrcode/tests/QROptionsTest.php | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/vendor/chillerlan/php-qrcode/tests/QROptionsTest.php b/vendor/chillerlan/php-qrcode/tests/QROptionsTest.php new file mode 100644 index 000000000..41bf69ced --- /dev/null +++ b/vendor/chillerlan/php-qrcode/tests/QROptionsTest.php @@ -0,0 +1,80 @@ +<?php +/** + * Class QROptionsTest + * + * @filesource QROptionsTest.php + * @created 08.11.2018 + * @package chillerlan\QRCodeTest + * @author smiley <[email protected]> + * @copyright 2018 smiley + * @license MIT + */ + +namespace chillerlan\QRCodeTest; + +use chillerlan\QRCode\{QRCode, QRCodeException, QROptions}; +use PHPUnit\Framework\TestCase; + +class QROptionsTest extends TestCase{ + + /** + * @var \chillerlan\QRCode\QROptions + */ + protected $options; + + public function testVersionClamp(){ + $this->assertSame(40, (new QROptions(['version' => 42]))->version); + $this->assertSame(1, (new QROptions(['version' => -42]))->version); + $this->assertSame(21, (new QROptions(['version' => 21]))->version); + $this->assertSame(QRCode::VERSION_AUTO, (new QROptions)->version); // QRCode::VERSION_AUTO = -1, default + } + + public function testVersionMinMaxClamp(){ + // normal clamp + $o = new QROptions(['versionMin' => 5, 'versionMax' => 10]); + $this->assertSame(5, $o->versionMin); + $this->assertSame(10, $o->versionMax); + + // exceeding values + $o = new QROptions(['versionMin' => -42, 'versionMax' => 42]); + $this->assertSame(1, $o->versionMin); + $this->assertSame(40, $o->versionMax); + + // min > max + $o = new QROptions(['versionMin' => 10, 'versionMax' => 5]); + $this->assertSame(5, $o->versionMin); + $this->assertSame(10, $o->versionMax); + + $o = new QROptions(['versionMin' => 42, 'versionMax' => -42]); + $this->assertSame(1, $o->versionMin); + $this->assertSame(40, $o->versionMax); + } + + public function testMaskPatternClamp(){ + $this->assertSame(7, (new QROptions(['maskPattern' => 42]))->maskPattern); + $this->assertSame(0, (new QROptions(['maskPattern' => -42]))->maskPattern); + $this->assertSame(QRCode::MASK_PATTERN_AUTO, (new QROptions)->maskPattern); // QRCode::MASK_PATTERN_AUTO = -1, default + } + + public function testInvalidEccLevelException(){ + $this->expectException(QRCodeException::class); + $this->expectExceptionMessage('Invalid error correct level: 42'); + + new QROptions(['eccLevel' => 42]); + } + + public function testClampRGBValues(){ + $o = new QROptions(['imageTransparencyBG' => [-1, 0, 999]]); + + $this->assertSame(0, $o->imageTransparencyBG[0]); + $this->assertSame(0, $o->imageTransparencyBG[1]); + $this->assertSame(255, $o->imageTransparencyBG[2]); + } + + public function testInvalidRGBValueException(){ + $this->expectException(QRCodeException::class); + $this->expectExceptionMessage('Invalid RGB value.'); + + new QROptions(['imageTransparencyBG' => ['r', 'g', 'b']]); + } +} |