From 687f6c8e8251e54e45e3a6df8d04ca2a8b9a5a77 Mon Sep 17 00:00:00 2001 From: Damien Harper Date: Sun, 7 Aug 2022 17:42:55 +0200 Subject: [PATCH] Updated deps (#321) * Updated deps + fixed references to self::$container * Fixed login in tests * Added a composer shortcut to update dev tools: `composer update-tools` * Bring back support to Sf4.4 to Sf6.x --- composer.json | 11 ++-- .../packages/{ => sf4_5}/framework.yaml | 2 +- tests/App/config/packages/sf6/framework.yaml | 7 +++ tests/Console/ConsoleUserProviderTest.php | 10 +++- tests/Controller/ViewerControllerTest.php | 54 +++++++++++++------ tests/User/UserProviderTest.php | 27 ++++++++-- 6 files changed, 85 insertions(+), 26 deletions(-) rename tests/App/config/packages/{ => sf4_5}/framework.yaml (68%) create mode 100644 tests/App/config/packages/sf6/framework.yaml diff --git a/composer.json b/composer.json index 6ff444e7..16caa6b2 100644 --- a/composer.json +++ b/composer.json @@ -43,10 +43,10 @@ "matthiasnoback/symfony-dependency-injection-test": "^3.1|^4.0", "nyholm/symfony-bundle-test": "1.x-dev", "phpunit/phpunit": "^8.0|^9.0", - "symfony/browser-kit": "^4.0|^5.1", - "symfony/css-selector": "^5.1", - "symfony/framework-bundle": "^4.4|^5.0", - "symfony/var-dumper": "^4.0|^5.0", + "symfony/browser-kit": "^4.0|^5.1|^6.0", + "symfony/css-selector": "^5.1|^6.0", + "symfony/framework-bundle": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.0|^5.0|^6.0", "symfony/webpack-encore-bundle": "^1.12", "twig/extensions": "^1.5" }, @@ -60,7 +60,8 @@ "phpstan": "tools/phpstan/vendor/bin/phpstan --ansi analyse src", "setup44": "SYMFONY_REQUIRE='^4.4' composer update --prefer-stable", "setup54": "SYMFONY_REQUIRE='^5.4' composer update --prefer-stable", - "rector": "tools/rector/vendor/bin/rector process src" + "rector": "tools/rector/vendor/bin/rector process src", + "update-tools": "composer update --working-dir=tools/php-cs-fixer ; composer update --working-dir=tools/phpstan ; composer update --working-dir=tools/rector" }, "config": { "sort-packages": true, diff --git a/tests/App/config/packages/framework.yaml b/tests/App/config/packages/sf4_5/framework.yaml similarity index 68% rename from tests/App/config/packages/framework.yaml rename to tests/App/config/packages/sf4_5/framework.yaml index 6b3e43a9..a0d1d8fb 100644 --- a/tests/App/config/packages/framework.yaml +++ b/tests/App/config/packages/sf4_5/framework.yaml @@ -4,4 +4,4 @@ framework: router: utf8: true session: - storage_id: session.storage.mock_file \ No newline at end of file + storage_id: session.storage.mock_file diff --git a/tests/App/config/packages/sf6/framework.yaml b/tests/App/config/packages/sf6/framework.yaml new file mode 100644 index 00000000..5f908f76 --- /dev/null +++ b/tests/App/config/packages/sf6/framework.yaml @@ -0,0 +1,7 @@ +framework: + secret: '%env(APP_SECRET)%' + test: true + router: + utf8: true + session: + storage_factory_id: session.storage.factory.mock_file diff --git a/tests/Console/ConsoleUserProviderTest.php b/tests/Console/ConsoleUserProviderTest.php index a9a920e0..01da3814 100644 --- a/tests/Console/ConsoleUserProviderTest.php +++ b/tests/Console/ConsoleUserProviderTest.php @@ -73,6 +73,14 @@ protected function getBundleClass() private function createAndInitDoctrineProvider(): void { - $this->provider = self::$container->get(DoctrineProvider::class); + // TODO: remove following code when min Symfony version supported is >= 5 + if (Kernel::MAJOR_VERSION < 5) { + $this->provider = self::$container->get(DoctrineProvider::class); + + return; + } + + // Symfony >= 5.x only + $this->provider = self::getContainer()->get(DoctrineProvider::class); } } diff --git a/tests/Controller/ViewerControllerTest.php b/tests/Controller/ViewerControllerTest.php index 90d536f2..f3fe39c8 100644 --- a/tests/Controller/ViewerControllerTest.php +++ b/tests/Controller/ViewerControllerTest.php @@ -306,7 +306,34 @@ public function testShowTransactionHistoryWithRoleNotGrantedForAuthorAuditViewin private function login(array $roles = []): void { - $session = self::$container->get('session'); + // TODO: remove following code when min Symfony version supported is >= 5 + if (Kernel::MAJOR_VERSION < 5) { + $session = self::$container->get('session'); + $class = class_exists(User::class) ? User::class : InMemoryUser::class; + $user = new $class( + 'dark.vador', + '$argon2id$v=19$m=65536,t=4,p=1$g1yZVCS0GJ32k2fFqBBtqw$359jLODXkhqVWtD/rf+CjiNz9r/kIvhJlenPBnW851Y', + $roles + ); + $firewallName = 'main'; + + if (6 === Kernel::MAJOR_VERSION) { + $token = new UsernamePasswordToken($user, $firewallName, $user->getRoles()); + } else { + $token = new UsernamePasswordToken($user, null, $firewallName, $user->getRoles()); + } + $session->set('_security_'.$firewallName, serialize($token)); + $session->save(); + + self::$container->get('security.token_storage')->setToken($token); + + $cookie = new Cookie($session->getName(), $session->getId()); + $this->client->getCookieJar()->set($cookie); + + return; + } + + // Symfony >= 5.x only $class = class_exists(User::class) ? User::class : InMemoryUser::class; $user = new $class( 'dark.vador', @@ -314,24 +341,19 @@ private function login(array $roles = []): void $roles ); - $firewallName = 'main'; - - if (6 === Kernel::MAJOR_VERSION) { - $token = new UsernamePasswordToken($user, $firewallName, $user->getRoles()); - } else { - $token = new UsernamePasswordToken($user, null, $firewallName, $user->getRoles()); - } - $session->set('_security_'.$firewallName, serialize($token)); - $session->save(); - - self::$container->get('security.token_storage')->setToken($token); - - $cookie = new Cookie($session->getName(), $session->getId()); - $this->client->getCookieJar()->set($cookie); + $this->client->loginUser($user); } private function createAndInitDoctrineProvider(): void { - $this->provider = self::$container->get(DoctrineProvider::class); + // TODO: remove following code when min Symfony version supported is >= 5 + if (Kernel::MAJOR_VERSION < 5) { + $this->provider = self::$container->get(DoctrineProvider::class); + + return; + } + + // Symfony >= 5.x only + $this->provider = self::getContainer()->get(DoctrineProvider::class); } } diff --git a/tests/User/UserProviderTest.php b/tests/User/UserProviderTest.php index 4db84831..00f9b8bb 100644 --- a/tests/User/UserProviderTest.php +++ b/tests/User/UserProviderTest.php @@ -62,7 +62,14 @@ public function testBlameUser(): void } else { $token = new UsernamePasswordToken($user, null, $firewallName, $user->getRoles()); } - self::$container->get('security.token_storage')->setToken($token); + + // TODO: remove following code when min Symfony version supported is >= 5 + if (Kernel::MAJOR_VERSION < 5) { + self::$container->get('security.token_storage')->setToken($token); + } else { + self::getContainer()->get('security.token_storage')->setToken($token); + } + $post = new Post(); $post ->setTitle('Blameable post') @@ -95,7 +102,13 @@ public function testBlameImpersonator(): void $token = new SwitchUserToken($secondUser, null, $firewallName, $secondUser->getRoles(), $userToken); } - self::$container->get('security.token_storage')->setToken($token); + // TODO: remove following code when min Symfony version supported is >= 5 + if (Kernel::MAJOR_VERSION < 5) { + self::$container->get('security.token_storage')->setToken($token); + } else { + self::getContainer()->get('security.token_storage')->setToken($token); + } + $post = new Post(); $post ->setTitle('Blameable post') @@ -116,7 +129,15 @@ protected function getBundleClass() private function createAndInitDoctrineProvider(): void { - $this->provider = self::$container->get(DoctrineProvider::class); + // TODO: remove following code when min Symfony version supported is >= 5 + if (Kernel::MAJOR_VERSION < 5) { + $this->provider = self::$container->get(DoctrineProvider::class); + + return; + } + + // Symfony >= 5.x only + $this->provider = self::getContainer()->get(DoctrineProvider::class); } private function createUser(string $username): UserInterface