3 namespace Drupal\KernelTests\Core\Plugin\Discovery;
5 use Drupal\Core\Plugin\Discovery\AnnotatedClassDiscovery;
8 * Tests that plugins in a custom directory are correctly discovered using
13 class CustomDirectoryAnnotatedClassDiscoveryTest extends DiscoveryTestBase {
15 protected function setUp() {
18 $this->expectedDefinitions = [
19 'custom_example_1' => [
20 'id' => 'custom_example_1',
22 'class' => 'Drupal\plugin_test\CustomDirectoryExample1',
23 'provider' => 'plugin_test',
25 'custom_example_2' => [
26 'id' => 'custom_example_2',
28 'class' => 'Drupal\plugin_test\CustomDirectoryExample2',
29 'provider' => 'plugin_test',
35 'class' => 'Drupal\plugin_test\Plugin\plugin_test\fruit\Apple',
36 'provider' => 'plugin_test',
43 'bread' => t('Banana bread'),
45 'singular' => '@count loaf',
46 'plural' => '@count loaves',
50 'class' => 'Drupal\plugin_test\Plugin\plugin_test\fruit\Banana',
51 'provider' => 'plugin_test',
57 'class' => 'Drupal\plugin_test\Plugin\plugin_test\fruit\Cherry',
58 'provider' => 'plugin_test',
64 'class' => 'Drupal\plugin_test\Plugin\plugin_test\fruit\Kale',
65 'provider' => 'plugin_test',
71 'class' => 'Drupal\plugin_test\Plugin\plugin_test\fruit\Orange',
72 'provider' => 'plugin_test',
74 'extending_non_installed_class' => [
75 'id' => 'extending_non_installed_class',
76 'label' => 'A plugin whose class is extending from a non-installed module class',
78 'class' => 'Drupal\plugin_test\Plugin\plugin_test\fruit\ExtendingNonInstalledClass',
79 'provider' => 'plugin_test',
83 $base_directory = \Drupal::root() . '/core/modules/system/tests/modules/plugin_test/src';
84 $namespaces = new \ArrayObject(['Drupal\plugin_test' => $base_directory]);
86 $this->discovery = new AnnotatedClassDiscovery('', $namespaces);
87 $empty_namespaces = new \ArrayObject();
88 $this->emptyDiscovery = new AnnotatedClassDiscovery('', $empty_namespaces);