Mercurial > hg > isophonics-drupal-site
diff core/tests/Drupal/FunctionalTests/Installer/InstallerExistingConfigSyncDirectoryProfileHookInstall.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/tests/Drupal/FunctionalTests/Installer/InstallerExistingConfigSyncDirectoryProfileHookInstall.php Thu Feb 28 13:21:36 2019 +0000 @@ -0,0 +1,93 @@ +<?php + +namespace Drupal\FunctionalTests\Installer; + +/** + * Verifies that profiles with hook_install() can't be installed from config. + * + * @group Installer + */ +class InstallerExistingConfigSyncDirectoryProfileHookInstall extends InstallerExistingConfigTestBase { + + /** + * {@inheritdoc} + */ + protected $profile = 'testing_config_install_multilingual'; + + /** + * {@inheritdoc} + */ + protected $existingSyncDirectory = TRUE; + + /** + * {@inheritdoc} + */ + protected function visitInstaller() { + // Create an .install file with a hook_install() implementation. + $path = $this->siteDirectory . '/profiles/' . $this->profile; + $contents = <<<EOF +<?php + +function testing_config_install_multilingual_install() { +} +EOF; + file_put_contents("$path/{$this->profile}.install", $contents); + parent::visitInstaller(); + } + + /** + * Installer step: Select installation profile. + */ + protected function setUpProfile() { + // This is the form we are testing so wait until the test method to do + // assertions. + return; + } + + /** + * Installer step: Requirements problem. + */ + protected function setUpRequirementsProblem() { + // This form will never be reached. + return; + } + + /** + * Installer step: Configure settings. + */ + protected function setUpSettings() { + // This form will never be reached. + return; + } + + /** + * Final installer step: Configure site. + */ + protected function setUpSite() { + // This form will never be reached. + return; + } + + /** + * {@inheritdoc} + */ + protected function getConfigTarball() { + return __DIR__ . '/../../../fixtures/config_install/multilingual.tar.gz'; + } + + /** + * Tests installing from config is not available due to hook_INSTALL(). + */ + public function testConfigSync() { + $this->assertSession()->titleEquals('Select an installation profile | Drupal'); + $this->assertSession()->responseNotContains('Use existing configuration'); + + // Remove the install hook and the option to install from existing + // configuration will be available. + unlink("{$this->siteDirectory}/profiles/{$this->profile}/{$this->profile}.install"); + $this->getSession()->reload(); + $this->assertSession()->titleEquals('Select an installation profile | Drupal'); + $this->assertSession()->responseContains('Use existing configuration'); + } + +}