diff --git a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php index 2565b56..0ef0a13 100644 --- a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php +++ b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php @@ -775,7 +775,8 @@ protected function setUp() { // Copy and prepare an actual settings.php, so as to resemble a regular // installation. // Not using File API; a potential error must trigger a PHP warning. - copy(DRUPAL_ROOT . '/sites/default/default.settings.php', DRUPAL_ROOT . '/' . $this->siteDirectory . '/settings.php'); + $directory = DRUPAL_ROOT . '/' . $this->siteDirectory; + copy(DRUPAL_ROOT . '/sites/default/default.settings.php', $directory . '/settings.php'); // All file system paths are created by System module during installation. // @see system_requirements() @@ -809,8 +810,12 @@ protected function setUp() { require_once DRUPAL_ROOT . '/core/includes/install.core.inc'; install_drupal($parameters); if (file_exists(DRUPAL_ROOT . '/sites/default/settings.testing.php')) { - copy(DRUPAL_ROOT . '/sites/default/settings.testing.php', DRUPAL_ROOT . '/' . $this->siteDirectory . '/settings.testing.php'); - file_put_contents(DRUPAL_ROOT . '/' . $this->siteDirectory . '/settings.php', "\n" . 'include DRUPAL_ROOT . \'/\' . $conf_path . \'/settings.testing.php\';' ."\n", FILE_APPEND); + drupal_verify_install_file($directory, FILE_WRITABLE, 'dir'); + drupal_verify_install_file($directory . '/settings.php', FILE_WRITABLE); + copy(DRUPAL_ROOT . '/sites/default/settings.testing.php', $directory . '/settings.testing.php'); + file_put_contents($directory . '/settings.php', "\n" . 'include DRUPAL_ROOT . \'/\' . $conf_path . \'/settings.testing.php\';' ."\n", FILE_APPEND); + drupal_verify_install_file($directory . '/settings.php', FILE_NOT_WRITABLE); + drupal_verify_install_file($directory, FILE_NOT_WRITABLE, 'dir'); } // Import new settings.php written by the installer. @@ -825,7 +830,7 @@ protected function setUp() { // directory has to be writable. // TestBase::restoreEnvironment() will delete the entire site directory. // Not using File API; a potential error must trigger a PHP warning. - chmod(DRUPAL_ROOT . '/' . $this->siteDirectory, 0777); + chmod($directory, 0777); $this->rebuildContainer();