db backup prior to drupal security update
[yaffs-website] / web / core / modules / config / src / Tests / ConfigImportUploadTest.php
1 <?php
2
3 namespace Drupal\config\Tests;
4
5 use Drupal\simpletest\WebTestBase;
6
7 /**
8  * Tests importing configuration from an uploaded file.
9  *
10  * @group config
11  */
12 class ConfigImportUploadTest extends WebTestBase {
13
14   /**
15    * A user with the 'import configuration' permission.
16    *
17    * @var \Drupal\user\UserInterface
18    */
19   protected $webUser;
20
21   /**
22    * Modules to install.
23    *
24    * @var array
25    */
26   public static $modules = ['config'];
27
28   protected function setUp() {
29     parent::setUp();
30
31     $this->webUser = $this->drupalCreateUser(['import configuration']);
32     $this->drupalLogin($this->webUser);
33   }
34
35   /**
36    * Tests importing configuration.
37    */
38   public function testImport() {
39     // Verify access to the config upload form.
40     $this->drupalGet('admin/config/development/configuration/full/import');
41     $this->assertResponse(200);
42
43     // Attempt to upload a non-tar file.
44     $text_file = current($this->drupalGetTestFiles('text'));
45     $edit = ['files[import_tarball]' => drupal_realpath($text_file->uri)];
46     $this->drupalPostForm('admin/config/development/configuration/full/import', $edit, t('Upload'));
47     $this->assertText(t('Could not extract the contents of the tar file'));
48
49     // Make the sync directory read-only.
50     $directory = config_get_config_directory(CONFIG_SYNC_DIRECTORY);
51     \Drupal::service('file_system')->chmod($directory, 0555);
52     $this->drupalGet('admin/config/development/configuration/full/import');
53     $this->assertRaw(t('The directory %directory is not writable.', ['%directory' => $directory]));
54     // Ensure submit button for \Drupal\config\Form\ConfigImportForm is
55     // disabled.
56     $submit_is_disabled = $this->cssSelect('form.config-import-form input[type="submit"]:disabled');
57     $this->assertTrue(count($submit_is_disabled) === 1, 'The submit button is disabled.');
58   }
59
60 }