3 namespace Drupal\Tests\file\Functional\Formatter;
5 use Drupal\Core\Field\FieldStorageDefinitionInterface;
6 use Drupal\field\Entity\FieldConfig;
7 use Drupal\field\Entity\FieldStorageConfig;
8 use Drupal\Tests\BrowserTestBase;
11 * Provides methods specifically for testing File module's media formatter's.
13 abstract class FileMediaFormatterTestBase extends BrowserTestBase {
18 protected static $modules = [
29 protected function setUp() {
31 $this->drupalLogin($this->drupalCreateUser(['view test entity']));
35 * Creates a file field and set's the correct formatter.
37 * @param string $formatter
39 * @param string $file_extensions
40 * The file extensions of the new field.
41 * @param array $formatter_settings
42 * Settings for the formatter.
44 * @return \Drupal\field\Entity\FieldConfig
45 * Newly created file field.
47 protected function createMediaField($formatter, $file_extensions, array $formatter_settings = []) {
48 $entity_type = $bundle = 'entity_test';
49 $field_name = mb_strtolower($this->randomMachineName());
51 FieldStorageConfig::create([
52 'entity_type' => $entity_type,
53 'field_name' => $field_name,
55 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
57 $field_config = FieldConfig::create([
58 'entity_type' => $entity_type,
59 'field_name' => $field_name,
62 'file_extensions' => trim($file_extensions),
65 $field_config->save();
67 $display = entity_get_display('entity_test', 'entity_test', 'full');
68 $display->setComponent($field_name, [
70 'settings' => $formatter_settings,
77 * Data provider for testRender.
80 * An array of data arrays.
81 * The data array contains:
82 * - The number of expected HTML tags.
83 * - An array of settings for the field formatter.
85 public function dataProvider() {
88 [1, ['multiple_file_display_type' => 'sources']],