View source
<?php
namespace Drupal\Tests\entity_print\Kernel;
use Drupal\entity_print\FilenameGeneratorInterface;
use Drupal\KernelTests\KernelTestBase;
use Drupal\Tests\node\Traits\NodeCreationTrait;
class FilenameGeneratorTest extends KernelTestBase {
use NodeCreationTrait;
public static $modules = [
'system',
'user',
'node',
'filter',
'entity_print',
];
protected $filenameGenerator;
public function setUp() : void {
parent::setUp();
$this
->installConfig([
'system',
'filter',
]);
$this
->installEntitySchema('node');
$this
->installEntitySchema('user');
$this->filenameGenerator = $this->container
->get('entity_print.filename_generator');
}
public function testGenerateFilename($title, $expected_filename) {
$node = $this
->createNode([
'title' => $title,
]);
$this
->assertEquals($expected_filename, $this->filenameGenerator
->generateFilename([
$node,
]));
}
public function generateFilenameDataProvider() {
return [
[
'Random Node Title',
'Random Node Title',
],
[
'Title -=with special chars&*#',
'Title with special chars',
],
[
'Title 5 with Nums 2',
'Title 5 with Nums 2',
],
[
'Dußeldorf will be transliterated',
'Dusseldorf will be transliterated',
],
[
' ',
FilenameGeneratorInterface::DEFAULT_FILENAME,
],
];
}
public function testFilenameMultipleEntities() {
$entities = [
$this
->createNode([
'title' => 'entity1',
]),
$this
->createNode([
'title' => 'entity2',
]),
];
$this
->assertEquals('entity1-entity2', $this->filenameGenerator
->generateFilename($entities));
}
public function testGenerateCustomCallback() {
$node = $this
->createNode([]);
$this
->assertEquals($node
->label() . 'appended', $this->filenameGenerator
->generateFilename([
$node,
], function ($entity) {
return $entity
->label() . 'appended';
}));
}
}