Merge branch '5.0' into 5.1
* 5.0: Connect to RedisCluster with password auth Fix PHPUnit 8.5 deprecations. Fix EmailHeaderSame to make use of decoded value Allow same middleware to be used multiple times with different arguments
This commit is contained in:
commit
62dbb9a39a
@ -228,7 +228,7 @@ trait RedisTrait
|
||||
}
|
||||
|
||||
try {
|
||||
$redis = new $class(null, $hosts, $params['timeout'], $params['read_timeout'], (bool) $params['persistent']);
|
||||
$redis = new $class(null, $hosts, $params['timeout'], $params['read_timeout'], (bool) $params['persistent'], $params['auth'] ?? '');
|
||||
} catch (\RedisClusterException $e) {
|
||||
throw new InvalidArgumentException(sprintf('Redis connection "%s" failed: ', $dsn).$e->getMessage());
|
||||
}
|
||||
|
@ -127,7 +127,7 @@ class SessionHandlerProxyTest extends TestCase
|
||||
*/
|
||||
public function testValidateId()
|
||||
{
|
||||
$mock = $this->getMockBuilder(['SessionHandlerInterface', 'SessionUpdateTimestampHandlerInterface'])->getMock();
|
||||
$mock = $this->getMockBuilder(TestSessionHandler::class)->getMock();
|
||||
$mock->expects($this->once())
|
||||
->method('validateId');
|
||||
|
||||
@ -142,7 +142,7 @@ class SessionHandlerProxyTest extends TestCase
|
||||
*/
|
||||
public function testUpdateTimestamp()
|
||||
{
|
||||
$mock = $this->getMockBuilder(['SessionHandlerInterface', 'SessionUpdateTimestampHandlerInterface'])->getMock();
|
||||
$mock = $this->getMockBuilder(TestSessionHandler::class)->getMock();
|
||||
$mock->expects($this->once())
|
||||
->method('updateTimestamp')
|
||||
->willReturn(false);
|
||||
@ -156,3 +156,7 @@ class SessionHandlerProxyTest extends TestCase
|
||||
$this->proxy->updateTimestamp('id', 'data');
|
||||
}
|
||||
}
|
||||
|
||||
abstract class TestSessionHandler implements \SessionHandlerInterface, \SessionUpdateTimestampHandlerInterface
|
||||
{
|
||||
}
|
||||
|
@ -339,7 +339,7 @@ class MessengerPass implements CompilerPassInterface
|
||||
if ($container->findDefinition($messengerMiddlewareId)->isAbstract()) {
|
||||
$childDefinition = new ChildDefinition($messengerMiddlewareId);
|
||||
$childDefinition->setArguments($arguments);
|
||||
$container->setDefinition($messengerMiddlewareId = $busId.'.middleware.'.$id, $childDefinition);
|
||||
$container->setDefinition($messengerMiddlewareId = $busId.'.middleware.'.$id.'.'.ContainerBuilder::hash($arguments), $childDefinition);
|
||||
} elseif ($arguments) {
|
||||
throw new RuntimeException(sprintf('Invalid middleware factory "%s": a middleware factory must be an abstract definition.', $id));
|
||||
}
|
||||
|
@ -537,21 +537,35 @@ class MessengerPassTest extends TestCase
|
||||
|
||||
$container->setParameter($middlewareParameter = $fooBusId.'.middleware', [
|
||||
['id' => UselessMiddleware::class],
|
||||
['id' => 'middleware_with_factory', 'arguments' => ['index_0' => 'foo', 'bar']],
|
||||
['id' => 'middleware_with_factory', 'arguments' => $factoryChildMiddlewareArgs1 = ['index_0' => 'foo', 'bar']],
|
||||
['id' => 'middleware_with_factory', 'arguments' => $factoryChildMiddlewareArgs2 = ['index_0' => 'baz']],
|
||||
['id' => 'middleware_with_factory_using_default'],
|
||||
]);
|
||||
|
||||
(new MessengerPass())->process($container);
|
||||
(new ResolveChildDefinitionsPass())->process($container);
|
||||
|
||||
$this->assertTrue($container->hasDefinition($factoryChildMiddlewareId = $fooBusId.'.middleware.middleware_with_factory'));
|
||||
$this->assertTrue($container->hasDefinition(
|
||||
$factoryChildMiddlewareArgs1Id = $fooBusId.'.middleware.middleware_with_factory.'.ContainerBuilder::hash($factoryChildMiddlewareArgs1)
|
||||
));
|
||||
$this->assertEquals(
|
||||
['foo', 'bar'],
|
||||
$container->getDefinition($factoryChildMiddlewareId)->getArguments(),
|
||||
$container->getDefinition($factoryChildMiddlewareArgs1Id)->getArguments(),
|
||||
'parent default argument is overridden, and next ones appended'
|
||||
);
|
||||
|
||||
$this->assertTrue($container->hasDefinition($factoryWithDefaultChildMiddlewareId = $fooBusId.'.middleware.middleware_with_factory_using_default'));
|
||||
$this->assertTrue($container->hasDefinition(
|
||||
$factoryChildMiddlewareArgs2Id = $fooBusId.'.middleware.middleware_with_factory.'.ContainerBuilder::hash($factoryChildMiddlewareArgs2)
|
||||
));
|
||||
$this->assertEquals(
|
||||
['baz'],
|
||||
$container->getDefinition($factoryChildMiddlewareArgs2Id)->getArguments(),
|
||||
'parent default argument is overridden, and next ones appended'
|
||||
);
|
||||
|
||||
$this->assertTrue($container->hasDefinition(
|
||||
$factoryWithDefaultChildMiddlewareId = $fooBusId.'.middleware.middleware_with_factory_using_default.'.ContainerBuilder::hash([])
|
||||
));
|
||||
$this->assertEquals(
|
||||
['some_default'],
|
||||
$container->getDefinition($factoryWithDefaultChildMiddlewareId)->getArguments(),
|
||||
@ -560,7 +574,8 @@ class MessengerPassTest extends TestCase
|
||||
|
||||
$this->assertEquals([
|
||||
new Reference(UselessMiddleware::class),
|
||||
new Reference($factoryChildMiddlewareId),
|
||||
new Reference($factoryChildMiddlewareArgs1Id),
|
||||
new Reference($factoryChildMiddlewareArgs2Id),
|
||||
new Reference($factoryWithDefaultChildMiddlewareId),
|
||||
], $container->getDefinition($fooBusId)->getArgument(0)->getValues());
|
||||
$this->assertFalse($container->hasParameter($middlewareParameter));
|
||||
|
@ -12,6 +12,7 @@
|
||||
namespace Symfony\Component\Mime\Test\Constraint;
|
||||
|
||||
use PHPUnit\Framework\Constraint\Constraint;
|
||||
use Symfony\Component\Mime\Header\UnstructuredHeader;
|
||||
use Symfony\Component\Mime\RawMessage;
|
||||
|
||||
final class EmailHeaderSame extends Constraint
|
||||
@ -44,7 +45,7 @@ final class EmailHeaderSame extends Constraint
|
||||
throw new \LogicException('Unable to test a message header on a RawMessage instance.');
|
||||
}
|
||||
|
||||
return $this->expectedValue === $message->getHeaders()->get($this->headerName)->getBodyAsString();
|
||||
return $this->expectedValue === $this->getHeaderValue($message);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -54,6 +55,13 @@ final class EmailHeaderSame extends Constraint
|
||||
*/
|
||||
protected function failureDescription($message): string
|
||||
{
|
||||
return sprintf('the Email %s (value is %s)', $this->toString(), $message->getHeaders()->get($this->headerName)->getBodyAsString());
|
||||
return sprintf('the Email %s (value is %s)', $this->toString(), $this->getHeaderValue($message));
|
||||
}
|
||||
|
||||
private function getHeaderValue($message): string
|
||||
{
|
||||
$header = $message->getHeaders()->get($this->headerName);
|
||||
|
||||
return $header instanceof UnstructuredHeader ? $header->getValue() : $header->getBodyAsString();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user