12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?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
- );
- }
- }
|