diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc index b4c731da3ca321dc97e89fd13b5d4cf718da8639..5cc1236c1b95ec00d6e326be2bb70cb0719adc7e 100644 --- a/core/includes/install.core.inc +++ b/core/includes/install.core.inc @@ -135,6 +135,9 @@ function install_drupal($class_loader, $settings = []) { $state = $install_state; if (!empty($install_state['installation_finished'])) { unset($GLOBALS['install_state']); + // If installation is finished ensure any further container rebuilds do not + // use the installer's service provider. + unset($GLOBALS['conf']['container_service_providers']['InstallerServiceProvider']); } // All available tasks for this page request are now complete. Interactive diff --git a/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php b/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php index 38e610c3b56611a7546dd66a764551c2066b60ff..2e8562b3f158e61f82a7ce16f5d10c90dedf0b16 100644 --- a/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php +++ b/core/tests/Drupal/FunctionalTests/BrowserTestBaseTest.php @@ -639,4 +639,13 @@ public function testGetDefaultDriveInstance() { $this->assertEquals([NULL, ['key1' => ['key2' => ['key3' => 3, 'key3.1' => 3.1]]]], $this->minkDefaultDriverArgs); } + /** + * Ensures we can't access modules we shouldn't be able to after install. + */ + public function testProfileModules() { + $this->setExpectedException(\InvalidArgumentException::class, 'The module demo_umami_content does not exist.'); + $this->assertFileExists('core/profiles/demo_umami/modules/demo_umami_content/demo_umami_content.info.yml'); + \Drupal::service('extension.list.module')->getPathname('demo_umami_content'); + } + } diff --git a/core/tests/Drupal/KernelTests/KernelTestBaseTest.php b/core/tests/Drupal/KernelTests/KernelTestBaseTest.php index 2ba85e92e15008c9aad2604dfbc7263e103d7c8a..f809b91532cafeaeb5cab7372d0b9a338d399254 100644 --- a/core/tests/Drupal/KernelTests/KernelTestBaseTest.php +++ b/core/tests/Drupal/KernelTests/KernelTestBaseTest.php @@ -306,4 +306,15 @@ protected function tearDown() { } } + /** + * Ensures KernelTestBase tests can access modules in profiles. + */ + public function testProfileModules() { + $this->assertFileExists('core/profiles/demo_umami/modules/demo_umami_content/demo_umami_content.info.yml'); + $this->assertSame( + 'core/profiles/demo_umami/modules/demo_umami_content/demo_umami_content.info.yml', + \Drupal::service('extension.list.module')->getPathname('demo_umami_content') + ); + } + }