function FileCopyTest::testNonWritableDestination

Same name and namespace in other branches
  1. 9 core/modules/migrate/tests/src/Kernel/process/FileCopyTest.php \Drupal\Tests\migrate\Kernel\process\FileCopyTest::testNonWritableDestination()
  2. 8.9.x core/modules/migrate/tests/src/Kernel/process/FileCopyTest.php \Drupal\Tests\migrate\Kernel\process\FileCopyTest::testNonWritableDestination()
  3. 11.x core/modules/migrate/tests/src/Kernel/process/FileCopyTest.php \Drupal\Tests\migrate\Kernel\process\FileCopyTest::testNonWritableDestination()

Tests that non-writable destination throw an exception.

@covers ::transform

File

core/modules/migrate/tests/src/Kernel/process/FileCopyTest.php, line 177

Class

FileCopyTest
Tests the file_copy process plugin.

Namespace

Drupal\Tests\migrate\Kernel\process

Code

public function testNonWritableDestination() : void {
  $source = $this->createUri('file.txt', NULL, 'temporary');
  // Create the parent location.
  $this->createDirectory('public://dir');
  // Copy the file under public://dir/subdir1/.
  $this->doTransform($source, 'public://dir/subdir1/file.txt');
  // Check that 'subdir1' was created and the file was successfully migrated.
  $this->assertFileExists('public://dir/subdir1/file.txt');
  // Remove all permissions from public://dir to trigger a failure when
  // trying to create a subdirectory 'subdir2' inside public://dir.
  $this->fileSystem
    ->chmod('public://dir', 0);
  // Check that the proper exception is raised.
  $this->expectException(MigrateException::class);
  $this->expectExceptionMessage("Could not create or write to directory 'public://dir/subdir2'");
  $this->doTransform($source, 'public://dir/subdir2/file.txt');
}

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