Chris@16
|
1 <?php
|
Chris@16
|
2
|
Chris@16
|
3 namespace Drupal\FunctionalTests\Installer;
|
Chris@16
|
4
|
Chris@16
|
5 use Drupal\Core\Database\Database;
|
Chris@16
|
6
|
Chris@16
|
7 /**
|
Chris@16
|
8 * Tests the installer with an existing settings file with database connection
|
Chris@16
|
9 * info.
|
Chris@16
|
10 *
|
Chris@16
|
11 * @group Installer
|
Chris@16
|
12 */
|
Chris@16
|
13 class InstallerExistingDatabaseSettingsTest extends InstallerTestBase {
|
Chris@16
|
14
|
Chris@16
|
15 /**
|
Chris@16
|
16 * {@inheritdoc}
|
Chris@16
|
17 */
|
Chris@16
|
18 protected function prepareEnvironment() {
|
Chris@16
|
19 parent::prepareEnvironment();
|
Chris@16
|
20 // Pre-configure database credentials in settings.php.
|
Chris@16
|
21 $connection_info = Database::getConnectionInfo();
|
Chris@16
|
22 unset($connection_info['default']['pdo']);
|
Chris@16
|
23 unset($connection_info['default']['init_commands']);
|
Chris@16
|
24
|
Chris@16
|
25 $this->settings['databases']['default'] = (object) [
|
Chris@16
|
26 'value' => $connection_info,
|
Chris@16
|
27 'required' => TRUE,
|
Chris@16
|
28 ];
|
Chris@16
|
29 }
|
Chris@16
|
30
|
Chris@16
|
31 /**
|
Chris@16
|
32 * {@inheritdoc}
|
Chris@16
|
33 *
|
Chris@16
|
34 * @todo The database settings form is not supposed to appear if settings.php
|
Chris@16
|
35 * contains a valid database connection already (but e.g. no config
|
Chris@16
|
36 * directories yet).
|
Chris@16
|
37 */
|
Chris@16
|
38 protected function setUpSettings() {
|
Chris@16
|
39 // All database settings should be pre-configured, except password.
|
Chris@16
|
40 $values = $this->parameters['forms']['install_settings_form'];
|
Chris@16
|
41 $driver = $values['driver'];
|
Chris@16
|
42 $edit = [];
|
Chris@16
|
43 if (isset($values[$driver]['password']) && $values[$driver]['password'] !== '') {
|
Chris@16
|
44 $edit = $this->translatePostValues([
|
Chris@16
|
45 $driver => [
|
Chris@16
|
46 'password' => $values[$driver]['password'],
|
Chris@16
|
47 ],
|
Chris@16
|
48 ]);
|
Chris@16
|
49 }
|
Chris@16
|
50 $this->drupalPostForm(NULL, $edit, $this->translations['Save and continue']);
|
Chris@16
|
51 }
|
Chris@16
|
52
|
Chris@16
|
53 /**
|
Chris@16
|
54 * Verifies that installation succeeded.
|
Chris@16
|
55 */
|
Chris@16
|
56 public function testInstaller() {
|
Chris@16
|
57 $this->assertUrl('user/1');
|
Chris@16
|
58 $this->assertResponse(200);
|
Chris@16
|
59 }
|
Chris@16
|
60
|
Chris@16
|
61 }
|