Skip to content

Commit 0dd7fa7

Browse files
Merge branch '7.4' into 8.0
* 7.4: [Serializer] Fix handling of constructor enum denormalization errors [Console] ProgressIndicator console helper display with multiple processes [HttpFoundation] Handle empty session data in updateTimestamp() to fix compat with PHP 8.6 [Console] Fix arguments set via #[Ask] wrongly considered null in profiler [Cache] Wrap `DoctrineDbalAdapter::doSave()` in savepoint to prevent transaction poisoning Update security-1.0.xsd with missing oauth2 element [Console] Silence shell_exec warning in hasSttyAvailable
2 parents 3a7d1bd + f00c2db commit 0dd7fa7

File tree

2 files changed

+37
-29
lines changed

2 files changed

+37
-29
lines changed

Tests/Controller/ArgumentResolver/RequestPayloadValueResolverTest.php

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public function testNotTypedArgument()
5858

5959
$kernel = $this->createStub(HttpKernelInterface::class);
6060
$arguments = $resolver->resolve($request, $argument);
61-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
61+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
6262

6363
$this->expectException(\LogicException::class);
6464
$this->expectExceptionMessage('Could not resolve the "$notTyped" controller argument: argument should be typed.');
@@ -83,7 +83,7 @@ public function testDefaultValueArgument()
8383

