OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
firebase
/
vendor
/
lcobucci
/
jwt
/
test
/
unit
/
Validation
/
Constraint
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
08/12/2024 10:36:32 AM
rwxr-xr-x
📄
ConstraintTestCase.php
685 bytes
08/12/2024 10:36:32 AM
rw-r--r--
📄
IdentifiedByTest.php
1.97 KB
08/12/2024 10:36:32 AM
rw-r--r--
📄
IssuedByTest.php
2.63 KB
08/12/2024 10:36:32 AM
rw-r--r--
📄
PermittedForTest.php
2.65 KB
08/12/2024 10:36:32 AM
rw-r--r--
📄
RelatedToTest.php
2.01 KB
08/12/2024 10:36:32 AM
rw-r--r--
📄
SignedWithTest.php
3.89 KB
08/12/2024 10:36:32 AM
rw-r--r--
📄
ValidAtTest.php
6.74 KB
08/12/2024 10:36:32 AM
rw-r--r--
Editing: ValidAtTest.php
Close
<?php declare(strict_types=1); namespace Lcobucci\JWT\Validation\Constraint; use DateInterval; use DateTimeImmutable; use Lcobucci\Clock\Clock; use Lcobucci\Clock\FrozenClock; use Lcobucci\JWT\Token\RegisteredClaims; use Lcobucci\JWT\Validation\ConstraintViolation; /** @coversDefaultClass \Lcobucci\JWT\Validation\Constraint\ValidAt */ final class ValidAtTest extends ConstraintTestCase { private Clock $clock; /** @before */ public function createDependencies(): void { $this->clock = new FrozenClock(new DateTimeImmutable()); } /** * @test * * @covers ::__construct * @covers ::guardLeeway * @covers \Lcobucci\JWT\Validation\Constraint\LeewayCannotBeNegative */ public function constructShouldRaiseExceptionOnNegativeLeeway(): void { $leeway = new DateInterval('PT30S'); $leeway->invert = 1; $this->expectException(LeewayCannotBeNegative::class); $this->expectExceptionMessage('Leeway cannot be negative'); new ValidAt($this->clock, $leeway); } /** * @test * * @covers ::__construct * @covers ::guardLeeway * @covers ::assert * @covers ::assertExpiration * @covers ::assertIssueTime * @covers ::assertMinimumTime * * @uses \Lcobucci\JWT\Token\DataSet * @uses \Lcobucci\JWT\Token\Plain * @uses \Lcobucci\JWT\Token\Signature */ public function assertShouldRaiseExceptionWhenTokenIsExpired(): void { $now = $this->clock->now(); $claims = [ RegisteredClaims::ISSUED_AT => $now->modify('-20 seconds'), RegisteredClaims::NOT_BEFORE => $now->modify('-10 seconds'), RegisteredClaims::EXPIRATION_TIME => $now->modify('-10 seconds'), ]; $this->expectException(ConstraintViolation::class); $this->expectExceptionMessage('The token is expired'); $constraint = new ValidAt($this->clock); $constraint->assert($this->buildToken($claims)); } /** * @test * * @covers ::__construct * @covers ::guardLeeway * @covers ::assert * @covers ::assertIssueTime * @covers ::assertMinimumTime * * @uses \Lcobucci\JWT\Token\DataSet * @uses \Lcobucci\JWT\Token\Plain * @uses \Lcobucci\JWT\Token\Signature */ public function assertShouldRaiseExceptionWhenMinimumTimeIsNotMet(): void { $now = $this->clock->now(); $claims = [ RegisteredClaims::ISSUED_AT => $now->modify('-20 seconds'), RegisteredClaims::NOT_BEFORE => $now->modify('+40 seconds'), RegisteredClaims::EXPIRATION_TIME => $now->modify('+60 seconds'), ]; $this->expectException(ConstraintViolation::class); $this->expectExceptionMessage('The token cannot be used yet'); $constraint = new ValidAt($this->clock); $constraint->assert($this->buildToken($claims)); } /** * @test * * @covers ::__construct * @covers ::guardLeeway * @covers ::assert * @covers ::assertIssueTime * * @uses \Lcobucci\JWT\Token\DataSet * @uses \Lcobucci\JWT\Token\Plain * @uses \Lcobucci\JWT\Token\Signature */ public function assertShouldRaiseExceptionWhenTokenWasIssuedInTheFuture(): void { $now = $this->clock->now(); $claims = [ RegisteredClaims::ISSUED_AT => $now->modify('+20 seconds'), RegisteredClaims::NOT_BEFORE => $now->modify('+40 seconds'), RegisteredClaims::EXPIRATION_TIME => $now->modify('+60 seconds'), ]; $this->expectException(ConstraintViolation::class); $this->expectExceptionMessage('The token was issued in the future'); $constraint = new ValidAt($this->clock); $constraint->assert($this->buildToken($claims)); } /** * @test * * @covers ::__construct * @covers ::guardLeeway * @covers ::assert * @covers ::assertExpiration * @covers ::assertIssueTime * @covers ::assertMinimumTime * * @uses \Lcobucci\JWT\Token\DataSet * @uses \Lcobucci\JWT\Token\Plain * @uses \Lcobucci\JWT\Token\Signature */ public function assertShouldNotRaiseExceptionWhenLeewayIsUsed(): void { $now = $this->clock->now(); $claims = [ RegisteredClaims::ISSUED_AT => $now->modify('+5 seconds'), RegisteredClaims::NOT_BEFORE => $now->modify('+5 seconds'), RegisteredClaims::EXPIRATION_TIME => $now->modify('-5 seconds'), ]; $constraint = new ValidAt($this->clock, new DateInterval('PT6S')); $constraint->assert($this->buildToken($claims)); $this->addToAssertionCount(1); } /** * @test * * @covers ::__construct * @covers ::guardLeeway * @covers ::assert * @covers ::assertExpiration * @covers ::assertIssueTime * @covers ::assertMinimumTime * * @uses \Lcobucci\JWT\Token\DataSet * @uses \Lcobucci\JWT\Token\Plain * @uses \Lcobucci\JWT\Token\Signature */ public function assertShouldNotRaiseExceptionWhenTokenIsUsedInTheRightMoment(): void { $constraint = new ValidAt($this->clock); $now = $this->clock->now(); $token = $this->buildToken( [ RegisteredClaims::ISSUED_AT => $now->modify('-40 seconds'), RegisteredClaims::NOT_BEFORE => $now->modify('-20 seconds'), RegisteredClaims::EXPIRATION_TIME => $now->modify('+60 seconds'), ] ); $constraint->assert($token); $this->addToAssertionCount(1); $token = $this->buildToken( [ RegisteredClaims::ISSUED_AT => $now, RegisteredClaims::NOT_BEFORE => $now, RegisteredClaims::EXPIRATION_TIME => $now->modify('+60 seconds'), ] ); $constraint->assert($token); $this->addToAssertionCount(1); } /** * @test * * @covers ::__construct * @covers ::guardLeeway * @covers ::assert * @covers ::assertExpiration * @covers ::assertIssueTime * @covers ::assertMinimumTime * * @uses \Lcobucci\JWT\Token\DataSet * @uses \Lcobucci\JWT\Token\Plain * @uses \Lcobucci\JWT\Token\Signature */ public function assertShouldNotRaiseExceptionWhenTokenDoesNotHaveTimeClaims(): void { $token = $this->buildToken(); $constraint = new ValidAt($this->clock); $constraint->assert($token); $this->addToAssertionCount(1); } }