public function AdminFunctionalityTest::testSourcesAdmin in Backup and Migrate 5.0.x
Same name and namespace in other branches
- 8.4 tests/src/Functional/AdminFunctionalityTest.php \Drupal\Tests\backup_migrate\Functional\AdminFunctionalityTest::testSourcesAdmin()
Make sure the 'sources' system works correctly.
File
- tests/
src/ Functional/ AdminFunctionalityTest.php, line 156
Class
- AdminFunctionalityTest
- Checks if admin functionality works correctly.
Namespace
Drupal\Tests\backup_migrate\FunctionalCode
public function testSourcesAdmin() {
// Load the source page.
$this
->drupalGet('admin/config/development/backup_migrate/settings/source');
$session = $this
->assertSession();
$session
->statusCodeEquals(200);
$session
->pageTextContains('Backup Source');
$session
->pageTextContains('Default Drupal Database');
$session
->pageTextContains('default_db');
$session
->pageTextContains('Default Database');
$session
->pageTextContains('entire_site');
$session
->pageTextContains('Entire Site');
$session
->pageTextContains('Private Files Directory');
$session
->pageTextContains('private_files');
$session
->pageTextContains('Public Files');
// @todo Confirm the table has four records.
// Load the add source form.
$this
->drupalGet('admin/config/development/backup_migrate/settings/source/add');
$session = $this
->assertSession();
$session
->statusCodeEquals(200);
$session
->pageTextContains('Add Backup Source');
$session
->fieldExists('label');
$session
->fieldExists('type');
$session
->buttonExists('Save and edit');
// Create a new source of type File Directory.
$edit = [
'label' => 'Test FileDirectory source',
'id' => 'test_filedirectory_source',
'type' => 'FileDirectory',
];
$this
->submitForm($edit, 'Save and edit');
// This should load a new version of the form with the directory filled in.
$session = $this
->assertSession();
$session
->statusCodeEquals(200);
$session
->addressEquals('admin/config/development/backup_migrate/settings/source/edit/test_filedirectory_source');
$session
->pageTextContains('Created Test FileDirectory source.');
$session
->fieldExists('label');
$session
->fieldExists('config[directory]');
$session
->buttonExists('Save');
$session
->linkExists('Delete');
// Fill in a path.
$edit = [
'config[directory]' => 'test_path',
];
$this
->submitForm($edit, 'Save');
$session = $this
->assertSession();
$session
->statusCodeEquals(200);
$session
->addressEquals('admin/config/development/backup_migrate/settings/source');
$session
->pageTextContains('Saved Test FileDirectory source.');
$session
->pageTextContains('Default Drupal Database');
$session
->pageTextContains('default_db');
$session
->pageTextContains('Entire Site');
$session
->pageTextContains('entire_site');
$session
->pageTextContains('Private Files Directory');
$session
->pageTextContains('private_files');
$session
->pageTextContains('Test FileDirectory source');
$session
->pageTextContains('test_filedirectory_source');
$session
->pageTextContains('File Directory');
// Load the add source form.
$this
->drupalGet('admin/config/development/backup_migrate/settings/source/add');
$session = $this
->assertSession();
$session
->statusCodeEquals(200);
$session
->pageTextContains('Add Backup Source');
$session
->fieldExists('label');
$session
->fieldExists('type');
$session
->buttonExists('Save and edit');
// Create a new source of type MySQL Database.
$edit = [
'label' => 'Test MySQL source',
'id' => 'test_mysql_source',
'type' => 'MySQL',
];
$this
->submitForm($edit, 'Save and edit');
// This should load a new version of the form with the directory filled in.
$session = $this
->assertSession();
$session
->statusCodeEquals(200);
$session
->addressEquals('admin/config/development/backup_migrate/settings/source/edit/test_mysql_source');
$session
->pageTextContains('Created Test MySQL source.');
$session
->fieldExists('label');
$session
->fieldExists('config[host]');
$session
->fieldExists('config[database]');
$session
->fieldExists('config[username]');
$session
->fieldExists('config[password]');
$session
->fieldExists('config[port]');
$session
->buttonExists('Save');
$session
->linkExists('Delete');
// Fill in fields with test values.
$edit = [
'config[host]' => 'test_host',
'config[database]' => 'test_dbname',
'config[username]' => 'test_user',
'config[password]' => 'test_pw',
'config[port]' => '12345',
];
$this
->submitForm($edit, 'Save');
$session = $this
->assertSession();
$session
->statusCodeEquals(200);
$session
->addressEquals('admin/config/development/backup_migrate/settings/source');
$session
->pageTextContains('Saved Test MySQL source.');
$session
->pageTextContains('Default Drupal Database');
$session
->pageTextContains('default_db');
$session
->pageTextContains('Entire Site');
$session
->pageTextContains('entire_site');
$session
->pageTextContains('Private Files Directory');
$session
->pageTextContains('private_files');
$session
->pageTextContains('Test MySQL source');
$session
->pageTextContains('test_mysql_source');
$session
->pageTextContains('MySQL Database');
}