From ad4729f77250ce7022dc99cd7ccec20735436300 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Cobucci?= Date: Fri, 19 Mar 2021 15:15:34 +0100 Subject: [PATCH] Guard against precision issues on time fractions --- test/functional/TimeFractionPrecisionTest.php | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 test/functional/TimeFractionPrecisionTest.php diff --git a/test/functional/TimeFractionPrecisionTest.php b/test/functional/TimeFractionPrecisionTest.php new file mode 100644 index 00000000..4cb0534d --- /dev/null +++ b/test/functional/TimeFractionPrecisionTest.php @@ -0,0 +1,61 @@ +format('U.u')); + + $token = $config->builder() + ->issuedAt($issuedAt) + ->getToken($config->signer(), $config->signingKey()); + + $parsedToken = $config->parser()->parse($token->toString()); + + self::assertInstanceOf(Plain::class, $parsedToken); + self::assertSame($timeFraction, $parsedToken->claims()->get('iat')->format('U.u')); + } + + /** @return iterable */ + public function datesWithPotentialRoundingIssues(): iterable + { + yield ['1613938511.017448']; + yield ['1613938511.023691']; + yield ['1613938511.018045']; + yield ['1616074725.008455']; + } +}