Version 1
[yaffs-website] / web / core / modules / system / tests / modules / plugin_test / src / Plugin / DefaultsTestPluginManager.php
diff --git a/web/core/modules/system/tests/modules/plugin_test/src/Plugin/DefaultsTestPluginManager.php b/web/core/modules/system/tests/modules/plugin_test/src/Plugin/DefaultsTestPluginManager.php
new file mode 100644 (file)
index 0000000..65d7078
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+
+namespace Drupal\plugin_test\Plugin;
+
+use Drupal\Component\Plugin\Discovery\StaticDiscovery;
+use Drupal\Component\Plugin\Factory\DefaultFactory;
+use Drupal\Core\Extension\ModuleHandlerInterface;
+use Drupal\Core\Plugin\DefaultPluginManager;
+
+/**
+ * Defines a plugin manager used by Plugin API unit tests.
+ */
+class DefaultsTestPluginManager extends DefaultPluginManager {
+
+  /**
+   * Constructs a new DefaultsTestPluginManager instance.
+   *
+   * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
+   *   The module handler.
+   */
+  public function __construct(ModuleHandlerInterface $module_handler) {
+    // 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->factory = new DefaultFactory($this, 'Drupal\Component\Plugin\PluginInspectionInterface');
+    $this->moduleHandler = $module_handler;
+
+    // Specify default values.
+    $this->defaults = [
+      'metadata' => [
+        'default' => TRUE,
+      ],
+    ];
+
+    // Add a plugin with a custom value.
+    $this->discovery->setDefinition('test_block1', [
+      'class' => 'Drupal\plugin_test\Plugin\plugin_test\mock_block\MockTestBlock',
+      'metadata' => [
+        'custom' => TRUE,
+      ],
+    ]);
+    // Add a plugin that overrides the default value.
+    $this->discovery->setDefinition('test_block2', [
+      'class' => 'Drupal\plugin_test\Plugin\plugin_test\mock_block\MockTestBlock',
+      'metadata' => [
+        'custom' => TRUE,
+        'default' => FALSE,
+      ],
+    ]);
+  }
+
+}