assertEquals('TWFyaWpu', Base64::base64UrlEncode('Marijn')); $this->assertEquals('UGhpbGluZQ', Base64::base64UrlEncode('Philine')); $this->assertEquals('_g', Base64::base64UrlEncode(chr(254))); $this->assertEquals('-g', Base64::base64UrlEncode(chr(250))); } public function testBase64UrlDecode() { $this->assertEquals('Marijn', Base64::base64UrlDecode('TWFyaWpu')); $this->assertEquals('Philine', Base64::base64UrlDecode('UGhpbGluZQ')); $this->assertEquals(chr(254), Base64::base64UrlDecode('_g')); $this->assertEquals(chr(250), Base64::base64UrlDecode('-g')); } public function testBase64UrlDecodeCanHandlePadding() { $this->assertEquals('Philine', Base64::base64UrlDecode('UGhpbGluZQ==')); } public function testBase64UrlDecodeThrowsExceptionOnInvalidInput() { $this->expectException(UrlException::class); Base64::base64UrlDecode('Philine=='); } }