From eb6d5bfd9dee0dea6b2d02ef85b21e9af9db8396 Mon Sep 17 00:00:00 2001 From: Marijn Doeve Date: Mon, 3 Nov 2025 22:05:44 +0100 Subject: [PATCH] Base64 tests --- tests/Helpers/Base64Test.php | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 tests/Helpers/Base64Test.php diff --git a/tests/Helpers/Base64Test.php b/tests/Helpers/Base64Test.php new file mode 100644 index 0000000..9273ec4 --- /dev/null +++ b/tests/Helpers/Base64Test.php @@ -0,0 +1,38 @@ +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=='); + } +}