Mercurial > hg > isophonics-drupal-site
diff core/modules/system/tests/src/Kernel/PathHooksTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | af1871eacc83 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/system/tests/src/Kernel/PathHooksTest.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,55 @@ +<?php + +namespace Drupal\Tests\system\Kernel; + +use Drupal\Core\Language\LanguageInterface; +use Drupal\Core\Path\AliasManagerInterface; +use Drupal\KernelTests\KernelTestBase; +use Prophecy\Argument; + +/** + * @group Drupal + */ +class PathHooksTest extends KernelTestBase { + + /** + * {@inheritdoc} + */ + static public $modules = ['system']; + + /** + * Test system_path_*() correctly clears caches. + */ + public function testPathHooks() { + $source = '/' . $this->randomMachineName(); + $alias = '/' . $this->randomMachineName(); + + // Check system_path_insert(); + $alias_manager = $this->prophesize(AliasManagerInterface::class); + $alias_manager->cacheClear(Argument::any())->shouldBeCalledTimes(1); + $alias_manager->cacheClear($source)->shouldBeCalledTimes(1); + \Drupal::getContainer()->set('path.alias_manager', $alias_manager->reveal()); + $alias_storage = \Drupal::service('path.alias_storage'); + $alias_storage->save($source, $alias); + + $new_source = '/' . $this->randomMachineName(); + $path = $alias_storage->load(['source' => $source]); + + // Check system_path_update(); + $alias_manager = $this->prophesize(AliasManagerInterface::class); + $alias_manager->cacheClear(Argument::any())->shouldBeCalledTimes(2); + $alias_manager->cacheClear($source)->shouldBeCalledTimes(1); + $alias_manager->cacheClear($new_source)->shouldBeCalledTimes(1); + \Drupal::getContainer()->set('path.alias_manager', $alias_manager->reveal()); + $alias_storage->save($new_source, $alias, LanguageInterface::LANGCODE_NOT_SPECIFIED, $path['pid']); + + // Check system_path_delete(); + $alias_manager = $this->prophesize(AliasManagerInterface::class); + $alias_manager->cacheClear(Argument::any())->shouldBeCalledTimes(1); + $alias_manager->cacheClear($new_source)->shouldBeCalledTimes(1); + \Drupal::getContainer()->set('path.alias_manager', $alias_manager->reveal()); + $alias_storage->delete(['pid' => $path['pid']]); + + } + +}