diff --git a/core/modules/user/src/Controller/UserController.php b/core/modules/user/src/Controller/UserController.php index ca40039816d0212009a6617cc49f415f5c697a81..625969e295a0f85edaac8ab4cd661db6197cb114 100644 --- a/core/modules/user/src/Controller/UserController.php +++ b/core/modules/user/src/Controller/UserController.php @@ -283,8 +283,7 @@ public function userPage() { * Redirects users to their profile edit page. * * This controller assumes that it is only invoked for authenticated users. - * This is enforced for the 'user.well-known.change_password' route with the - * '_user_is_logged_in' requirement. + * This is typically enforced with the '_user_is_logged_in' requirement. * * @return \Symfony\Component\HttpFoundation\RedirectResponse * Returns a redirect to the profile edit form of the currently logged in diff --git a/core/modules/user/tests/src/Kernel/Controller/UserControllerTest.php b/core/modules/user/tests/src/Kernel/Controller/UserControllerTest.php new file mode 100644 index 0000000000000000000000000000000000000000..942a9f5b9a8c4d17269e45dbf3f2d4e47114a0e6 --- /dev/null +++ b/core/modules/user/tests/src/Kernel/Controller/UserControllerTest.php @@ -0,0 +1,76 @@ +<?php + +namespace Drupal\Tests\user\Kernel\Controller; + +use Drupal\Core\Url; +use Drupal\KernelTests\KernelTestBase; +use Drupal\Tests\user\Traits\UserCreationTrait; +use Drupal\user\Controller\UserController; + +/** + * Tests for the User controller. + * + * @group user + * + * @coversDefaultClass \Drupal\user\Controller\UserController + */ +class UserControllerTest extends KernelTestBase { + + use UserCreationTrait; + + /** + * The user controller. + * + * @var \Drupal\user\Controller\UserController + */ + protected $userController; + + /** + * The logged in user. + * + * @var \Drupal\user\UserInterface + */ + protected $user; + + /** + * {@inheritdoc} + */ + protected static $modules = [ + 'user', + ]; + + /** + * {@inheritDoc} + */ + protected function setUp(): void { + + parent::setUp(); + + $this->userController = UserController::create(\Drupal::getContainer()); + + // Create and log in a user. + $this->user = $this->setUpCurrentUser(); + + } + + /** + * Tests the redirection to a user edit page. + * + * @covers ::userEditPage + */ + public function testUserEditPage() { + + $response = $this->userController->userEditPage(); + + // Ensure the response is directed to the correct user edit page. + $edit_url = Url::fromRoute('entity.user.edit_form', [ + 'user' => $this->user->id(), + ])->setAbsolute() + ->toString(); + $this->assertEquals($edit_url, $response->getTargetUrl()); + + $this->assertEquals(301, $response->getStatusCode()); + + } + +} diff --git a/core/modules/user/user.routing.yml b/core/modules/user/user.routing.yml index 04a094abcfe5236ca326707a86d1ff7125d1c9e9..d4799178457168db49ecd638cfce70fd69fb0688 100644 --- a/core/modules/user/user.routing.yml +++ b/core/modules/user/user.routing.yml @@ -146,6 +146,14 @@ user.page: requirements: _user_is_logged_in: 'TRUE' +user.edit: + path: '/user/edit' + defaults: + _controller: '\Drupal\user\Controller\UserController::userEditPage' + _title: 'Edit account' + requirements: + _user_is_logged_in: 'TRUE' + user.login: path: '/user/login' defaults: