Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Tests\system\Kernel;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\Core\Language\LanguageInterface;
|
Chris@0
|
6 use Drupal\Core\Path\AliasManagerInterface;
|
Chris@0
|
7 use Drupal\KernelTests\KernelTestBase;
|
Chris@0
|
8 use Prophecy\Argument;
|
Chris@0
|
9
|
Chris@0
|
10 /**
|
Chris@0
|
11 * @group Drupal
|
Chris@0
|
12 */
|
Chris@0
|
13 class PathHooksTest extends KernelTestBase {
|
Chris@0
|
14
|
Chris@0
|
15 /**
|
Chris@0
|
16 * {@inheritdoc}
|
Chris@0
|
17 */
|
Chris@18
|
18 public static $modules = ['system'];
|
Chris@0
|
19
|
Chris@0
|
20 /**
|
Chris@0
|
21 * Test system_path_*() correctly clears caches.
|
Chris@0
|
22 */
|
Chris@0
|
23 public function testPathHooks() {
|
Chris@0
|
24 $source = '/' . $this->randomMachineName();
|
Chris@0
|
25 $alias = '/' . $this->randomMachineName();
|
Chris@0
|
26
|
Chris@0
|
27 // Check system_path_insert();
|
Chris@0
|
28 $alias_manager = $this->prophesize(AliasManagerInterface::class);
|
Chris@0
|
29 $alias_manager->cacheClear(Argument::any())->shouldBeCalledTimes(1);
|
Chris@0
|
30 $alias_manager->cacheClear($source)->shouldBeCalledTimes(1);
|
Chris@0
|
31 \Drupal::getContainer()->set('path.alias_manager', $alias_manager->reveal());
|
Chris@0
|
32 $alias_storage = \Drupal::service('path.alias_storage');
|
Chris@0
|
33 $alias_storage->save($source, $alias);
|
Chris@0
|
34
|
Chris@0
|
35 $new_source = '/' . $this->randomMachineName();
|
Chris@0
|
36 $path = $alias_storage->load(['source' => $source]);
|
Chris@0
|
37
|
Chris@0
|
38 // Check system_path_update();
|
Chris@0
|
39 $alias_manager = $this->prophesize(AliasManagerInterface::class);
|
Chris@0
|
40 $alias_manager->cacheClear(Argument::any())->shouldBeCalledTimes(2);
|
Chris@0
|
41 $alias_manager->cacheClear($source)->shouldBeCalledTimes(1);
|
Chris@0
|
42 $alias_manager->cacheClear($new_source)->shouldBeCalledTimes(1);
|
Chris@0
|
43 \Drupal::getContainer()->set('path.alias_manager', $alias_manager->reveal());
|
Chris@0
|
44 $alias_storage->save($new_source, $alias, LanguageInterface::LANGCODE_NOT_SPECIFIED, $path['pid']);
|
Chris@0
|
45
|
Chris@0
|
46 // Check system_path_delete();
|
Chris@0
|
47 $alias_manager = $this->prophesize(AliasManagerInterface::class);
|
Chris@0
|
48 $alias_manager->cacheClear(Argument::any())->shouldBeCalledTimes(1);
|
Chris@0
|
49 $alias_manager->cacheClear($new_source)->shouldBeCalledTimes(1);
|
Chris@0
|
50 \Drupal::getContainer()->set('path.alias_manager', $alias_manager->reveal());
|
Chris@0
|
51 $alias_storage->delete(['pid' => $path['pid']]);
|
Chris@0
|
52
|
Chris@0
|
53 }
|
Chris@0
|
54
|
Chris@0
|
55 }
|