From ca417c04465592e66d2a2f1b43e11ab64d125ff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Tamarelle?= Date: Thu, 10 Oct 2024 12:15:05 +0200 Subject: [PATCH] Add integration test for RememberMe with pg connection --- .../DoctrineTokenProviderPostgresTest.php | 55 +++++++++++++++++++ .../RememberMe/DoctrineTokenProviderTest.php | 4 +- 2 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderPostgresTest.php diff --git a/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderPostgresTest.php b/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderPostgresTest.php new file mode 100644 index 0000000000000..866c1ce02d2e2 --- /dev/null +++ b/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderPostgresTest.php @@ -0,0 +1,55 @@ +setSchemaManagerFactory(new DefaultSchemaManagerFactory()); + } + + $connection = DriverManager::getConnection([ + 'driver' => 'pdo_pgsql', + 'host' => getenv('POSTGRES_HOST'), + 'user' => 'postgres', + 'password' => 'password', + ], $config); + $connection->{method_exists($connection, 'executeStatement') ? 'executeStatement' : 'executeUpdate'}(<<<'SQL' + DROP TABLE IF EXISTS rememberme_token; +SQL + ); + + $connection->{method_exists($connection, 'executeStatement') ? 'executeStatement' : 'executeUpdate'}(<<<'SQL' + CREATE TABLE rememberme_token ( + series CHAR(88) UNIQUE PRIMARY KEY NOT NULL, + value VARCHAR(88) NOT NULL, -- CHAR(88) adds spaces at the end + lastUsed TIMESTAMP NOT NULL, + class VARCHAR(100) NOT NULL, + username VARCHAR(200) NOT NULL + ); +SQL + ); + + return new DoctrineTokenProvider($connection); + } +} diff --git a/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderTest.php b/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderTest.php index eb387e424cd09..d210abc6452cb 100644 --- a/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderTest.php +++ b/src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderTest.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Security\RememberMe; +namespace Symfony\Bridge\Doctrine\Tests\Security\RememberMe; use Doctrine\DBAL\Configuration; use Doctrine\DBAL\DriverManager; @@ -121,7 +121,7 @@ public function testVerifyOutdatedTokenAfterParallelRequestFailsAfter60Seconds() /** * @return DoctrineTokenProvider */ - private function bootstrapProvider() + protected function bootstrapProvider() { $config = class_exists(ORMSetup::class) ? ORMSetup::createConfiguration(true) : new Configuration(); if (class_exists(DefaultSchemaManagerFactory::class)) {