8484
$kernel = $this->createStub(HttpKernelInterface::class);
8585
$arguments = $resolver->resolve($request, $argument);
86-
$event = new ControllerArgumentsEvent($kernel, fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
86+
$event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
8787

8888
$resolver->onKernelControllerArguments($event);
8989

@@ -107,7 +107,7 @@ public function testQueryDefaultValueArgument()
107107

108108
$kernel = $this->createStub(HttpKernelInterface::class);
109109
$arguments = $resolver->resolve($request, $argument);
110-
$event = new ControllerArgumentsEvent($kernel, fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
110+
$event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
111111

112112
$resolver->onKernelControllerArguments($event);
113113

@@ -129,7 +129,7 @@ public function testNullableValueArgument()
129129

130130
$kernel = $this->createStub(HttpKernelInterface::class);
131131
$arguments = $resolver->resolve($request, $argument);
132-
$event = new ControllerArgumentsEvent($kernel, fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
132+
$event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
133133

134134
$resolver->onKernelControllerArguments($event);
135135

@@ -151,7 +151,7 @@ public function testQueryNullableValueArgument()
151151

152152
$kernel = $this->createStub(HttpKernelInterface::class);
153153
$arguments = $resolver->resolve($request, $argument);
154-
$event = new ControllerArgumentsEvent($kernel, fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
154+
$event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
155155

156156
$resolver->onKernelControllerArguments($event);
157157

@@ -173,7 +173,7 @@ public function testNullPayloadAndNotDefaultOrNullableArgument()
173173

174174
$kernel = $this->createStub(HttpKernelInterface::class);
175175
$arguments = $resolver->resolve($request, $argument);
176-
$event = new ControllerArgumentsEvent($kernel, fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
176+
$event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
177177

178178
try {
179179
$resolver->onKernelControllerArguments($event);
@@ -198,7 +198,7 @@ public function testRequestPayloadWithoutContentTypeOnNullableArgumentReturnsNul
198198

199199
$kernel = $this->createStub(HttpKernelInterface::class);
200200
$arguments = $resolver->resolve($request, $argument);
201-
$event = new ControllerArgumentsEvent($kernel, fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
201+
$event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
202202

203203
$resolver->onKernelControllerArguments($event);
204204

@@ -220,7 +220,7 @@ public function testQueryNullPayloadAndNotDefaultOrNullableArgument()
220220

221221
$kernel = $this->createStub(HttpKernelInterface::class);
222222
$arguments = $resolver->resolve($request, $argument);
223-
$event = new ControllerArgumentsEvent($kernel, fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
223+
$event = new ControllerArgumentsEvent($kernel, static fn () => null, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
224224

225225
try {
226226
$resolver->onKernelControllerArguments($event);
@@ -244,7 +244,7 @@ public function testWithoutValidatorAndCouldNotDenormalize()
244244

245245
$kernel = $this->createStub(HttpKernelInterface::class);
246246
$arguments = $resolver->resolve($request, $argument);
247-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
247+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
248248

249249
try {
250250
$resolver->onKernelControllerArguments($event);
@@ -272,7 +272,7 @@ public function testValidationNotPassed()
272272

273273
$kernel = $this->createStub(HttpKernelInterface::class);
274274
$arguments = $resolver->resolve($request, $argument);
275-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
275+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
276276

277277
try {
278278
$resolver->onKernelControllerArguments($event);
@@ -303,7 +303,7 @@ public function testValidationFailedOnInvalidBackedEnum()
303303

304304
$kernel = $this->createStub(HttpKernelInterface::class);
305305
$arguments = $resolver->resolve($request, $argument);
306-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
306+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
307307

308308
try {
309309
$resolver->onKernelControllerArguments($event);
@@ -312,7 +312,10 @@ public function testValidationFailedOnInvalidBackedEnum()
312312
$validationFailedException = $e->getPrevious();
313313
$this->assertSame(422, $e->getStatusCode());
314314
$this->assertInstanceOf(ValidationFailedException::class, $validationFailedException);
315-
$this->assertSame('The data must belong to a backed enumeration of type Symfony\\Component\\HttpKernel\\Tests\\Controller\\ArgumentResolver\\RequestMethod', $validationFailedException->getViolations()[0]->getMessage());
315+
$this->assertContains($validationFailedException->getViolations()[0]->getMessage(), [
316+
'This value should be of type int|string.',
317+
'The data must belong to a backed enumeration of type Symfony\\Component\\HttpKernel\\Tests\\Controller\\ArgumentResolver\\RequestMethod',
318+
]);
316319
}
317320
}
318321

@@ -334,7 +337,7 @@ public function testValidationNotPerformedWhenPartialDenormalizationReturnsViola
334337

335338
$kernel = $this->createStub(HttpKernelInterface::class);
336339
$arguments = $resolver->resolve($request, $argument);
337-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
340+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
338341

339342
try {
340343
$resolver->onKernelControllerArguments($event);
@@ -359,7 +362,7 @@ public function testUnsupportedMedia()
359362

360363
$kernel = $this->createStub(HttpKernelInterface::class);
361364
$arguments = $resolver->resolve($request, $argument);
362-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
365+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
363366

364367
try {
365368
$resolver->onKernelControllerArguments($event);
@@ -389,7 +392,7 @@ public function testRequestContentValidationPassed()
389392

390393
$kernel = $this->createStub(HttpKernelInterface::class);
391394
$arguments = $resolver->resolve($request, $argument);
392-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
395+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
393396

394397
$resolver->onKernelControllerArguments($event);
395398

@@ -417,7 +420,7 @@ public function testRequestContentWithUntypedErrors(?array $types)
417420
$arguments = $resolver->resolve($request, new ArgumentMetadata('valid', RequestPayload::class, false, false, null, false, [
418421
MapRequestPayload::class => new MapRequestPayload(),
419422
]));
420-
$event = new ControllerArgumentsEvent($this->createStub(HttpKernelInterface::class), function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
423+
$event = new ControllerArgumentsEvent($this->createStub(HttpKernelInterface::class), static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
421424

422425
$resolver->onKernelControllerArguments($event);
423426
}
@@ -443,7 +446,7 @@ public function testQueryStringValidationPassed()
443446

444447
$kernel = $this->createStub(HttpKernelInterface::class);
445448
$arguments = $resolver->resolve($request, $argument);
446-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
449+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
447450

448451
$resolver->onKernelControllerArguments($event);
449452

@@ -470,7 +473,7 @@ public function testQueryStringParameterTypeMismatch()
470473

471474
$kernel = $this->createStub(HttpKernelInterface::class);
472475
$arguments = $resolver->resolve($request, $argument);
473-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
476+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
474477

475478
try {
476479
$resolver->onKernelControllerArguments($event);
@@ -503,7 +506,7 @@ public function testRequestInputValidationPassed()
503506

504507
$kernel = $this->createStub(HttpKernelInterface::class);
505508
$arguments = $resolver->resolve($request, $argument);
506-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
509+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
507510

508511
$resolver->onKernelControllerArguments($event);
509512

@@ -564,7 +567,7 @@ public function testRequestInputTypeMismatch()
564567

565568
$kernel = $this->createStub(HttpKernelInterface::class);
566569
$arguments = $resolver->resolve($request, $argument);
567-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
570+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
568571

569572
try {
570573
$resolver->onKernelControllerArguments($event);
@@ -642,7 +645,7 @@ public function testAcceptFormatPassed(mixed $acceptFormat, string $contentType,
642645

643646
$kernel = $this->createStub(HttpKernelInterface::class);
644647
$arguments = $resolver->resolve($request, $argument);
645-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
648+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
646649

647650
$resolver->onKernelControllerArguments($event);
648651

@@ -703,7 +706,7 @@ public function testAcceptFormatNotPassed(mixed $acceptFormat, string $contentTy
703706

704707
$kernel = $this->createStub(HttpKernelInterface::class);
705708
$arguments = $resolver->resolve($request, $argument);
706-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
709+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
707710

708711
try {
709712
$resolver->onKernelControllerArguments($event);
@@ -772,7 +775,7 @@ public function testValidationGroupsPassed(string $method, ValueResolver $attrib
772775

773776
$kernel = $this->createStub(HttpKernelInterface::class);
774777
$arguments = $resolver->resolve($request, $argument);
775-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
778+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
776779

777780
$resolver->onKernelControllerArguments($event);
778781

@@ -795,7 +798,7 @@ public function testValidationGroupsNotPassed(string $method, ValueResolver $att
795798

796799
$kernel = $this->createStub(HttpKernelInterface::class);
797800
$arguments = $resolver->resolve($request, $argument);
798-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
801+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
799802

800803
try {
801804
$resolver->onKernelControllerArguments($event);
@@ -860,7 +863,7 @@ public function testQueryValidationErrorCustomStatusCode()
860863

861864
$kernel = $this->createStub(HttpKernelInterface::class);
862865
$arguments = $resolver->resolve($request, $argument);
863-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
866+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
864867

865868
try {
866869
$resolver->onKernelControllerArguments($event);
@@ -891,7 +894,7 @@ public function testRequestPayloadValidationErrorCustomStatusCode()
891894

892895
$kernel = $this->createStub(HttpKernelInterface::class);
893896
$arguments = $resolver->resolve($request, $argument);
894-
$event = new ControllerArgumentsEvent($kernel, function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
897+
$event = new ControllerArgumentsEvent($kernel, static function () {}, $arguments, $request, HttpKernelInterface::MAIN_REQUEST);
895898

896899
try {
897900
$resolver->onKernelControllerArguments($event);

Tests/EventListener/RouterListenerTest.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use PHPUnit\Framework\TestCase;
1616
use Psr\Log\LoggerInterface;
1717
use Symfony\Component\EventDispatcher\EventDispatcher;
18+
use Symfony\Component\HttpFoundation\Exception\BadRequestException;
1819
use Symfony\Component\HttpFoundation\Request;
1920
use Symfony\Component\HttpFoundation\RequestStack;
2021
use Symfony\Component\HttpFoundation\Response;
@@ -158,7 +159,7 @@ public function testWithBadRequest()
158159
$dispatcher = new EventDispatcher();
159160
$dispatcher->addSubscriber(new ValidateRequestListener());
160161
$dispatcher->addSubscriber(new RouterListener($requestMatcher, $requestStack, new RequestContext()));
161-
$dispatcher->addSubscriber(new ErrorListener(fn () => new Response('Exception handled', 400)));
162+
$dispatcher->addSubscriber(new ErrorListener(static fn () => new Response('Exception handled', 400)));
162163

163164
$kernel = new HttpKernel($dispatcher, new ControllerResolver(), $requestStack, new ArgumentResolver());
164165

@@ -197,7 +198,6 @@ public function testNoRoutingConfigurationResponse()
197198

198199
public function testRequestWithBadHost()
199200
{
200-
$this->expectException(BadRequestHttpException::class);
201201
$kernel = $this->createStub(HttpKernelInterface::class);
202202
$request = Request::create('/');
203203
$request->headers->set('host', 'bad host %22');
@@ -206,7 +206,12 @@ public function testRequestWithBadHost()
206206
$requestMatcher = $this->createStub(RequestMatcherInterface::class);
207207

208208
$listener = new RouterListener($requestMatcher, new RequestStack(), new RequestContext());
209-
$listener->onKernelRequest($event);
209+
try {
210+
$listener->onKernelRequest($event);
211+
self::fail(\sprintf('Expected "%s" or "%s" to be thrown.', BadRequestHttpException::class, BadRequestException::class));
212+
} catch (\Throwable $e) {
213+
$this->assertTrue($e instanceof BadRequestHttpException || $e instanceof BadRequestException);
214+
}
210215
}
211216

212217
public function testResourceNotFoundException()

0 commit comments

Comments
 (0)