You are here

FieldWidgetDisplayTest.php in Entity Browser 8.2

Same filename and directory in other branches
  1. 8 tests/src/Kernel/Plugin/FieldWidgetDisplayTest.php

File

tests/src/Kernel/Plugin/FieldWidgetDisplayTest.php
View source
<?php

namespace Drupal\Tests\entity_browser\Kernel\Plugin;

use Drupal\KernelTests\KernelTestBase;

/**
 * Tests field widget display plugins.
 *
 * @group entity_browser
 */
class FieldWidgetDisplayTest extends KernelTestBase {

  /**
   * Modules to enable.
   *
   * @var array
   */
  public static $modules = [
    'entity_browser',
    'image',
    'comment',
  ];

  /**
   * Field widget display plugin manager.
   *
   * @var \Drupal\entity_browser\FieldWidgetDisplayManager
   */
  protected $pluginManager;

  /**
   * {@inheritdoc}
   */
  protected function setUp() {
    parent::setUp();
    $this->pluginManager = $this->container
      ->get('plugin.manager.entity_browser.field_widget_display');
    $image_style = $this->container
      ->get('entity_type.manager')
      ->getStorage('image_style');
    $image_style
      ->create([
      'name' => 'thumbnail',
      'label' => 'Thumbnail',
    ])
      ->save();
    $image_style
      ->create([
      'name' => 'large',
      'label' => 'Large',
    ])
      ->save();
    $comment_type = $this->container
      ->get('entity_type.manager')
      ->getStorage('comment_type');
    $comment_type
      ->create([
      'id' => 'comment',
      'label' => 'Comment',
    ])
      ->save();
    $view_mode = $this->container
      ->get('entity_type.manager')
      ->getStorage('entity_view_mode');
    $view_mode
      ->create([
      'id' => 'comment.full',
      'targetEntityType' => 'comment',
    ])
      ->save();
  }

  /**
   * Test field widget display plugins configuration and dependencies.
   */
  public function testDefaultConfiguration() {

    // Check default configuration for image thumbnail plugin.
    $image_thumbnail_plugin = $this->pluginManager
      ->createInstance('thumbnail');
    $this
      ->assertEquals([
      'image_style' => 'thumbnail',
    ], $image_thumbnail_plugin
      ->defaultConfiguration());
    $this
      ->assertEquals([
      'image_style' => 'thumbnail',
    ], $image_thumbnail_plugin
      ->getConfiguration());
    $this
      ->assertEquals([
      'config' => [
        0 => 'image.style.thumbnail',
      ],
    ], $image_thumbnail_plugin
      ->calculateDependencies());

    // Set configuration different then default.
    $image_thumbnail_plugin
      ->setConfiguration([
      'image_style' => 'large',
    ]);
    $this
      ->assertEquals([
      'image_style' => 'thumbnail',
    ], $image_thumbnail_plugin
      ->defaultConfiguration());
    $this
      ->assertEquals([
      'image_style' => 'large',
    ], $image_thumbnail_plugin
      ->getConfiguration());
    $this
      ->assertEquals([
      'config' => [
        0 => 'image.style.large',
      ],
    ], $image_thumbnail_plugin
      ->calculateDependencies());

    // Check default configuration for rendered entity plugin.
    $rendered_entity_plugin = $this->pluginManager
      ->createInstance('rendered_entity', [
      'entity_type' => 'comment',
    ]);
    $this
      ->assertEquals([
      'view_mode' => 'default',
    ], $rendered_entity_plugin
      ->defaultConfiguration());
    $this
      ->assertEquals([
      'view_mode' => 'default',
      'entity_type' => 'comment',
    ], $rendered_entity_plugin
      ->getConfiguration());
    $this
      ->assertEquals([], $rendered_entity_plugin
      ->calculateDependencies());

    // Set configuration different then default.
    $rendered_entity_plugin
      ->setConfiguration([
      'entity_type' => 'comment',
      'view_mode' => 'full',
    ]);
    $this
      ->assertEquals([
      'view_mode' => 'default',
    ], $rendered_entity_plugin
      ->defaultConfiguration());
    $this
      ->assertEquals([
      'view_mode' => 'full',
      'entity_type' => 'comment',
    ], $rendered_entity_plugin
      ->getConfiguration());
    $this
      ->assertEquals([
      'config' => [
        0 => 'core.entity_view_mode.comment.full',
      ],
    ], $rendered_entity_plugin
      ->calculateDependencies());
  }

}

Classes

Namesort descending Description
FieldWidgetDisplayTest Tests field widget display plugins.