‪TYPO3CMS  10.4
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 
25 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
26 
30 class ‪MetaTagManagerRegistryTest extends UnitTestCase
31 {
35  protected ‪$resetSingletonInstances = true;
36 
41  {
43 
44  ‪$metaTagManagerRegistry->registerManager('name', 'fake//class//name');
45  ‪$metaTagManagerRegistry->getAllManagers();
46  }
47 
55  public function ‪checkRegisterExistingManagerDoRegister($managersToRegister, $expected)
56  {
58 
59  foreach ($managersToRegister as $managerToRegister) {
60  ‪$metaTagManagerRegistry->registerManager(
61  $managerToRegister['name'],
62  $managerToRegister['className'],
63  (array)$managerToRegister['before'],
64  (array)$managerToRegister['after']
65  );
66  }
67 
68  // Remove all properties from the manager if it was set by a previous unittest
69  foreach (‪$metaTagManagerRegistry->getAllManagers() as $manager) {
70  $manager->removeAllProperties();
71  }
72 
73  $managers = ‪$metaTagManagerRegistry->getAllManagers();
74 
75  self::assertEquals($expected, $managers);
76  }
77 
82  {
83  $input = [
84  'name' => 'opengraph',
85  'className' => OpenGraphMetaTagManager::class,
86  'before' => ['opengraph'],
87  'after' => []
88  ];
89 
90  $this->expectException(\UnexpectedValueException::class);
91 
93  ‪$metaTagManagerRegistry->registerManager($input['name'], $input['className'], (array)$input['before'], (array)$input['after']);
94  ‪$metaTagManagerRegistry->getAllManagers();
95  }
99  public function ‪registerMetaTagManagersProvider()
100  {
101  return [
102  [
103  [
104  [
105  'name' => 'opengraph',
106  'className' => OpenGraphMetaTagManager::class,
107  'before' => [],
108  'after' => []
109  ]
110  ],
111  [
112  'opengraph' => new ‪OpenGraphMetaTagManager(),
113  'generic' => new ‪GenericMetaTagManager()
114  ]
115  ],
116  [
117  [
118  [
119  'name' => 'opengraph',
120  'className' => OpenGraphMetaTagManager::class,
121  'before' => [],
122  'after' => []
123  ],
124  [
125  'name' => 'opengraph',
126  'className' => OpenGraphMetaTagManager::class,
127  'before' => [],
128  'after' => []
129  ],
130  ],
131  [
132  'opengraph' => new ‪OpenGraphMetaTagManager(),
133  'generic' => new ‪GenericMetaTagManager()
134  ]
135  ],
136  [
137  [
138  [
139  'name' => 'opengraph',
140  'className' => OpenGraphMetaTagManager::class,
141  'before' => [],
142  'after' => []
143  ],
144  [
145  'name' => 'html5',
146  'className' => Html5MetaTagManager::class,
147  'before' => [],
148  'after' => []
149  ],
150  ],
151  [
152  'html5' => new ‪Html5MetaTagManager(),
153  'opengraph' => new ‪OpenGraphMetaTagManager(),
154  'generic' => new ‪GenericMetaTagManager()
155  ]
156  ],
157  [
158  [
159  [
160  'name' => 'opengraph',
161  'className' => OpenGraphMetaTagManager::class,
162  'before' => ['html5'],
163  'after' => []
164  ],
165  [
166  'name' => 'html5',
167  'className' => Html5MetaTagManager::class,
168  'before' => [],
169  'after' => []
170  ],
171  ],
172  [
173  'opengraph' => new ‪OpenGraphMetaTagManager(),
174  'html5' => new ‪Html5MetaTagManager(),
175  'generic' => new ‪GenericMetaTagManager()
176  ]
177  ],
178  [
179  [
180  [
181  'name' => 'opengraph',
182  'className' => OpenGraphMetaTagManager::class,
183  'before' => [],
184  'after' => []
185  ],
186  [
187  'name' => 'html5',
188  'className' => Html5MetaTagManager::class,
189  'before' => [],
190  'after' => ['opengraph']
191  ],
192  ],
193  [
194  'opengraph' => new ‪OpenGraphMetaTagManager(),
195  'html5' => new ‪Html5MetaTagManager(),
196  'generic' => new ‪GenericMetaTagManager()
197  ]
198  ],
199  [
200  [
201  [
202  'name' => 'opengraph',
203  'className' => OpenGraphMetaTagManager::class,
204  'before' => [],
205  'after' => []
206  ],
207  [
208  'name' => 'html5',
209  'className' => Html5MetaTagManager::class,
210  'before' => [],
211  'after' => ['twitter']
212  ],
213  [
214  'name' => 'twitter',
215  'className' => TwitterCardMetaTagManager::class,
216  'before' => [],
217  'after' => ['opengraph']
218  ],
219  ],
220  [
221  'opengraph' => new ‪OpenGraphMetaTagManager(),
222  'twitter' => new ‪TwitterCardMetaTagManager(),
223  'html5' => new ‪Html5MetaTagManager(),
224  'generic' => new ‪GenericMetaTagManager()
225  ]
226  ],
227  [
228  [],
229  [
230  'generic' => new ‪GenericMetaTagManager()
231  ]
232  ],
233  ];
234  }
235 }
‪TYPO3\CMS\Core\Tests\Unit\MetaTag\MetaTagManagerRegistryTest\checkConditionRaceResultsIntoException
‪checkConditionRaceResultsIntoException()
Definition: MetaTagManagerRegistryTest.php:80
‪TYPO3\CMS\Core\Tests\Unit\MetaTag\MetaTagManagerRegistryTest\checkRegisterExistingManagerDoRegister
‪checkRegisterExistingManagerDoRegister($managersToRegister, $expected)
Definition: MetaTagManagerRegistryTest.php:54
‪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:31
‪TYPO3\CMS\Core\Tests\Unit\MetaTag\MetaTagManagerRegistryTest\registerMetaTagManagersProvider
‪array registerMetaTagManagersProvider()
Definition: MetaTagManagerRegistryTest.php:98
‪TYPO3\CMS\Seo\MetaTag\TwitterCardMetaTagManager
Definition: TwitterCardMetaTagManager.php:26
‪TYPO3\CMS\Core\Tests\Unit\MetaTag
Definition: GenericMetaTagManagerTest.php:16
‪TYPO3\CMS\Core\MetaTag\GenericMetaTagManager
Definition: GenericMetaTagManager.php:25
‪TYPO3\CMS\Core\Tests\Unit\MetaTag\MetaTagManagerRegistryTest\$resetSingletonInstances
‪bool $resetSingletonInstances
Definition: MetaTagManagerRegistryTest.php:34
‪TYPO3\CMS\Core\Tests\Unit\MetaTag\MetaTagManagerRegistryTest\checkRegisterNonExistingManagerDoesntThrowErrorWhenFetchingManagers
‪checkRegisterNonExistingManagerDoesntThrowErrorWhenFetchingManagers()
Definition: MetaTagManagerRegistryTest.php:39
‪TYPO3\CMS\Seo\MetaTag\OpenGraphMetaTagManager
Definition: OpenGraphMetaTagManager.php:26
‪$metaTagManagerRegistry
‪$metaTagManagerRegistry
Definition: ext_localconf.php:57