Commit cd7841b9 authored by webchick's avatar webchick

Issue #2122693 by jayeshanandani, YesCT, sun, alexpott, BMDan: Installer does...

Issue #2122693 by jayeshanandani, YesCT, sun, alexpott, BMDan: Installer does not work on a completely empty settings.php.
parent 7d7b24fe
......@@ -211,6 +211,10 @@ function drupal_rewrite_settings($settings = array(), $settings_file = NULL) {
}
$contents = file_get_contents(DRUPAL_ROOT . '/' . $settings_file);
if ($contents !== FALSE) {
// Initialize the contents for the settings.php file if it is empty.
if (trim($contents) === '') {
$contents = "<?php\n";
}
// Step through each token in settings.php and replace any variables that
// are in the passed-in array.
$buffer = '';
......
<?php
/**
* @file
* Contains \Drupal\system\Tests\Installer\InstallerEmptySettingsTest.
*/
namespace Drupal\system\Tests\Installer;
use Drupal\simpletest\InstallerTestBase;
/**
* Tests the installer with empty settings file.
*/
class InstallerEmptySettingsTest extends InstallerTestBase {
/**
* {@inheritdoc}
*/
public static function getInfo() {
return array(
'name' => 'Installer Empty Settings Test',
'description' => 'Tests the installer with empty settings file.',
'group' => 'Installer',
);
}
/**
* {@inheritdoc}
*/
protected function setUp() {
// Create an empty settings.php file.
touch($this->siteDirectory . '/settings.php');
parent::setUp();
}
/**
* Verifies that installation succeeded.
*/
public function testInstaller() {
$this->assertUrl('user/1');
$this->assertResponse(200);
}
}
......@@ -110,5 +110,26 @@ function testDrupalRewriteSettings() {
drupal_rewrite_settings($test['settings'], $filename);
$this->assertEqual(file_get_contents(DRUPAL_ROOT . '/' . $filename), "<?php\n" . $test['expected'] . "\n");
}
// Test that <?php gets added to the start of an empty settings file.
// Set the array of settings that will be written to the file.
$test = array(
'settings' => array(
'no_index' => (object) array(
'value' => TRUE,
'required' => TRUE,
),
),
'expected' => '$no_index = true;'
);
// Make an empty file.
$filename = settings()->get('file_public_path', conf_path() . '/files') . '/mock_settings.php';
file_put_contents(DRUPAL_ROOT . '/' . $filename, "");
// Write the setting to the file.
drupal_rewrite_settings($test['settings'], $filename);
// Check that the result is just the php opening tag and the settings.
$this->assertEqual(file_get_contents(DRUPAL_ROOT . '/' . $filename), "<?php\n" . $test['expected'] . "\n");
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment