Skip to content

Commit daa7b62

Browse files
Merge branch '7.1' into 7.2
* 7.1: [Process] minor fix [Process] Fix finding executables independently of open_basedir [HttpKernel] Skip logging uncaught exceptions in ErrorHandler, assume $kernel->terminateWithException() will do it [Serializer] Fix for method named `get()` [Notifier][TurboSMS] Process partial accepted response from transport parse empty sequence elements as null [HttpClient] Fix setting CURLMOPT_MAXCONNECTS throw a meaningful exception when parsing dotenv files with BOM [FrameworkBundle] Fix schema & finish incomplete tests for lock & semaphore config [Cache] Fix RedisSentinel params types [FrameworkBundle] Fix service reset between tests [Uid][Serializer][Validator] Mention RFC 9562 make sure temp files can be cleaned up on Windows
2 parents d1619ef + 0e6c77a commit daa7b62

File tree

13 files changed

+165
-5
lines changed

13 files changed

+165
-5
lines changed

Test/KernelTestCase.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,11 @@ protected static function ensureKernelShutdown()
121121
static::$kernel->shutdown();
122122
static::$booted = false;
123123

124+
if ($container->has('services_resetter')) {
125+
// Instantiate the service because Container::reset() only resets services that have been used
126+
$container->get('services_resetter');
127+
}
128+
124129
if ($container instanceof ResetInterface) {
125130
$container->reset();
126131
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?php
2+
3+
$container->loadFromExtension('framework', [
4+
'annotations' => false,
5+
'http_method_override' => false,
6+
'handle_all_throwables' => true,
7+
'php_errors' => ['log' => true],
8+
'lock' => null,
9+
]);
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
$container->setParameter('env(REDIS_DSN)', 'redis://paas.com');
4+
5+
$container->loadFromExtension('framework', [
6+
'annotations' => false,
7+
'http_method_override' => false,
8+
'handle_all_throwables' => true,
9+
'php_errors' => ['log' => true],
10+
'lock' => [
11+
'foo' => 'semaphore',
12+
'bar' => 'flock',
13+
'baz' => ['semaphore', 'flock'],
14+
'qux' => '%env(REDIS_DSN)%',
15+
],
16+
]);
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?php
2+
3+
$container->loadFromExtension('framework', [
4+
'annotations' => false,
5+
'http_method_override' => false,
6+
'handle_all_throwables' => true,
7+
'php_errors' => ['log' => true],
8+
'semaphore' => 'redis://localhost',
9+
]);
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
$container->setParameter('env(REDIS_DSN)', 'redis://paas.com');
4+
5+
$container->loadFromExtension('framework', [
6+
'annotations' => false,
7+
'http_method_override' => false,
8+
'handle_all_throwables' => true,
9+
'php_errors' => ['log' => true],
10+
'semaphore' => [
11+
'foo' => 'redis://paas.com',
12+
'qux' => '%env(REDIS_DSN)%',
13+
],
14+
]);

Tests/DependencyInjection/Fixtures/xml/lock.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
<framework:config http-method-override="false" handle-all-throwables="true">
99
<framework:annotations enabled="false" />
1010
<framework:php-errors log="true" />
11-
<framework:lock/>
11+
<framework:lock>
12+
<framework:resource>semaphore</framework:resource>
13+
</framework:lock>
1214
</framework:config>
1315
</container>

Tests/DependencyInjection/Fixtures/xml/lock_named.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
66
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
77

8-
98
<parameters>
109
<parameter key="env(REDIS_URL)">redis://paas.com</parameter>
1110
</parameters>
@@ -18,7 +17,7 @@
1817
<framework:resource name="bar">flock</framework:resource>
1918
<framework:resource name="baz">semaphore</framework:resource>
2019
<framework:resource name="baz">flock</framework:resource>
21-
<framework:resource name="qux">%env(REDIS_URL)%</framework:resource>
20+
<framework:resource name="qux">%env(REDIS_DSN)%</framework:resource>
2221
</framework:lock>
2322
</framework:config>
2423
</container>

Tests/DependencyInjection/Fixtures/xml/semaphore.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
<framework:config http-method-override="false" handle-all-throwables="true">
99
<framework:annotations enabled="false" />
1010
<framework:php-errors log="true" />
11-
<framework:semaphore/>
11+
<framework:semaphore>
12+
<framework:resource>redis://localhost</framework:resource>
13+
</framework:semaphore>
1214
</framework:config>
1315
</container>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:framework="http://symfony.com/schema/dic/symfony"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
7+
8+
<framework:config http-method-override="false" handle-all-throwables="true">
9+
<framework:annotations enabled="false" />
10+
<framework:php-errors log="true" />
11+
<framework:semaphore>
12+
<framework:resource name="foo">redis://paas.com</framework:resource>
13+
<framework:resource name="qux">%env(REDIS_DSN)%</framework:resource>
14+
</framework:semaphore>
15+
</framework:config>
16+
</container>

Tests/DependencyInjection/FrameworkExtensionTestCase.php

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2393,6 +2393,62 @@ public function testAssetMapperWithoutAssets()
23932393
$this->assertFalse($container->has('assets._default_package'));
23942394
}
23952395

