core/modules/migrate_drupal_ui/tests/src/FunctionalJavascript/SettingsTest.php
View source
<?php
declare (strict_types=1);
namespace Drupal\Tests\migrate_drupal_ui\FunctionalJavascript;
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
class SettingsTest extends WebDriverTestBase {
protected $defaultTheme = 'stark';
protected static $modules = [
'migrate',
'migrate_drupal',
'migrate_drupal_ui',
];
protected function setUp() : void {
parent::setUp();
$this
->drupalLogin($this->rootUser);
}
public function testCredentialForm($source_connection, $version, array $manual, array $databases, $expected_source_connection) {
$migrate_file_public_path = '/var/www/drupal7/sites/default/files';
$migrate_file_private_path = '/var/www/drupal7/sites/default/files/private';
$settings['settings']['migrate_source_version'] = (object) [
'value' => $version,
'required' => TRUE,
];
$settings['settings']['migrate_source_connection'] = (object) [
'value' => $source_connection,
'required' => TRUE,
];
$settings['settings']['migrate_file_public_path'] = (object) [
'value' => $migrate_file_public_path,
'required' => TRUE,
];
$settings['settings']['migrate_file_private_path'] = (object) [
'value' => $migrate_file_private_path,
'required' => TRUE,
];
foreach ($databases as $key => $value) {
$settings['databases'][$key]['default'] = (object) [
'value' => $value['default'],
'required' => TRUE,
];
}
$this
->writeSettings($settings);
$edits = [];
if (!empty($manual)) {
$edit = [];
$driver = 'Drupal\\mysql\\Driver\\Database\\mysql';
$edit[$driver]['host'] = $manual['host'];
$edit[$driver]['database'] = $manual['database'];
$edit[$driver]['username'] = $manual['username'];
$edit[$driver]['password'] = $manual['password'];
$edits = $this
->translatePostValues($edit);
}
$this
->drupalGet('/upgrade');
$this
->submitForm([], 'Continue');
$session = $this
->assertSession();
if (empty($databases)) {
$session
->fieldNotExists('source_connection');
}
else {
$session
->fieldExists('source_connection');
}
$this
->submitForm($edits, 'Review upgrade');
$session
->responseContains('Failed to read from Document root');
$session
->fieldValueEquals('version', $version);
if (empty($manual)) {
$session
->fieldValueEquals('source_connection', $expected_source_connection);
}
else {
$session
->fieldValueEquals('edit-drupalmysqldriverdatabasemysql-host', $manual['host']);
$session
->fieldValueEquals('edit-drupalmysqldriverdatabasemysql-database', $manual['database']);
$session
->fieldValueEquals('edit-drupalmysqldriverdatabasemysql-username', $manual['username']);
}
$session
->fieldValueEquals('d6_source_base_path', $migrate_file_public_path);
$session
->fieldValueEquals('source_base_path', $migrate_file_public_path);
$session
->fieldValueEquals('source_private_file_path', $migrate_file_private_path);
}
public static function providerTestCredentialForm() {
return [
'no values in settings.php' => [
'source_connection' => "",
'version' => '7',
'manual' => [
'host' => '172.18.0.2',
'database' => 'drupal7',
'username' => 'kate',
'password' => 'pwd',
],
'databases' => [],
'expected_source_connection' => '',
],
'single database in settings, migrate' => [
'source_connection' => 'migrate',
'version' => '7',
'manual' => [],
'databases' => [
'migrate' => [
'default' => [
'database' => 'drupal7',
'username' => 'user',
'password' => 'pwd',
'prefix' => 'test',
'host' => '172.18.0.3',
'port' => '3307',
'namespace' => 'Drupal\\mysql\\Driver\\Database\\mysql',
'driver' => 'mysql',
],
],
],
'expected_source_connection' => 'migrate',
],
'migrate_source_connection not set' => [
'source_connection' => '',
'version' => '7',
'manual' => [],
'databases' => [
'migrate' => [
'default' => [
'database' => 'drupal7',
'username' => 'user',
'password' => 'pwd',
'prefix' => 'test',
'host' => '172.18.0.3',
'port' => '3307',
'namespace' => 'Drupal\\mysql\\Driver\\Database\\mysql',
'driver' => 'mysql',
],
],
],
'expected_source_connection' => 'migrate',
],
'single database in settings, legacy' => [
'source_connection' => 'legacy',
'version' => '6',
'manual' => [],
'databases' => [
'legacy' => [
'default' => [
'database' => 'drupal6',
'username' => 'user',
'password' => 'pwd',
'prefix' => 'test',
'host' => '172.18.0.6',
'port' => '3307',
'namespace' => 'Drupal\\mysql\\Driver\\Database\\mysql',
'driver' => 'mysql',
],
],
],
'expected_source_connection' => 'legacy',
],
'two databases in settings' => [
'source_connection' => 'source2',
'version' => '7',
'manual' => [],
'databases' => [
'migrate' => [
'default' => [
'database' => 'drupal7',
'username' => 'user',
'password' => 'pwd',
'prefix' => 'test',
'host' => '172.18.0.3',
'port' => '3307',
'namespace' => 'Drupal\\mysql\\Driver\\Database\\mysql',
'driver' => 'mysql',
],
],
'legacy' => [
'default' => [
'database' => 'site',
'username' => 'user',
'password' => 'pwd',
'prefix' => 'test',
'host' => '172.18.0.2',
'port' => '3307',
'namespace' => 'Drupal\\mysql\\Driver\\Database\\mysql',
'driver' => 'mysql',
],
],
],
'expected_source_connection' => 'migrate',
],
'database in settings, but use manual' => [
'source_connection' => '',
'version' => '7',
'manual' => [
'host' => '172.18.0.2',
'database' => 'drupal7',
'username' => 'kate',
'password' => 'pwd',
],
'databases' => [
'legacy' => [
'default' => [
'database' => 'site',
'username' => 'user',
'password' => 'pwd',
'prefix' => 'test',
'host' => '172.18.0.2',
'port' => '3307',
'namespace' => 'Drupal\\mysql\\Driver\\Database\\mysql',
'driver' => 'mysql',
],
],
],
'expected_source_connection' => '',
],
];
}
}