From 487de770021bf622d5790db562ca625009189881 Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Wed, 20 May 2015 16:30:36 +0100
Subject: [PATCH] Issue #2112895 by willzyx, swentel, drunken monkey: Wrong
 redirection in admin/modules/uninstall/confirm if drupal is installed in a
 subdirectory

---
 core/modules/system/src/Form/ModulesUninstallConfirmForm.php | 2 +-
 core/modules/system/src/Tests/Module/UninstallTest.php       | 5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/core/modules/system/src/Form/ModulesUninstallConfirmForm.php b/core/modules/system/src/Form/ModulesUninstallConfirmForm.php
index 159959d5c335..5ee4adbe032d 100644
--- a/core/modules/system/src/Form/ModulesUninstallConfirmForm.php
+++ b/core/modules/system/src/Form/ModulesUninstallConfirmForm.php
@@ -135,7 +135,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
 
     // Prevent this page from showing when the module list is empty.
     if (empty($this->modules)) {
-      return new RedirectResponse('/admin/modules/uninstall');
+      return $this->redirect('system.modules_uninstall');
     }
 
     $data = system_rebuild_module_data();
diff --git a/core/modules/system/src/Tests/Module/UninstallTest.php b/core/modules/system/src/Tests/Module/UninstallTest.php
index 337258c67926..c7eb051c3857 100644
--- a/core/modules/system/src/Tests/Module/UninstallTest.php
+++ b/core/modules/system/src/Tests/Module/UninstallTest.php
@@ -106,5 +106,10 @@ function testUninstallPage() {
     // Make sure our unique cache entry is gone.
     $cached = \Drupal::cache()->get('uninstall_test');
     $this->assertFalse($cached, 'Cache entry not found');
+
+    // Make sure confirmation page is accessible only during uninstall process.
+    $this->drupalGet('admin/modules/uninstall/confirm');
+    $this->assertUrl('admin/modules/uninstall');
+    $this->assertTitle(t('Uninstall') . ' | Drupal');
   }
 }
-- 
GitLab