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/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.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/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.php')
-rw-r--r-- | vendor/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.php | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/vendor/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.php b/vendor/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.php new file mode 100644 index 000000000..136ed611c --- /dev/null +++ b/vendor/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.php @@ -0,0 +1,58 @@ +<?php + +use ParagonIE\ConstantTime\Base64UrlSafe; +use ParagonIE\ConstantTime\Binary; + +/** + * Class Base64UrlSafeTest + */ +class Base64UrlSafeTest extends PHPUnit\Framework\TestCase +{ + /** + * @covers Base64UrlSafe::encode() + * @covers Base64UrlSafe::decode() + * + * @throws Exception + * @throws TypeError + */ + public function testRandom() + { + for ($i = 1; $i < 32; ++$i) { + for ($j = 0; $j < 50; ++$j) { + $random = \random_bytes($i); + + $enc = Base64UrlSafe::encode($random); + $this->assertSame( + $random, + Base64UrlSafe::decode($enc) + ); + $this->assertSame( + \strtr(\base64_encode($random), '+/', '-_'), + $enc + ); + + $unpadded = \rtrim($enc, '='); + $this->assertSame( + $unpadded, + Base64UrlSafe::encodeUnpadded($random) + ); + $this->assertSame( + $random, + Base64UrlSafe::decode($unpadded) + ); + } + } + + $random = \random_bytes(1 << 20); + $enc = Base64UrlSafe::encode($random); + $this->assertTrue(Binary::safeStrlen($enc) > 65536); + $this->assertSame( + $random, + Base64UrlSafe::decode($enc) + ); + $this->assertSame( + \strtr(\base64_encode($random), '+/', '-_'), + $enc + ); + } +} |