public function DefaultsTestPluginManager::__construct

File

drupal/core/modules/system/tests/modules/plugin_test/lib/Drupal/plugin_test/Plugin/DefaultsTestPluginManager.php, line 20
Contains Drupal\plugin_test\Plugin\DefaultsTestPluginManager.

Class

DefaultsTestPluginManager
Defines a plugin manager used by Plugin API unit tests.

Namespace

Drupal\plugin_test\Plugin

Code

public function __construct() {

  // Create the object that can be used to return definitions for all the
  // plugins available for this type. Most real plugin managers use a richer
  // discovery implementation, but StaticDiscovery lets us add some simple
  // mock plugins for unit testing.
  $this->discovery = new StaticDiscovery();
  $this->discovery = new ProcessDecorator($this->discovery, array(
    $this,
    'ProcessDefinition',
  ));
  $this->factory = new DefaultFactory($this);

  // Specify default values.
  $this->defaults = array(
    'metadata' => array(
      'default' => TRUE,
    ),
  );

  // Add a plugin with a custom value.
  $this->discovery
    ->setDefinition('test_block1', array(
    'class' => 'Drupal\\plugin_test\\Plugin\\plugin_test\\mock_block\\MockTestBlock',
    'metadata' => array(
      'custom' => TRUE,
    ),
  ));

  // Add a plugin that overrides the default value.
  $this->discovery
    ->setDefinition('test_block2', array(
    'class' => 'Drupal\\plugin_test\\Plugin\\plugin_test\\mock_block\\MockTestBlock',
    'metadata' => array(
      'custom' => TRUE,
      'default' => FALSE,
    ),
  ));
}