You are here

public function AdminFunctionalityTest::testDestinationsAdmin in Backup and Migrate 5.0.x

Same name and namespace in other branches
  1. 8.4 tests/src/Functional/AdminFunctionalityTest.php \Drupal\Tests\backup_migrate\Functional\AdminFunctionalityTest::testDestinationsAdmin()

Make sure the 'destinations' system works correctly.

File

tests/src/Functional/AdminFunctionalityTest.php, line 99

Class

AdminFunctionalityTest
Checks if admin functionality works correctly.

Namespace

Drupal\Tests\backup_migrate\Functional

Code

public function testDestinationsAdmin() {

  // Load the destination page.
  $this
    ->drupalGet('admin/config/development/backup_migrate/settings/destination');
  $session = $this
    ->assertSession();
  $session
    ->statusCodeEquals(200);
  $session
    ->pageTextContains('Backup Destination');
  $session
    ->pageTextContains('Private Files Directory');
  $session
    ->pageTextContains('private_files');
  $session
    ->pageTextContains('Server File Directory');

  // @todo Confirm the table only has one record.
  // Load the destination-add form.
  $this
    ->drupalGet('admin/config/development/backup_migrate/settings/destination/add');
  $session = $this
    ->assertSession();
  $session
    ->statusCodeEquals(200);
  $session
    ->pageTextContains('Add destination');
  $session
    ->fieldExists('label');
  $session
    ->fieldExists('id');
  $session
    ->fieldExists('type');
  $session
    ->buttonExists('Save and edit');

  // Create a new destination.
  $edit = [
    'label' => 'Test destination',
    'id' => 'test_destination',
    'type' => 'Directory',
  ];
  $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/destination/edit/test_destination');
  $session
    ->pageTextContains('Created Test destination.');
  $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/destination');
  $session
    ->pageTextContains('Saved Test destination.');
  $session
    ->pageTextContains('Private Files Directory');
  $session
    ->pageTextContains('private_files');
  $session
    ->pageTextContains('Test destination');
  $session
    ->pageTextContains('test_destination');
}