function ConfigImportUploadTest::testImport

Same name in other branches
  1. 9 core/modules/config/tests/src/Functional/ConfigImportUploadTest.php \Drupal\Tests\config\Functional\ConfigImportUploadTest::testImport()
  2. 8.9.x core/modules/config/tests/src/Functional/ConfigImportUploadTest.php \Drupal\Tests\config\Functional\ConfigImportUploadTest::testImport()
  3. 10 core/modules/config/tests/src/Functional/ConfigImportUploadTest.php \Drupal\Tests\config\Functional\ConfigImportUploadTest::testImport()

Tests importing configuration.

File

core/modules/config/tests/src/Functional/ConfigImportUploadTest.php, line 50

Class

ConfigImportUploadTest
Tests importing configuration from an uploaded file.

Namespace

Drupal\Tests\config\Functional

Code

public function testImport() : void {
    // Verify access to the config upload form.
    $this->drupalGet('admin/config/development/configuration/full/import');
    $this->assertSession()
        ->statusCodeEquals(200);
    // Attempt to upload a non-tar file.
    $text_file = $this->getTestFiles('text')[0];
    $edit = [
        'files[import_tarball]' => \Drupal::service('file_system')->realpath($text_file->uri),
    ];
    $this->drupalGet('admin/config/development/configuration/full/import');
    $this->submitForm($edit, 'Upload');
    $this->assertSession()
        ->pageTextContains('Could not extract the contents of the tar file');
    // Make the sync directory read-only.
    $directory = Settings::get('config_sync_directory');
    \Drupal::service('file_system')->chmod($directory, 0555);
    $this->drupalGet('admin/config/development/configuration/full/import');
    $this->assertSession()
        ->pageTextContains("The directory {$directory} is not writable.");
    // Ensure submit button for \Drupal\config\Form\ConfigImportForm is
    // disabled.
    $submit_is_disabled = $this->cssSelect('form.config-import-form input[type="submit"]:disabled');
    $this->assertCount(1, $submit_is_disabled, 'The submit button is disabled.');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.