LegacyFileTest.php

Same filename in other branches
  1. 8.9.x core/modules/file/tests/src/Unit/LegacyFileTest.php

Namespace

Drupal\Tests\file\Kernel

File

core/modules/file/tests/src/Kernel/LegacyFileTest.php

View source
<?php

namespace Drupal\Tests\file\Kernel;

use Drupal\Component\Utility\Environment;
use Drupal\Core\File\FileSystemInterface;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Symfony\Component\HttpFoundation\File\UploadedFile;

/**
 * Tests deprecated file functions.
 *
 * @group file
 * @group legacy
 */
class LegacyFileTest extends FileManagedUnitTestBase {
    
    /**
     * Tests file size upload errors.
     *
     * @throws \Drupal\Core\Entity\EntityStorageException
     */
    public function testFileSaveUploadSingleErrorFormSize() {
        $file_name = $this->randomMachineName();
        $file_info = $this->createMock(UploadedFile::class);
        $file_info->expects($this->once())
            ->method('getError')
            ->willReturn(UPLOAD_ERR_FORM_SIZE);
        $file_info->expects($this->once())
            ->method('getClientOriginalName')
            ->willReturn($file_name);
        $this->expectDeprecation('_file_save_upload_single() is deprecated in drupal:9.3.0 and is removed from drupal:10.0.0. Use \\Drupal\\file\\Upload\\FileUploadHandler::handleFileUpload() instead. See https://www.drupal.org/node/3239547');
        $this->assertFalse(\_file_save_upload_single($file_info, 'name'));
        $expected_message = new TranslatableMarkup('The file %file could not be saved because it exceeds %maxsize, the maximum allowed size for uploads.', [
            '%file' => $file_name,
            '%maxsize' => format_size(Environment::getUploadMaxSize()),
        ]);
        $this->assertEquals($expected_message, \Drupal::messenger()->all()['error'][0]);
    }
    
    /**
     * Tests the deprecation of _views_file_status().
     *
     * @group legacy
     */
    public function testViewsFileStatus() {
        $this->expectDeprecation('_views_file_status() is deprecated in drupal:9.3.0 and is removed from drupal:10.0.0. There is no replacement. See https://www.drupal.org/node/3227228');
        $this->assertIsArray(_views_file_status());
    }
    
    /**
     * Tests file_save_data deprecation and that it works without a destination.
     */
    public function testSaveData() {
        $this->expectDeprecation('file_save_data is deprecated in drupal:9.3.0 and will be removed in drupal:10.0.0. Use \\Drupal\\file\\FileRepositoryInterface::writeData() instead. See https://www.drupal.org/node/3223520');
        $contents = $this->randomMachineName(8);
        $result = file_save_data($contents);
        $this->assertNotFalse($result, 'Unnamed file saved correctly.');
    }
    
    /**
     * Tests the file_copy deprecation and legacy behavior.
     */
    public function testCopy() {
        $this->expectDeprecation('file_copy is deprecated in drupal:9.3.0 and will be removed in drupal:10.0.0. Use \\Drupal\\file\\FileRepositoryInterface::copy() instead. See https://www.drupal.org/node/3223520');
        $contents = $this->randomMachineName(10);
        $source = $this->createFile(NULL, $contents);
        $desired_uri = 'public://' . $this->randomMachineName();
        // Clone the object so we don't have to worry about the function changing
        // our reference copy.
        $result = file_copy(clone $source, $desired_uri, FileSystemInterface::EXISTS_ERROR);
        // Check the return status and that the contents have not changed.
        $this->assertNotFalse($result, 'File copied successfully.');
        $this->assertEquals($contents, file_get_contents($result->getFileUri()));
    }
    
    /**
     * Tests the file_copy deprecation and legacy behavior.
     */
    public function testMove() {
        $this->expectDeprecation('file_move is deprecated in drupal:9.3.0 and will be removed in drupal:10.0.0. Use \\Drupal\\file\\FileRepositoryInterface::move() instead. See https://www.drupal.org/node/3223520');
        $contents = $this->randomMachineName(10);
        $source = $this->createFile(NULL, $contents);
        $desired_uri = 'public://' . $this->randomMachineName();
        // Clone the object so we don't have to worry about the function changing
        // our reference copy.
        $result = file_move(clone $source, $desired_uri, FileSystemInterface::EXISTS_ERROR);
        // Check the return status and that the contents have not changed.
        $this->assertFileNotExists($source->getFileUri());
        $this->assertEquals($contents, file_get_contents($result->getFileUri()));
    }

}

Classes

Title Deprecated Summary
LegacyFileTest Tests deprecated file functions.

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