function InstallTest::testInstall

Same name and namespace in other branches
  1. 9 core/tests/Drupal/BuildTests/TestSiteApplication/InstallTest.php \Drupal\BuildTests\TestSiteApplication\InstallTest::testInstall()
  2. 11.x core/tests/Drupal/BuildTests/TestSiteApplication/InstallTest.php \Drupal\BuildTests\TestSiteApplication\InstallTest::testInstall()

File

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

Class

InstallTest
@group Build @group TestSiteApplication

Namespace

Drupal\BuildTests\TestSiteApplication

Code

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();
}

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