1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?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 $defaultTheme = 'stark';
- /**
- * {@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');
- }
- }
|