public function AdminFunctionalityTest::testSchedulesAdmin 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::testSchedulesAdmin()
Make sure the 'schedules' system works correctly.
File
- tests/
src/ Functional/ AdminFunctionalityTest.php, line 279
Class
- AdminFunctionalityTest
- Checks if admin functionality works correctly.
Namespace
Drupal\Tests\backup_migrate\FunctionalCode
public function testSchedulesAdmin() {
// Load the schedule page.
$this
->drupalGet('admin/config/development/backup_migrate/schedule');
$session = $this
->assertSession();
$session
->statusCodeEquals(200);
$session
->pageTextContains('Schedule Name');
$session
->pageTextContains('Enabled');
$session
->pageTextContains('Frequency');
$session
->pageTextContains('Last Run');
$session
->pageTextContains('Next Run');
$session
->pageTextContains('Keep');
$session
->pageTextContains('Daily Schedule');
$session
->pageTextContains('No');
$session
->pageTextContains('Every 0 weeks');
$session
->pageTextContains('Never');
$session
->pageTextContains('Disabled');
$session
->pageTextContains('Last backups');
// @todo Confirm the table only has one record.
// Edit an existing schedule - turn on the default schedule.
$this
->drupalGet('admin/config/development/backup_migrate/schedule/edit/daily_schedule');
$session = $this
->assertSession();
$session
->statusCodeEquals(200);
$session
->fieldExists('Schedule enabled');
$edit = [
'enabled' => TRUE,
'period_number' => 1,
'period_type' => 'days',
];
$this
->submitForm($edit, 'Save');
$session = $this
->assertSession();
$session
->statusCodeEquals(200);
$session
->pageTextContains('Saved the Daily Schedule Schedule.');
$session
->pageTextContains('Yes');
$session
->pageTextContains('Daily');
$session
->pageTextContains('Never');
$session
->pageTextContains('Next cron run');
$session
->pageTextNotContains('Disabled');
// Load the schedule-add form.
$this
->drupalGet('admin/config/development/backup_migrate/schedule/add');
$session = $this
->assertSession();
$session
->statusCodeEquals(200);
$session
->pageTextContains('Add schedule');
$session
->fieldExists('label');
$session
->fieldExists('id');
$session
->fieldExists('enabled');
$session
->fieldExists('source_id');
$session
->fieldExists('destination_id');
$session
->fieldExists('period_number');
$session
->fieldExists('period_type');
$session
->fieldExists('keep');
$session
->buttonExists('Save');
// Create a new schedule.
$edit = [
'label' => 'Test schedule',
'id' => 'test_schedule',
'enabled' => TRUE,
'source_id' => 'default_db',
'destination_id' => 'private_files',
'period_number' => 14400,
'period_type' => 'minutes',
'keep' => 1000,
];
$this
->submitForm($edit, 'Save');
// Make sure the form saved correctly.
$session = $this
->assertSession();
$session
->statusCodeEquals(200);
$session
->addressEquals('admin/config/development/backup_migrate/schedule');
$session
->pageTextContains('Created the Test schedule Schedule.');
$session
->pageTextContains('Every 10 days');
$session
->pageTextContains('Last 1000 backups');
$session
->pageTextContains('Yes');
}