public function LocalActionTest::testLocalAction in Drupal 9
Same name and namespace in other branches
- 8 core/modules/system/tests/src/Functional/Menu/LocalActionTest.php \Drupal\Tests\system\Functional\Menu\LocalActionTest::testLocalAction()
Tests appearance of local actions.
File
- core/
modules/ system/ tests/ src/ Functional/ Menu/ LocalActionTest.php, line 40
Class
- LocalActionTest
- Tests local actions derived from router and added/altered via hooks.
Namespace
Drupal\Tests\system\Functional\MenuCode
public function testLocalAction() {
$this
->drupalGet('menu-test-local-action');
// Ensure that both menu and route based actions are shown.
$this
->assertLocalAction([
[
Url::fromRoute('menu_test.local_action4'),
'My dynamic-title action',
],
[
Url::fromRoute('menu_test.local_action4'),
Html::escape("<script>alert('Welcome to the jungle!')</script>"),
],
[
Url::fromRoute('menu_test.local_action4'),
Html::escape("<script>alert('Welcome to the derived jungle!')</script>"),
],
[
Url::fromRoute('menu_test.local_action2'),
'My hook_menu action',
],
[
Url::fromRoute('menu_test.local_action3'),
'My YAML discovery action',
],
[
Url::fromRoute('menu_test.local_action5'),
'Title override',
],
]);
// Test a local action title that changes based on a config value.
$this
->drupalGet(Url::fromRoute('menu_test.local_action6'));
$this
->assertLocalAction([
[
Url::fromRoute('menu_test.local_action5'),
'Original title',
],
]);
// Verify the expected cache tag in the response headers.
$this
->assertSession()
->responseHeaderContains('x-drupal-cache-tags', 'config:menu_test.links.action');
/** @var \Drupal\Core\Config\Config $config */
$config = $this->container
->get('config.factory')
->getEditable('menu_test.links.action');
$config
->set('title', 'New title');
$config
->save();
$this
->drupalGet(Url::fromRoute('menu_test.local_action6'));
$this
->assertLocalAction([
[
Url::fromRoute('menu_test.local_action5'),
'New title',
],
]);
}