PathAliasMenuLinkContentTest.php in Drupal 9
File
core/modules/menu_link_content/tests/src/Kernel/PathAliasMenuLinkContentTest.php
View source
<?php
namespace Drupal\Tests\menu_link_content\Kernel;
use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\Core\Menu\MenuTreeParameters;
use Drupal\menu_link_content\Entity\MenuLinkContent;
use Drupal\KernelTests\KernelTestBase;
use Drupal\Tests\Traits\Core\PathAliasTestTrait;
class PathAliasMenuLinkContentTest extends KernelTestBase {
use PathAliasTestTrait;
protected static $modules = [
'menu_link_content',
'system',
'link',
'path_alias',
'test_page_test',
'user',
];
protected function setUp() : void {
parent::setUp();
$this
->installEntitySchema('user');
$this
->installEntitySchema('menu_link_content');
$this
->installEntitySchema('path_alias');
module_set_weight('menu_link_content', 1);
}
public function register(ContainerBuilder $container) {
parent::register($container);
$definition = $container
->getDefinition('path_alias.path_processor');
$definition
->addTag('path_processor_inbound', [
'priority' => 100,
]);
}
public function testPathAliasChange() {
$path_alias = $this
->createPathAlias('/test-page', '/my-blog');
$menu_link_content = MenuLinkContent::create([
'title' => 'Menu title',
'link' => [
'uri' => 'internal:/my-blog',
],
'menu_name' => 'tools',
]);
$menu_link_content
->save();
$tree = \Drupal::menuTree()
->load('tools', new MenuTreeParameters());
$this
->assertEquals('test_page_test.test_page', $tree[$menu_link_content
->getPluginId()]->link
->getPluginDefinition()['route_name']);
$path_alias
->setPath('/test-render-title');
$path_alias
->setAlias('/my-blog');
$path_alias
->save();
$tree = \Drupal::menuTree()
->load('tools', new MenuTreeParameters());
$this
->assertEquals('test_page_test.render_title', $tree[$menu_link_content
->getPluginId()]->link
->getPluginDefinition()['route_name']);
$path_alias
->delete();
$tree = \Drupal::menuTree()
->load('tools', new MenuTreeParameters());
$this
->assertTrue(isset($tree[$menu_link_content
->getPluginId()]));
$this
->assertEquals('', $tree[$menu_link_content
->getPluginId()]->link
->getRouteName());
$this
->assertEquals('base:my-blog', $tree[$menu_link_content
->getPluginId()]->link
->getUrlObject()
->getUri());
}
}