function TitleResolverTest::testStaticTitleWithArguments
Tests a static title with and without overridden default arguments.
See also
\Drupal\Core\Controller\TitleResolver::getTitle()
File
-
core/
tests/ Drupal/ Tests/ Core/ Controller/ TitleResolverTest.php, line 116
Class
- TitleResolverTest
- @coversDefaultClass \Drupal\Core\Controller\TitleResolver @group Controller
Namespace
Drupal\Tests\Core\ControllerCode
public function testStaticTitleWithArguments() : void {
// Set up the request with optional override variables.
$request = new Request();
$raw_variables = new InputBag([
'test' => 'override value',
]);
// Array of cases.
$cases = [
// Case 1: No override, uses default arguments.
[
'route_args' => [
'_title' => 'static title @test',
'_title_arguments' => [
'@test' => 'value',
'@test2' => 'value2',
],
],
'expected' => new TranslatableMarkup('static title @test', [
'@test' => 'value',
'@test2' => 'value2',
], [], $this->translationManager),
'override' => FALSE,
],
[
'route_args' => [
'_title' => 'static title %test',
'_title_arguments' => [
'%test' => 'value',
'%test2' => 'value2',
],
],
'expected' => new TranslatableMarkup('static title %test', [
'%test' => 'value',
'%test2' => 'value2',
], [], $this->translationManager),
'override' => FALSE,
],
// Case 2: Override arguments.
[
'route_args' => [
'_title' => 'static title @test @test2',
'_title_arguments' => [
'@test' => 'value',
'@test2' => 'value2',
],
],
'expected' => new TranslatableMarkup('static title @test @test2', [
'@test' => 'override value',
'%test' => 'override value',
'@test2' => 'value2',
], [], $this->translationManager),
'override' => TRUE,
],
[
'route_args' => [
'_title' => 'static title %test %test2',
'_title_arguments' => [
'%test' => 'value',
'%test2' => 'value2',
],
],
'expected' => new TranslatableMarkup('static title %test %test2', [
'@test' => 'override value',
'%test' => 'override value',
'%test2' => 'value2',
], [], $this->translationManager),
'override' => TRUE,
],
];
foreach ($cases as $case) {
// Adjust the request based on whether we expect overrides.
if ($case['override']) {
$request->attributes
->set('_raw_variables', $raw_variables);
}
$route = new Route('/test-route', $case['route_args']);
$this->assertEquals($case['expected'], $this->titleResolver
->getTitle($request, $route));
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.