Chris@16
|
1 <?php
|
Chris@16
|
2
|
Chris@16
|
3 namespace Drupal\Tests\image\Functional;
|
Chris@16
|
4
|
Chris@18
|
5 use Drupal\Core\File\FileSystemInterface;
|
Chris@16
|
6 use Drupal\file\Entity\File;
|
Chris@16
|
7 use Drupal\image\Entity\ImageStyle;
|
Chris@16
|
8 use Drupal\Tests\BrowserTestBase;
|
Chris@16
|
9 use Drupal\Tests\TestFileCreationTrait;
|
Chris@16
|
10
|
Chris@16
|
11 /**
|
Chris@16
|
12 * Tests the file move function for images and image styles.
|
Chris@16
|
13 *
|
Chris@16
|
14 * @group image
|
Chris@16
|
15 */
|
Chris@16
|
16 class FileMoveTest extends BrowserTestBase {
|
Chris@16
|
17
|
Chris@16
|
18 use TestFileCreationTrait {
|
Chris@16
|
19 getTestFiles as drupalGetTestFiles;
|
Chris@16
|
20 compareFiles as drupalCompareFiles;
|
Chris@16
|
21 }
|
Chris@16
|
22
|
Chris@16
|
23 /**
|
Chris@16
|
24 * Modules to enable.
|
Chris@16
|
25 *
|
Chris@16
|
26 * @var array
|
Chris@16
|
27 */
|
Chris@16
|
28 public static $modules = ['image'];
|
Chris@16
|
29
|
Chris@16
|
30 /**
|
Chris@16
|
31 * Tests moving a randomly generated image.
|
Chris@16
|
32 */
|
Chris@16
|
33 public function testNormal() {
|
Chris@16
|
34 // Pick a file for testing.
|
Chris@16
|
35 $file = File::create((array) current($this->drupalGetTestFiles('image')));
|
Chris@16
|
36
|
Chris@16
|
37 // Create derivative image.
|
Chris@16
|
38 $styles = ImageStyle::loadMultiple();
|
Chris@16
|
39 $style = reset($styles);
|
Chris@16
|
40 $original_uri = $file->getFileUri();
|
Chris@16
|
41 $derivative_uri = $style->buildUri($original_uri);
|
Chris@16
|
42 $style->createDerivative($original_uri, $derivative_uri);
|
Chris@16
|
43
|
Chris@16
|
44 // Check if derivative image exists.
|
Chris@16
|
45 $this->assertTrue(file_exists($derivative_uri), 'Make sure derivative image is generated successfully.');
|
Chris@16
|
46
|
Chris@16
|
47 // Clone the object so we don't have to worry about the function changing
|
Chris@16
|
48 // our reference copy.
|
Chris@16
|
49 $desired_filepath = 'public://' . $this->randomMachineName();
|
Chris@18
|
50 $result = file_move(clone $file, $desired_filepath, FileSystemInterface::EXISTS_ERROR);
|
Chris@16
|
51
|
Chris@16
|
52 // Check if image has been moved.
|
Chris@16
|
53 $this->assertTrue(file_exists($result->getFileUri()), 'Make sure image is moved successfully.');
|
Chris@16
|
54
|
Chris@16
|
55 // Check if derivative image has been flushed.
|
Chris@16
|
56 $this->assertFalse(file_exists($derivative_uri), 'Make sure derivative image has been flushed.');
|
Chris@16
|
57 }
|
Chris@16
|
58
|
Chris@16
|
59 }
|