annotate core/modules/system/tests/src/Kernel/PathHooksTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents af1871eacc83
children
rev   line source
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 }