‪TYPO3CMS  ‪main
MetaTagManagerRegistryTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use PHPUnit\Framework\Attributes\DataProvider;
21 use PHPUnit\Framework\Attributes\Test;
27 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
28 
29 final class ‪MetaTagManagerRegistryTest extends UnitTestCase
30 {
31  protected bool ‪$resetSingletonInstances = true;
32 
33  #[Test]
35  {
37 
38  ‪$metaTagManagerRegistry->registerManager('name', 'fake//class//name');
39  ‪$metaTagManagerRegistry->getAllManagers();
40  }
41 
42  #[DataProvider('registerMetaTagManagersProvider')]
43  #[Test]
44  public function ‪checkRegisterExistingManagerDoRegister(array $managersToRegister, array $expected): void
45  {
47 
48  foreach ($managersToRegister as $managerToRegister) {
49  ‪$metaTagManagerRegistry->registerManager(
50  $managerToRegister['name'],
51  $managerToRegister['className'],
52  (array)$managerToRegister['before'],
53  (array)$managerToRegister['after']
54  );
55  }
56 
57  // Remove all properties from the manager if it was set by a previous unittest
58  foreach (‪$metaTagManagerRegistry->getAllManagers() as $manager) {
59  $manager->removeAllProperties();
60  }
61 
62  $managers = ‪$metaTagManagerRegistry->getAllManagers();
63 
64  self::assertEquals($expected, $managers);
65  }
66 
67  #[Test]
69  {
70  $input = [
71  'name' => 'opengraph',
72  'className' => OpenGraphMetaTagManager::class,
73  'before' => ['opengraph'],
74  'after' => [],
75  ];
76 
77  $this->expectException(\UnexpectedValueException::class);
78 
80  ‪$metaTagManagerRegistry->registerManager($input['name'], $input['className'], (array)$input['before'], (array)$input['after']);
81  ‪$metaTagManagerRegistry->getAllManagers();
82  }
83  public static function ‪registerMetaTagManagersProvider(): array
84  {
85  return [
86  [
87  [
88  [
89  'name' => 'opengraph',
90  'className' => OpenGraphMetaTagManager::class,
91  'before' => [],
92  'after' => [],
93  ],
94  ],
95  [
96  'opengraph' => new ‪OpenGraphMetaTagManager(),
97  'generic' => new ‪GenericMetaTagManager(),
98  ],
99  ],
100  [
101  [
102  [
103  'name' => 'opengraph',
104  'className' => OpenGraphMetaTagManager::class,
105  'before' => [],
106  'after' => [],
107  ],
108  [
109  'name' => 'opengraph',
110  'className' => OpenGraphMetaTagManager::class,
111  'before' => [],
112  'after' => [],
113  ],
114  ],
115  [
116  'opengraph' => new ‪OpenGraphMetaTagManager(),
117  'generic' => new ‪GenericMetaTagManager(),
118  ],
119  ],
120  [
121  [
122  [
123  'name' => 'opengraph',
124  'className' => OpenGraphMetaTagManager::class,
125  'before' => [],
126  'after' => [],
127  ],
128  [
129  'name' => 'html5',
130  'className' => Html5MetaTagManager::class,
131  'before' => [],
132  'after' => [],
133  ],
134  ],
135  [
136  'html5' => new ‪Html5MetaTagManager(),
137  'opengraph' => new ‪OpenGraphMetaTagManager(),
138  'generic' => new ‪GenericMetaTagManager(),
139  ],
140  ],
141  [
142  [
143  [
144  'name' => 'opengraph',
145  'className' => OpenGraphMetaTagManager::class,
146  'before' => ['html5'],
147  'after' => [],
148  ],
149  [
150  'name' => 'html5',
151  'className' => Html5MetaTagManager::class,
152  'before' => [],
153  'after' => [],
154  ],
155  ],
156  [
157  'opengraph' => new ‪OpenGraphMetaTagManager(),
158  'html5' => new ‪Html5MetaTagManager(),
159  'generic' => new ‪GenericMetaTagManager(),
160  ],
161  ],
162  [
163  [
164  [
165  'name' => 'opengraph',
166  'className' => OpenGraphMetaTagManager::class,
167  'before' => [],
168  'after' => [],
169  ],
170  [
171  'name' => 'html5',
172  'className' => Html5MetaTagManager::class,
173  'before' => [],
174  'after' => ['opengraph'],
175  ],
176  ],
177  [
178  'opengraph' => new ‪OpenGraphMetaTagManager(),
179  'html5' => new ‪Html5MetaTagManager(),
180  'generic' => new ‪GenericMetaTagManager(),
181  ],
182  ],
183  [
184  [
185  [
186  'name' => 'opengraph',
187  'className' => OpenGraphMetaTagManager::class,
188  'before' => [],
189  'after' => [],
190  ],
191  [
192  'name' => 'html5',
193  'className' => Html5MetaTagManager::class,
194  'before' => [],
195  'after' => ['twitter'],
196  ],
197  [
198  'name' => 'twitter',
199  'className' => TwitterCardMetaTagManager::class,
200  'before' => [],
201  'after' => ['opengraph'],
202  ],
203  ],
204  [
205  'opengraph' => new ‪OpenGraphMetaTagManager(),
206  'twitter' => new ‪TwitterCardMetaTagManager(),
207  'html5' => new ‪Html5MetaTagManager(),
208  'generic' => new ‪GenericMetaTagManager(),
209  ],
210  ],
211  [
212  [],
213  [
214  'generic' => new ‪GenericMetaTagManager(),
215  ],
216  ],
217  ];
218  }
219 }
‪TYPO3\CMS\Core\Tests\Unit\MetaTag\MetaTagManagerRegistryTest\checkConditionRaceResultsIntoException
‪checkConditionRaceResultsIntoException()
Definition: MetaTagManagerRegistryTest.php:68
‪TYPO3\CMS\Core\MetaTag\MetaTagManagerRegistry
Definition: MetaTagManagerRegistry.php:28
‪TYPO3\CMS\Core\MetaTag\Html5MetaTagManager
Definition: Html5MetaTagManager.php:21
‪TYPO3\CMS\Core\Tests\Unit\MetaTag\MetaTagManagerRegistryTest
Definition: MetaTagManagerRegistryTest.php:30
‪TYPO3\CMS\Core\Tests\Unit\MetaTag\MetaTagManagerRegistryTest\checkRegisterExistingManagerDoRegister
‪checkRegisterExistingManagerDoRegister(array $managersToRegister, array $expected)
Definition: MetaTagManagerRegistryTest.php:44
‪TYPO3\CMS\Core\Tests\Unit\MetaTag\MetaTagManagerRegistryTest\registerMetaTagManagersProvider
‪static registerMetaTagManagersProvider()
Definition: MetaTagManagerRegistryTest.php:83
‪TYPO3\CMS\Seo\MetaTag\TwitterCardMetaTagManager
Definition: TwitterCardMetaTagManager.php:26
‪TYPO3\CMS\Core\Tests\Unit\MetaTag
Definition: GenericMetaTagManagerTest.php:18
‪TYPO3\CMS\Core\MetaTag\GenericMetaTagManager
Definition: GenericMetaTagManager.php:25
‪TYPO3\CMS\Core\Tests\Unit\MetaTag\MetaTagManagerRegistryTest\$resetSingletonInstances
‪bool $resetSingletonInstances
Definition: MetaTagManagerRegistryTest.php:31
‪TYPO3\CMS\Core\Tests\Unit\MetaTag\MetaTagManagerRegistryTest\checkRegisterNonExistingManagerDoesntThrowErrorWhenFetchingManagers
‪checkRegisterNonExistingManagerDoesntThrowErrorWhenFetchingManagers()
Definition: MetaTagManagerRegistryTest.php:34
‪TYPO3\CMS\Seo\MetaTag\OpenGraphMetaTagManager
Definition: OpenGraphMetaTagManager.php:26
‪$metaTagManagerRegistry
‪$metaTagManagerRegistry
Definition: ext_localconf.php:77