Skip to content
Snippets Groups Projects
Unverified Commit c8a7a589 authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3366862 by mondrake, daffie: Refactor...

Issue #3366862 by mondrake, daffie: Refactor InstallerNonDefaultDatabaseDriverTest to avoid asserting content of settings.php
parent bccd5a0c
Branches
No related tags found
2 merge requests!5423Draft: Resolve #3329907 "Test2",!3478Issue #3337882: Deleted menus are not removed from content type config
Pipeline #496715 passed with warnings
Pipeline: drupal

#496736

    Pipeline: drupal

    #496731

      Pipeline: drupal

      #496724

        ......@@ -63,25 +63,20 @@ public function testInstalled(): void {
        // Assert that in the settings.php the database connection array has the
        // correct values set.
        $contents = file_get_contents($this->container->getParameter('app.root') . '/' . $this->siteDirectory . '/settings.php');
        $this->assertStringContainsString("'namespace' => 'Drupal\\\\driver_test\\\\Driver\\\\Database\\\\{$this->testDriverName}',", $contents);
        $this->assertStringContainsString("'driver' => '{$this->testDriverName}',", $contents);
        $this->assertStringContainsString("'autoload' => 'core/modules/system/tests/modules/driver_test/src/Driver/Database/{$this->testDriverName}/',", $contents);
        $dependencies = "'dependencies' => " . PHP_EOL .
        " array (" . PHP_EOL .
        " 'mysql' => " . PHP_EOL .
        " array (" . PHP_EOL .
        " 'namespace' => 'Drupal\\\\mysql'," . PHP_EOL .
        " 'autoload' => 'core/modules/mysql/src/'," . PHP_EOL .
        " )," . PHP_EOL .
        " 'pgsql' => " . PHP_EOL .
        " array (" . PHP_EOL .
        " 'namespace' => 'Drupal\\\\pgsql'," . PHP_EOL .
        " 'autoload' => 'core/modules/pgsql/src/'," . PHP_EOL .
        " )," . PHP_EOL .
        " )," . PHP_EOL;
        $this->assertStringContainsString($dependencies, $contents);
        $installedDatabaseSettings = $this->getInstalledDatabaseSettings();
        $this->assertSame("Drupal\\driver_test\\Driver\\Database\\{$this->testDriverName}", $installedDatabaseSettings['default']['default']['namespace']);
        $this->assertSame($this->testDriverName, $installedDatabaseSettings['default']['default']['driver']);
        $this->assertSame("core/modules/system/tests/modules/driver_test/src/Driver/Database/{$this->testDriverName}/", $installedDatabaseSettings['default']['default']['autoload']);
        $this->assertEquals([
        'mysql' => [
        'namespace' => 'Drupal\\mysql',
        'autoload' => 'core/modules/mysql/src/',
        ],
        'pgsql' => [
        'namespace' => 'Drupal\\pgsql',
        'autoload' => 'core/modules/pgsql/src/',
        ],
        ], $installedDatabaseSettings['default']['default']['dependencies']);
        // Assert that the module "driver_test" and its dependencies have been
        // installed.
        ......@@ -99,4 +94,22 @@ public function testInstalled(): void {
        $this->assertSession()->elementTextContains('xpath', '//tr[@data-drupal-selector="edit-pgsql"]', "The following reason prevents PostgreSQL from being uninstalled: Required by: driver_test");
        }
        /**
        * Returns the databases setup from the SUT's settings.php.
        *
        * @return array<string,mixed>
        * The value of the $databases variable.
        */
        protected function getInstalledDatabaseSettings(): array {
        // The $app_root and $site_path variables are required by the settings.php
        // file to be parsed correctly. The $databases variable is set in the
        // included file, we need to inform PHPStan about that since PHPStan itself
        // is unable to determine it.
        $app_root = $this->container->getParameter('app.root');
        $site_path = $this->siteDirectory;
        include $app_root . '/' . $site_path . '/settings.php';
        assert(isset($databases));
        return $databases;
        }
        }
        0% Loading or .
        You are about to add 0 people to the discussion. Proceed with caution.
        Please register or to comment