Skip to content

Commit 0d8e254

Browse files
committed
Rearrange test cases to make clearer which Symfony versions they belong to
1 parent eb454a8 commit 0d8e254

File tree

1 file changed

+97
-33
lines changed

1 file changed

+97
-33
lines changed

tests/EventListener/RequestListenerTest.php

Lines changed: 97 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ protected function setUp(): void
5353
/**
5454
* @dataProvider handleKernelRequestEventDataProvider
5555
* @dataProvider handleKernelRequestEventForSymfonyVersionLowerThan54DataProvider
56+
* @dataProvider handleKernelRequestEventForSymfonyVersionEqualTo54DataProvider
5657
* @dataProvider handleKernelRequestEventForSymfonyVersionGreaterThan54DataProvider
57-
* @dataProvider handleKernelRequestEventForSymfonyVersionLowerThan60DataProvider
5858
*/
5959
public function testHandleKernelRequestEvent(RequestEvent $requestEvent, ?ClientInterface $client, ?TokenInterface $token, ?UserDataBag $expectedUser): void
6060
{
@@ -120,6 +120,27 @@ public function handleKernelRequestEventDataProvider(): \Generator
120120
UserDataBag::createFromUserIpAddress('127.0.0.1'),
121121
];
122122

123+
yield 'request.clientIp IS NULL' => [
124+
new RequestEvent(
125+
$this->createMock(HttpKernelInterface::class),
126+
new Request(),
127+
HttpKernelInterface::MASTER_REQUEST
128+
),
129+
$this->getMockedClientWithOptions(new Options(['send_default_pii' => true])),
130+
null,
131+
new UserDataBag(),
132+
];
133+
}
134+
135+
/**
136+
* @return \Generator<mixed>
137+
*/
138+
public function handleKernelRequestEventForSymfonyVersionLowerThan54DataProvider(): \Generator
139+
{
140+
if (version_compare(Kernel::VERSION, '5.4.0', '>=')) {
141+
return;
142+
}
143+
123144
yield 'token.authenticated = FALSE' => [
124145
new RequestEvent(
125146
$this->createMock(HttpKernelInterface::class),
@@ -142,37 +163,43 @@ public function handleKernelRequestEventDataProvider(): \Generator
142163
UserDataBag::createFromUserIpAddress('127.0.0.1'),
143164
];
144165

145-
yield 'token.authenticated = TRUE && token.user INSTANCEOF UserInterface && getUserIdentifier() method EXISTS' => [
166+
yield 'token.authenticated = TRUE && token.user INSTANCEOF string' => [
146167
new RequestEvent(
147168
$this->createMock(HttpKernelInterface::class),
148169
new Request([], [], [], [], [], ['REMOTE_ADDR' => '127.0.0.1']),
149170
HttpKernelInterface::MASTER_REQUEST
150171
),
151172
$this->getMockedClientWithOptions(new Options(['send_default_pii' => true])),
152-
new AuthenticatedTokenStub(new UserWithIdentifierStub()),
173+
new AuthenticatedTokenStub('foo_user'),
153174
new UserDataBag(null, null, '127.0.0.1', 'foo_user'),
154175
];
155176

156-
yield 'request.clientIp IS NULL' => [
177+
yield 'token.authenticated = TRUE && token.user INSTANCEOF UserInterface && getUserIdentifier() method DOES NOT EXISTS' => [
157178
new RequestEvent(
158179
$this->createMock(HttpKernelInterface::class),
159-
new Request(),
180+
new Request([], [], [], [], [], ['REMOTE_ADDR' => '127.0.0.1']),
160181
HttpKernelInterface::MASTER_REQUEST
161182
),
162183
$this->getMockedClientWithOptions(new Options(['send_default_pii' => true])),
163-
null,
164-
new UserDataBag(),
184+
new AuthenticatedTokenStub(new UserWithoutIdentifierStub()),
185+
new UserDataBag(null, null, '127.0.0.1', 'foo_user'),
165186
];
166-
}
167187

168-
/**
169-
* @return \Generator<mixed>
170-
*/
171-
public function handleKernelRequestEventForSymfonyVersionLowerThan54DataProvider(): \Generator
172-
{
173-
if (version_compare(Kernel::VERSION, '5.4.0', '>=')) {
174-
return;
175-
}
188+
yield 'token.authenticated = TRUE && token.user INSTANCEOF object && __toString() method EXISTS' => [
189+
new RequestEvent(
190+
$this->createMock(HttpKernelInterface::class),
191+
new Request([], [], [], [], [], ['REMOTE_ADDR' => '127.0.0.1']),
192+
HttpKernelInterface::MASTER_REQUEST
193+
),
194+
$this->getMockedClientWithOptions(new Options(['send_default_pii' => true])),
195+
new AuthenticatedTokenStub(new class() implements \Stringable {
196+
public function __toString(): string
197+
{
198+
return 'foo_user';
199+
}
200+
}),
201+
new UserDataBag(null, null, '127.0.0.1', 'foo_user'),
202+
];
176203

177204
yield 'token.authenticated = TRUE && token INSTANCEOF SwitchUserToken' => [
178205
new RequestEvent(
@@ -199,12 +226,45 @@ public function handleKernelRequestEventForSymfonyVersionLowerThan54DataProvider
199226
/**
200227
* @return \Generator<mixed>
201228
*/
202-
public function handleKernelRequestEventForSymfonyVersionGreaterThan54DataProvider(): \Generator
229+
public function handleKernelRequestEventForSymfonyVersionEqualTo54DataProvider(): \Generator
203230
{
204-
if (version_compare(Kernel::VERSION, '5.4.0', '<')) {
231+
if (version_compare(Kernel::VERSION, '5.4.0', '!=')) {
205232
return;
206233
}
207234

235+
yield 'token.authenticated = FALSE' => [
236+
new RequestEvent(
237+
$this->createMock(HttpKernelInterface::class),
238+
new Request([], [], [], [], [], ['REMOTE_ADDR' => '127.0.0.1']),
239+
HttpKernelInterface::MASTER_REQUEST
240+
),
241+
$this->getMockedClientWithOptions(new Options(['send_default_pii' => true])),
242+
new UnauthenticatedTokenStub(),
243+
UserDataBag::createFromUserIpAddress('127.0.0.1'),
244+
];
245+
246+
yield 'token.authenticated = TRUE && token.user IS NULL' => [
247+
new RequestEvent(
248+
$this->createMock(HttpKernelInterface::class),
249+
new Request([], [], [], [], [], ['REMOTE_ADDR' => '127.0.0.1']),
250+
HttpKernelInterface::MASTER_REQUEST
251+
),
252+
$this->getMockedClientWithOptions(new Options(['send_default_pii' => true])),
253+
new AuthenticatedTokenStub(null),
254+
UserDataBag::createFromUserIpAddress('127.0.0.1'),
255+
];
256+
257+
yield 'token.authenticated = TRUE && token.user INSTANCEOF UserInterface && getUserIdentifier() method EXISTS' => [
258+
new RequestEvent(
259+
$this->createMock(HttpKernelInterface::class),
260+
new Request([], [], [], [], [], ['REMOTE_ADDR' => '127.0.0.1']),
261+
HttpKernelInterface::MASTER_REQUEST
262+
),
263+
$this->getMockedClientWithOptions(new Options(['send_default_pii' => true])),
264+
new AuthenticatedTokenStub(new UserWithIdentifierStub()),
265+
new UserDataBag(null, null, '127.0.0.1', 'foo_user'),
266+
];
267+
208268
yield 'token.authenticated = TRUE && token INSTANCEOF SwitchUserToken' => [
209269
new RequestEvent(
210270
$this->createMock(HttpKernelInterface::class),
@@ -229,48 +289,52 @@ public function handleKernelRequestEventForSymfonyVersionGreaterThan54DataProvid
229289
/**
230290
* @return \Generator<mixed>
231291
*/
232-
public function handleKernelRequestEventForSymfonyVersionLowerThan60DataProvider(): \Generator
292+
public function handleKernelRequestEventForSymfonyVersionGreaterThan54DataProvider(): \Generator
233293
{
234-
if (version_compare(Kernel::VERSION, '6.0.0', '>=')) {
294+
if (version_compare(Kernel::VERSION, '5.4.0', '<')) {
235295
return;
236296
}
237297

238-
yield 'token.authenticated = TRUE && token.user INSTANCEOF string' => [
298+
yield 'token.user IS NULL' => [
239299
new RequestEvent(
240300
$this->createMock(HttpKernelInterface::class),
241301
new Request([], [], [], [], [], ['REMOTE_ADDR' => '127.0.0.1']),
242302
HttpKernelInterface::MASTER_REQUEST
243303
),
244304
$this->getMockedClientWithOptions(new Options(['send_default_pii' => true])),
245-
new AuthenticatedTokenStub('foo_user'),
246-
new UserDataBag(null, null, '127.0.0.1', 'foo_user'),
305+
new AuthenticatedTokenStub(null),
306+
UserDataBag::createFromUserIpAddress('127.0.0.1'),
247307
];
248308

249-
yield 'token.authenticated = TRUE && token.user INSTANCEOF UserInterface && getUserIdentifier() method DOES NOT EXISTS' => [
309+
yield 'token.user INSTANCEOF UserInterface' => [
250310
new RequestEvent(
251311
$this->createMock(HttpKernelInterface::class),
252312
new Request([], [], [], [], [], ['REMOTE_ADDR' => '127.0.0.1']),
253313
HttpKernelInterface::MASTER_REQUEST
254314
),
255315
$this->getMockedClientWithOptions(new Options(['send_default_pii' => true])),
256-
new AuthenticatedTokenStub(new UserWithoutIdentifierStub()),
316+
new AuthenticatedTokenStub(new UserWithIdentifierStub()),
257317
new UserDataBag(null, null, '127.0.0.1', 'foo_user'),
258318
];
259319

260-
yield 'token.authenticated = TRUE && token.user INSTANCEOF object && __toString() method EXISTS' => [
320+
yield 'token INSTANCEOF SwitchUserToken' => [
261321
new RequestEvent(
262322
$this->createMock(HttpKernelInterface::class),
263323
new Request([], [], [], [], [], ['REMOTE_ADDR' => '127.0.0.1']),
264324
HttpKernelInterface::MASTER_REQUEST
265325
),
266326
$this->getMockedClientWithOptions(new Options(['send_default_pii' => true])),
267-
new AuthenticatedTokenStub(new class() implements \Stringable {
268-
public function __toString(): string
269-
{
270-
return 'foo_user';
271-
}
272-
}),
273-
new UserDataBag(null, null, '127.0.0.1', 'foo_user'),
327+
new SwitchUserToken(
328+
new UserWithIdentifierStub(),
329+
'main',
330+
['ROLE_USER'],
331+
new AuthenticatedTokenStub(new UserWithIdentifierStub('foo_user_impersonator'))
332+
),
333+
UserDataBag::createFromArray([
334+
'ip_address' => '127.0.0.1',
335+
'username' => 'foo_user',
336+
'impersonator_username' => 'foo_user_impersonator',
337+
]),
274338
];
275339
}
276340

0 commit comments

Comments
 (0)