public function PathHooksTest::testPathHooks in Drupal 8
Same name and namespace in other branches
- 9 core/modules/path_alias/tests/src/Kernel/PathHooksTest.php \Drupal\Tests\path_alias\Kernel\PathHooksTest::testPathHooks()
- 10 core/modules/path_alias/tests/src/Kernel/PathHooksTest.php \Drupal\Tests\path_alias\Kernel\PathHooksTest::testPathHooks()
Tests that the PathAlias entity clears caches correctly.
@covers ::postSave @covers ::postDelete
File
- core/
modules/ path_alias/ tests/ src/ Kernel/ PathHooksTest.php, line 37
Class
- PathHooksTest
- @coversDefaultClass \Drupal\path_alias\Entity\PathAlias
Namespace
Drupal\Tests\path_alias\KernelCode
public function testPathHooks() {
$path_alias = PathAlias::create([
'path' => '/' . $this
->randomMachineName(),
'alias' => '/' . $this
->randomMachineName(),
]);
// Check \Drupal\Core\Path\Entity\PathAlias::postSave() for new path alias
// entities.
$alias_manager = $this
->prophesize(AliasManagerInterface::class);
$alias_manager
->cacheClear(Argument::any())
->shouldBeCalledTimes(1);
$alias_manager
->cacheClear($path_alias
->getPath())
->shouldBeCalledTimes(1);
\Drupal::getContainer()
->set('path_alias.manager', $alias_manager
->reveal());
$path_alias
->save();
$new_source = '/' . $this
->randomMachineName();
// Check \Drupal\Core\Path\Entity\PathAlias::postSave() for existing path
// alias entities.
$alias_manager = $this
->prophesize(AliasManagerInterface::class);
$alias_manager
->cacheClear(Argument::any())
->shouldBeCalledTimes(2);
$alias_manager
->cacheClear($path_alias
->getPath())
->shouldBeCalledTimes(1);
$alias_manager
->cacheClear($new_source)
->shouldBeCalledTimes(1);
\Drupal::getContainer()
->set('path_alias.manager', $alias_manager
->reveal());
$path_alias
->setPath($new_source);
$path_alias
->save();
// Check \Drupal\Core\Path\Entity\PathAlias::postDelete().
$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());
$path_alias
->delete();
}