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