Skip to content
This repository was archived by the owner on Aug 7, 2023. It is now read-only.

Commit 9f89e0b

Browse files
feat: update test cases.
1 parent 2872ccc commit 9f89e0b

5 files changed

+79
-78
lines changed

src/AbstractExtractor.php

+1-3
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,7 @@ public function __construct(
3737
}
3838

3939
if (self::IN_HEADER !== $in && self::IN_QUERY_PARAM !== $in) {
40-
throw new \LogicException(
41-
sprintf('Item must in: `%s` or `%s`, can not in: `%s`', self::IN_HEADER, self::IN_QUERY_PARAM, $in)
42-
);
40+
throw new \LogicException(sprintf('Item must in: `%s` or `%s`, can not in: `%s`', self::IN_HEADER, self::IN_QUERY_PARAM, $in));
4341
}
4442

4543
$this->issuer = $issuer;

tests/Base64HeaderExtractorTest.php

+26-9
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,24 @@
1414
use PHPUnit\Framework\TestCase;
1515
use Psr\Http\Message\ServerRequestInterface;
1616

17-
class Base64HeaderExtractorTest extends TestCase
17+
final class Base64HeaderExtractorTest extends TestCase
1818
{
19-
use RequestDataProviderTrait;
19+
use RequestCreatorTrait;
2020

2121
public function testInitWithBlankIssuer(): void
2222
{
2323
$this->expectException(\LogicException::class);
2424
$this->expectExceptionMessageMatches('~can not be blank!~');
2525

26-
new Base64HeaderExtractor('', 'authorization');
26+
new Base64HeaderExtractor('', 'x-istio-jwt-payload');
2727
}
2828

2929
/**
3030
* @dataProvider invalidRequests
3131
*/
3232
public function testExtractFromInvalidRequests(ServerRequestInterface $inHeader)
3333
{
34-
$extractor = new Base64HeaderExtractor('valid', 'authorization');
34+
$extractor = new Base64HeaderExtractor('valid', 'x-istio-jwt-payload');
3535
$payloadFromHeader = $extractor->extract($inHeader);
3636

3737
$this->assertNull($payloadFromHeader);
@@ -42,20 +42,37 @@ public function testExtractFromInvalidRequests(ServerRequestInterface $inHeader)
4242
*/
4343
public function testExtractFromValidRequests(ServerRequestInterface $inHeader)
4444
{
45-
$extractor = new Base64HeaderExtractor('valid', 'authorization');
45+
$extractor = new Base64HeaderExtractor('valid', 'x-istio-jwt-payload');
4646
$payloadFromHeader = $extractor->extract($inHeader);
4747

4848
$this->assertIsArray($payloadFromHeader);
4949
$this->assertSame('valid', $payloadFromHeader['iss']);
5050
}
5151

52-
protected function getValidToken(): string
52+
public function invalidRequests(): array
5353
{
54-
return base64_encode(json_encode(['iss' => 'valid']));
54+
return [
55+
[
56+
$this->createRequest(),
57+
],
58+
[
59+
$this->createRequest(headers: ['invalid_name' => '']),
60+
],
61+
[
62+
$this->createRequest(headers: ['x-istio-jwt-payload' => 'invalid header']),
63+
],
64+
[
65+
$this->createRequest(headers: ['x-istio-jwt-payload' => 'Bearer ' . base64_encode(json_encode(['iss' => 'invalid']))]),
66+
],
67+
];
5568
}
5669

57-
protected function getInvalidToken(): string
70+
public function validRequests(): array
5871
{
59-
return base64_encode(json_encode(['iss' => 'invalid']));
72+
return [
73+
[
74+
$this->createRequest(headers: ['x-istio-jwt-payload' => base64_encode(json_encode(['iss' => 'valid']))]),
75+
],
76+
];
6077
}
6178
}

tests/CompositeExtractorTest.php

+9-7
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
use PHPUnit\Framework\TestCase;
1616
use Psr\Http\Message\ServerRequestInterface;
1717

18-
class CompositeExtractorTest extends TestCase
18+
final class CompositeExtractorTest extends TestCase
1919
{
2020
use RequestCreatorTrait;
2121

@@ -56,8 +56,8 @@ public function testExtractFromInvalidRequests(ServerRequestInterface $request):
5656
public function validRequests(): array
5757
{
5858
return [
59-
[$this->createRequest(headers: ['x-jwt-payload' => $this->getValidBase64Payload()])],
60-
[$this->createRequest(headers: ['authorization' => $this->getValidOriginToken()])],
59+
[$this->createRequest(headers: ['x-istio-jwt-payload' => $this->getValidBase64Payload()])],
60+
[$this->createRequest(headers: ['authorization' => 'Bearer ' . $this->getValidOriginToken()])],
6161
[$this->createRequest(queryParams: ['token' => $this->getValidOriginToken()])],
6262
];
6363
}
@@ -66,21 +66,23 @@ public function invalidRequests(): array
6666
{
6767
return [
6868
[$this->createRequest()],
69-
[$this->createRequest(headers: ['x-jwt-payload' => ''])],
69+
[$this->createRequest(headers: ['x-istio-jwt-payload' => ''])],
7070
[$this->createRequest(headers: ['authorization' => ''])],
7171
[$this->createRequest(queryParams: ['token' => ''])],
72-
[$this->createRequest(headers: ['x-jwt-payload' => $this->getValidOriginToken()])],
72+
[$this->createRequest(headers: ['x-istio-jwt-payload' => $this->getValidOriginToken()])],
7373
[$this->createRequest(headers: ['authorization' => $this->getValidBase64Payload()])],
74-
[$this->createRequest(headers: ['x-jwt-payload' => $this->getInvalidBase64Payload()])],
74+
[$this->createRequest(headers: ['x-istio-jwt-payload' => $this->getInvalidBase64Payload()])],
7575
[$this->createRequest(headers: ['authorization' => $this->getInvalidOriginToken()])],
7676
[$this->createRequest(queryParams: ['token' => $this->getInvalidOriginToken()])],
77+
[$this->createRequest(headers: ['authorization' => 'Bearer=' . $this->getValidOriginToken()])],
78+
[$this->createRequest(headers: ['authorization' => 'BearEr ' . $this->getValidOriginToken()])],
7779
];
7880
}
7981

8082
private function getExtractor(): ExtractorInterface
8183
{
8284
return ExtractorFactory::fromExtractors(
83-
ExtractorFactory::fromBase64Header('valid', 'x-jwt-payload'),
85+
ExtractorFactory::fromBase64Header('valid', 'x-istio-jwt-payload'),
8486
ExtractorFactory::fromOriginTokenHeader('valid', 'authorization'),
8587
ExtractorFactory::fromOriginTokenQueryParam('valid', 'token'),
8688
);

tests/OriginTokenExtractorTest.php

+43-3
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
use PHPUnit\Framework\TestCase;
1616
use Psr\Http\Message\ServerRequestInterface;
1717

18-
class OriginTokenExtractorTest extends TestCase
18+
final class OriginTokenExtractorTest extends TestCase
1919
{
20-
use RequestDataProviderTrait;
20+
use RequestCreatorTrait;
2121

2222
public function testInitWithBlankIssuer(): void
2323
{
@@ -50,6 +50,36 @@ public function testExtractFromInvalidRequests(
5050
$this->assertNull($payloadFromQueryParam);
5151
}
5252

53+
public function invalidRequests(): array
54+
{
55+
return [
56+
[
57+
$this->createRequest(),
58+
$this->createRequest(),
59+
],
60+
[
61+
$this->createRequest(headers: ['invalid_name' => '']),
62+
$this->createRequest(queryParams: ['invalid_name' => '']),
63+
],
64+
[
65+
$this->createRequest(headers: ['authorization' => '']),
66+
$this->createRequest(queryParams: ['token' => '']),
67+
],
68+
[
69+
$this->createRequest(headers: ['authorization' => 'Bearer invalid header']),
70+
$this->createRequest(queryParams: ['token' => 'invalid query params']),
71+
],
72+
[
73+
$this->createRequest(headers: ['authorization' => 'Bearer=' . $this->getValidToken()]),
74+
$this->createRequest(queryParams: ['token' => 'Bearer..' . $this->getInvalidToken()]),
75+
],
76+
[
77+
$this->createRequest(headers: ['authorization' => 'Bearer ' . $this->getInvalidToken()]),
78+
$this->createRequest(queryParams: ['token' => $this->getInvalidToken()]),
79+
],
80+
];
81+
}
82+
5383
/**
5484
* @dataProvider validRequests
5585
*/
@@ -63,9 +93,19 @@ public function testExtractFromValidRequests(ServerRequestInterface $inHeader, S
6393
$this->assertSame('valid', $payloadFromQueryParam['iss']);
6494
}
6595

96+
public function validRequests(): array
97+
{
98+
return [
99+
[
100+
$this->createRequest(headers: ['authorization' => 'Bearer ' . $this->getValidToken()]),
101+
$this->createRequest(queryParams: ['token' => $this->getValidToken()]),
102+
],
103+
];
104+
}
105+
66106
private function extractRequests(ServerRequestInterface $inHeader, ServerRequestInterface $inQueryParam): array
67107
{
68-
$headerExtractor = new OriginTokenExtractor('valid', AbstractExtractor::IN_HEADER, 'authorization');
108+
$headerExtractor = new OriginTokenExtractor('valid', AbstractExtractor::IN_HEADER, 'authorization', 'Bearer ');
69109
$queryParamExtractor = new OriginTokenExtractor('valid', AbstractExtractor::IN_QUERY_PARAM, 'token');
70110

71111
return [$headerExtractor->extract($inHeader), $queryParamExtractor->extract($inQueryParam)];

tests/RequestDataProviderTrait.php

-56
This file was deleted.

0 commit comments

Comments
 (0)