2396+
public function testDefaultLock()
2397+
{
2398+
$container = $this->createContainerFromFile('lock');
2399+
2400+
self::assertTrue($container->hasDefinition('lock.default.factory'));
2401+
$storeDef = $container->getDefinition($container->getDefinition('lock.default.factory')->getArgument(0));
2402+
self::assertEquals(new Reference('semaphore'), $storeDef->getArgument(0));
2403+
}
2404+
2405+
public function testNamedLocks()
2406+
{
2407+
$container = $this->createContainerFromFile('lock_named');
2408+
2409+
self::assertTrue($container->hasDefinition('lock.foo.factory'));
2410+
$storeDef = $container->getDefinition($container->getDefinition('lock.foo.factory')->getArgument(0));
2411+
self::assertEquals(new Reference('semaphore'), $storeDef->getArgument(0));
2412+
2413+
self::assertTrue($container->hasDefinition('lock.bar.factory'));
2414+
$storeDef = $container->getDefinition($container->getDefinition('lock.bar.factory')->getArgument(0));
2415+
self::assertEquals(new Reference('flock'), $storeDef->getArgument(0));
2416+
2417+
self::assertTrue($container->hasDefinition('lock.baz.factory'));
2418+
$storeDef = $container->getDefinition($container->getDefinition('lock.baz.factory')->getArgument(0));
2419+
self::assertIsArray($storeDefArg = $storeDef->getArgument(0));
2420+
$storeDef1 = $container->getDefinition($storeDefArg[0]);
2421+
$storeDef2 = $container->getDefinition($storeDefArg[1]);
2422+
self::assertEquals(new Reference('semaphore'), $storeDef1->getArgument(0));
2423+
self::assertEquals(new Reference('flock'), $storeDef2->getArgument(0));
2424+
2425+
self::assertTrue($container->hasDefinition('lock.qux.factory'));
2426+
$storeDef = $container->getDefinition($container->getDefinition('lock.qux.factory')->getArgument(0));
2427+
self::assertStringContainsString('REDIS_DSN', $storeDef->getArgument(0));
2428+
}
2429+
2430+
public function testDefaultSemaphore()
2431+
{
2432+
$container = $this->createContainerFromFile('semaphore');
2433+
2434+
self::assertTrue($container->hasDefinition('semaphore.default.factory'));
2435+
$storeDef = $container->getDefinition($container->getDefinition('semaphore.default.factory')->getArgument(0));
2436+
self::assertSame('redis://localhost', $storeDef->getArgument(0));
2437+
}
2438+
2439+
public function testNamedSemaphores()
2440+
{
2441+
$container = $this->createContainerFromFile('semaphore_named');
2442+
2443+
self::assertTrue($container->hasDefinition('semaphore.foo.factory'));
2444+
$storeDef = $container->getDefinition($container->getDefinition('semaphore.foo.factory')->getArgument(0));
2445+
self::assertSame('redis://paas.com', $storeDef->getArgument(0));
2446+
2447+
self::assertTrue($container->hasDefinition('semaphore.qux.factory'));
2448+
$storeDef = $container->getDefinition($container->getDefinition('semaphore.qux.factory')->getArgument(0));
2449+
self::assertStringContainsString('REDIS_DSN', $storeDef->getArgument(0));
2450+
}
2451+
23962452
protected function createContainer(array $data = [])
23972453
{
23982454
return new ContainerBuilder(new EnvPlaceholderParameterBag(array_merge([

0 commit comments

Comments
 (0)