webUser = $this->drupalCreateUser(['import configuration']); $this->drupalLogin($this->webUser); } /** * Tests importing configuration. */ public function testImport() { // Verify access to the config upload form. $this->drupalGet('admin/config/development/configuration/full/import'); $this->assertResponse(200); // Attempt to upload a non-tar file. $text_file = $this->getTestFiles('text')[0]; $edit = ['files[import_tarball]' => drupal_realpath($text_file->uri)]; $this->drupalPostForm('admin/config/development/configuration/full/import', $edit, t('Upload')); $this->assertText(t('Could not extract the contents of the tar file')); // Make the sync directory read-only. $directory = config_get_config_directory(CONFIG_SYNC_DIRECTORY); \Drupal::service('file_system')->chmod($directory, 0555); $this->drupalGet('admin/config/development/configuration/full/import'); $this->assertRaw(t('The directory %directory is not writable.', ['%directory' => $directory])); // Ensure submit button for \Drupal\config\Form\ConfigImportForm is // disabled. $submit_is_disabled = $this->cssSelect('form.config-import-form input[type="submit"]:disabled'); $this->assertTrue(count($submit_is_disabled) === 1, 'The submit button is disabled.'); } }