EntityCloneFileTest.php in Entity Clone 8        
                          
                  
                        
  
  
  
  
  
File
  tests/src/Functional/EntityCloneFileTest.php
  
    View source  
  <?php
namespace Drupal\Tests\entity_clone\Functional;
use Drupal\file\Entity\File;
use Drupal\Tests\BrowserTestBase;
class EntityCloneFileTest extends BrowserTestBase {
  
  public static $modules = [
    'entity_clone',
    'file',
  ];
  
  protected $defaultTheme = 'classy';
  
  protected $permissions = [
    'clone file entity',
  ];
  
  protected $adminUser;
  
  protected function setUp() : void {
    parent::setUp();
    $this->adminUser = $this
      ->drupalCreateUser($this->permissions);
    $this
      ->drupalLogin($this->adminUser);
  }
  
  public function testFileEntityClone() {
    
    $file = File::create([
      'uid' => 1,
      'filename' => 'druplicon.txt',
      'uri' => 'public://druplicon.txt',
      'filemime' => 'text/plain',
      'status' => FILE_STATUS_PERMANENT,
    ]);
    file_put_contents($file
      ->getFileUri(), 'hello world');
    $file
      ->save();
    $this
      ->drupalPostForm('entity_clone/file/' . $file
      ->id(), [], t('Clone'));
    $files = \Drupal::entityTypeManager()
      ->getStorage('file')
      ->loadByProperties([
      'filename' => 'druplicon.txt - Cloned',
    ]);
    $file = reset($files);
    $this
      ->assertInstanceOf(File::class, $file, 'Test file cloned found in database.');
    $this
      ->assertEqual($file
      ->getFileUri(), 'public://druplicon_0.txt', 'The stored file is also cloned.');
  }
}