a6ae259bc2fdec51803f3f2fcea2122e96040fb1
[yaffs-website] / web / core / tests / Drupal / KernelTests / Core / Plugin / Discovery / CustomDirectoryAnnotatedClassDiscoveryTest.php
1 <?php
2
3 namespace Drupal\KernelTests\Core\Plugin\Discovery;
4
5 use Drupal\Core\Plugin\Discovery\AnnotatedClassDiscovery;
6
7 /**
8  * Tests that plugins in a custom directory are correctly discovered using
9  * annotated classes.
10  *
11  * @group Plugin
12  */
13 class CustomDirectoryAnnotatedClassDiscoveryTest extends DiscoveryTestBase {
14
15   protected function setUp() {
16     parent::setUp();
17
18     $this->expectedDefinitions = [
19       'custom_example_1' => [
20         'id' => 'custom_example_1',
21         'custom' => 'Tim',
22         'class' => 'Drupal\plugin_test\CustomDirectoryExample1',
23         'provider' => 'plugin_test',
24       ],
25       'custom_example_2' => [
26         'id' => 'custom_example_2',
27         'custom' => 'Meghan',
28         'class' => 'Drupal\plugin_test\CustomDirectoryExample2',
29         'provider' => 'plugin_test',
30       ],
31       'apple' => [
32         'id' => 'apple',
33         'label' => 'Apple',
34         'color' => 'green',
35         'class' => 'Drupal\plugin_test\Plugin\plugin_test\fruit\Apple',
36         'provider' => 'plugin_test',
37       ],
38       'banana' => [
39         'id' => 'banana',
40         'label' => 'Banana',
41         'color' => 'yellow',
42         'uses' => [
43           'bread' => t('Banana bread'),
44           'loaf' => [
45             'singular' => '@count loaf',
46             'plural' => '@count loaves',
47             'context' => NULL,
48           ],
49         ],
50         'class' => 'Drupal\plugin_test\Plugin\plugin_test\fruit\Banana',
51         'provider' => 'plugin_test',
52       ],
53       'cherry' => [
54         'id' => 'cherry',
55         'label' => 'Cherry',
56         'color' => 'red',
57         'class' => 'Drupal\plugin_test\Plugin\plugin_test\fruit\Cherry',
58         'provider' => 'plugin_test',
59       ],
60       'kale' => [
61         'id' => 'kale',
62         'label' => 'Kale',
63         'color' => 'green',
64         'class' => 'Drupal\plugin_test\Plugin\plugin_test\fruit\Kale',
65         'provider' => 'plugin_test',
66       ],
67       'orange' => [
68         'id' => 'orange',
69         'label' => 'Orange',
70         'color' => 'orange',
71         'class' => 'Drupal\plugin_test\Plugin\plugin_test\fruit\Orange',
72         'provider' => 'plugin_test',
73       ],
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',
77         'color' => 'pink',
78         'class' => 'Drupal\plugin_test\Plugin\plugin_test\fruit\ExtendingNonInstalledClass',
79         'provider' => 'plugin_test',
80       ],
81     ];
82
83     $base_directory = \Drupal::root() . '/core/modules/system/tests/modules/plugin_test/src';
84     $namespaces = new \ArrayObject(['Drupal\plugin_test' => $base_directory]);
85
86     $this->discovery = new AnnotatedClassDiscovery('', $namespaces);
87     $empty_namespaces = new \ArrayObject();
88     $this->emptyDiscovery = new AnnotatedClassDiscovery('', $empty_namespaces);
89   }
90
91 }