class InstallTest

Same name in this branch
  1. 10 core/modules/system/tests/src/Kernel/Module/InstallTest.php \Drupal\Tests\system\Kernel\Module\InstallTest
Same name in other branches
  1. 9 core/modules/system/tests/src/Functional/Module/InstallTest.php \Drupal\Tests\system\Functional\Module\InstallTest
  2. 9 core/tests/Drupal/BuildTests/TestSiteApplication/InstallTest.php \Drupal\BuildTests\TestSiteApplication\InstallTest
  3. 8.9.x core/modules/system/tests/src/Functional/Module/InstallTest.php \Drupal\Tests\system\Functional\Module\InstallTest
  4. 11.x core/modules/system/tests/src/Kernel/Module/InstallTest.php \Drupal\Tests\system\Kernel\Module\InstallTest
  5. 11.x core/tests/Drupal/BuildTests/TestSiteApplication/InstallTest.php \Drupal\BuildTests\TestSiteApplication\InstallTest

@group Build @group TestSiteApplication

Hierarchy

Expanded class hierarchy of InstallTest

File

core/tests/Drupal/BuildTests/TestSiteApplication/InstallTest.php, line 15

Namespace

Drupal\BuildTests\TestSiteApplication
View source
class InstallTest extends BuildTestBase {
    public function testInstall() : void {
        $this->copyCodebase();
        $fs = new Filesystem();
        $fs->chmod($this->getWorkspaceDirectory() . '/sites/default', 0700, 00);
        // Composer tells you stuff in error output.
        $this->executeCommand('COMPOSER_DISCARD_CHANGES=true composer install --no-interaction');
        $this->assertErrorOutputContains('Generating autoload files');
        // We have to stand up the server first so we can know the port number to
        // pass along to the install command.
        $this->standUpServer();
        $php_finder = new PhpExecutableFinder();
        $install_command = [
            $php_finder->find(),
            './core/scripts/test-site.php',
            'install',
            '--base-url=http://localhost:' . $this->getPortNumber(),
            '--db-url=sqlite://localhost/foo.sqlite',
            '--install-profile=minimal',
            '--json',
        ];
        $this->assertNotEmpty($output_json = $this->executeCommand(implode(' ', $install_command))
            ->getOutput());
        $this->assertCommandSuccessful();
        $connection_details = json_decode($output_json, TRUE);
        foreach ([
            'db_prefix',
            'user_agent',
            'site_path',
        ] as $key) {
            $this->assertArrayHasKey($key, $connection_details);
        }
        // Visit paths with expectations.
        $this->visit();
        $this->assertDrupalVisit();
    }

}

Members

Title Sort descending Modifiers Object type Summary Overrides
BuildTestBase::$commandProcess private property The most recent command process.
BuildTestBase::$destroyBuild protected property Default to destroying build artifacts after a test finishes.
BuildTestBase::$hostName private static property Our native host name, used by PHP when it starts up the server.
BuildTestBase::$hostPort private property Port that will be tested.
BuildTestBase::$mink private property The Mink session manager.
BuildTestBase::$phpFinder private property The PHP executable finder.
BuildTestBase::$portLocks private property A list of ports used by the test.
BuildTestBase::$serverDocroot private property The docroot for the server process.
BuildTestBase::$serverProcess private property The process that's running the HTTP server.
BuildTestBase::$workspaceDir private property The working directory where this test will manipulate files.
BuildTestBase::assertCommandExitCode public function Asserts that the last command returned the specified exit code.
BuildTestBase::assertCommandOutputContains public function Assert that text is present in the output of the most recent command.
BuildTestBase::assertCommandSuccessful public function Asserts that the last command ran without error.
BuildTestBase::assertDrupalVisit public function Helper function to assert that the last visit was a Drupal site.
BuildTestBase::assertErrorOutputContains public function Assert that text is present in the error output of the most recent command.
BuildTestBase::assertErrorOutputNotContains public function Assert text is not present in the error output of the most recent command.
BuildTestBase::checkPortIsAvailable protected function Checks whether a port is available.
BuildTestBase::copyCodebase public function Copy the current working codebase into a workspace.
BuildTestBase::executeCommand public function Run a command.
BuildTestBase::findAvailablePort protected function Discover an available port number.
BuildTestBase::getCodebaseFinder public function Get a default Finder object for a Drupal codebase.
BuildTestBase::getComposerRoot public function Gets the path to the Composer root directory.
BuildTestBase::getDrupalRoot public function Get the root path of this Drupal codebase.
BuildTestBase::getDrupalRootStatic public static function Get the root path of this Drupal codebase.
BuildTestBase::getMink public function Get the Mink instance.
BuildTestBase::getPortNumber protected function Get the port number for requests.
BuildTestBase::getWorkingPath protected function Get the working directory within the workspace, creating if necessary.
BuildTestBase::getWorkingPathDrupalRoot public function Gets the working path for Drupal core.
BuildTestBase::getWorkspaceDirectory public function Full path to the workspace where this test can build.
BuildTestBase::getWorkspaceDrupalRoot public function Gets the path to Drupal root in the workspace directory.
BuildTestBase::initMink protected function Set up the Mink session manager.
BuildTestBase::instantiateServer protected function Do the work of making a server process.
BuildTestBase::setUp protected function 3
BuildTestBase::standUpServer protected function Makes a local test server using PHP's internal HTTP server.
BuildTestBase::stopServer protected function Stop the HTTP server, zero out all necessary variables.
BuildTestBase::tearDown protected function 1
BuildTestBase::visit public function Visit a URI on the HTTP server.
InstallTest::testInstall public function
PhpUnitWarnings::$deprecationWarnings private static property Deprecation warnings from PHPUnit to raise with @trigger_error().
PhpUnitWarnings::addWarning public function Converts PHPUnit deprecation warnings to E_USER_DEPRECATED.
RequiresComposerTrait::requiresComposer public static function @beforeClass

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.