inline_image_saver-1.0.x-dev/tests/src/Kernel/FileHashIntegrationTest.php
tests/src/Kernel/FileHashIntegrationTest.php
<?php
declare(strict_types=1);
namespace Drupal\Tests\inline_image_saver\Kernel;
use Drupal\file\FileInterface;
use Drupal\inline_image_saver\Form\InlineImageSaverSettingsForm;
use Drupal\KernelTests\Core\File\FileTestBase;
use Drupal\Tests\inline_image_saver\Traits\InlineImageTestTrait;
use Drupal\Tests\inline_image_saver\Traits\SetupBaseUrlTrait;
use Drupal\Tests\TestFileCreationTrait;
use PHPUnit\Framework\Attributes\IgnoreDeprecations;
/**
* Tests the integration between inline_image_saver and filehash modules.
*/
#[IgnoreDeprecations]
class FileHashIntegrationTest extends FileTestBase {
use TestFileCreationTrait;
use InlineImageTestTrait;
use SetupBaseUrlTrait;
/**
* {@inheritdoc}
*/
protected static $modules = [
'system',
'field',
'user',
'file',
'filter',
'filter_test',
'inline_image_saver',
'filehash',
];
/**
* {@inheritdoc}
*/
protected function setUp(): void {
parent::setUp();
$this->setupBaseUrl();
$this->installConfig(['system']);
$this->installEntitySchema('file');
$this->installEntitySchema('user');
$this->installSchema('file', 'file_usage');
$this->installConfig(['filter', 'filter_test', 'inline_image_saver', 'filehash']);
$this->processableFormatId = 'full_html';
$this->config('filehash.settings')
->set('algorithms.sha1', TRUE)
->save();
}
/**
* Tests the integration.
*/
public function testIntegration(): void {
$this->config(InlineImageSaverSettingsForm::CONFIG_NAME)
->set('prefer_reuse_files', TRUE)
->save();
$images = $this->getTestFiles('image');
$img_file = $this->container->get('entity_type.manager')->getStorage('file')->create((array) $images[0]);
$img_file->save();
$this->assertInstanceOf(FileInterface::class, $img_file);
$img_markup = $this->createImageMarkup(['src' => $img_file->createFileUrl()]);
$img = $this->extractImageElement($img_markup);
$inline_image_saver = $this->container->get('inline_image_saver');
$data = $inline_image_saver->downloadImage($img);
$file = $inline_image_saver->saveImage($data, 'invalid://');
$this->assertInstanceOf(FileInterface::class, $file);
$this->assertEquals($img_file->uuid(), $file->uuid());
}
}
