$this->
assertFileDoesNotExist($autoloader);
$this->
executeCommand("COMPOSER_HOME=
$composer_home COMPOSER_ROOT_VERSION=
$simulated_core_version composer create-project --no-ansi
$project testproject
$simulated_core_version -vvv --repository
$repository_path"
);
$this->
assertCommandSuccessful();
// Check the output of the project creation for the absence of warnings
// about any non-allowed composer plugins.
// Note: There are different warnings for unallowed composer plugins
// depending on running in non-interactive mode or not. It seems the Drupal
// CI environment always forces composer commands to run in the
// non-interactive mode. The only thing these messages have in common is the
// following string.
$this->
assertErrorOutputNotContains('See https://getcomposer.org/allow-plugins'
);
// Ensure we used the project from our codebase.
$this->
assertErrorOutputContains("Installing
$project (
$simulated_core_version): Symlinking from
$package_dir"
);
// Ensure that we used drupal/core from our codebase. This probably means
// that drupal/core-recommended was added successfully by the project.
$this->
assertErrorOutputContains("Installing drupal/core (
$simulated_core_version): Symlinking from"
);
// Verify that there is an autoloader. This is written by the scaffold
// plugin, so its existence assures us that scaffolding happened.
$this->
assertFileExists($autoloader);
// Verify that the minimum stability in the installed composer.json file