Skip to content
Snippets Groups Projects
Verified Commit 2afadf48 authored by Alex Pott's avatar Alex Pott
Browse files

Issue #2684251 by pooja_sharma, sheldonreed3, smustgrave, jehon, Lendude:...

Issue #2684251 by pooja_sharma, sheldonreed3, smustgrave, jehon, Lendude: Global Token Replacements is not working correctly in href

(cherry picked from commit ca4535dd)
parent 42029802
No related branches found
No related tags found
No related merge requests found
......@@ -107,11 +107,14 @@ public function tokenForm(&$form, FormStateInterface $form_state) {
* will be replaced.
*/
public function tokenizeValue($value) {
// As we add the globalTokenForm() we also should replace the token here.
$value = $this->globalTokenReplace($value);
if ($this->options['tokenize']) {
$value = $this->view->getStyle()->tokenizeValue($value, 0);
}
// As we add the globalTokenForm() we also should replace the token here.
return $this->globalTokenReplace($value);
return $value;
}
}
<?php
declare(strict_types=1);
namespace Drupal\Tests\views\Kernel\Handler;
use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
use Drupal\views\Views;
/**
* Tests the token in text area handler.
*
* @group views
* @see \Drupal\views\Plugin\views\area\Text
*/
class AreaTextTokenTest extends ViewsKernelTestBase {
protected static $modules = ['system', 'user', 'filter'];
/**
* Views used by this test.
*
* @var array
*/
public static $testViews = ['test_view'];
/**
* {@inheritdoc}
*/
protected function setUp($import_test_views = TRUE): void {
parent::setUp();
$this->installConfig(['system', 'filter']);
$this->installEntitySchema('user');
}
/**
* Tests the token into text area plugin within header.
*/
public function testAreaTextToken(): void {
/** @var \Drupal\Core\Render\RendererInterface $renderer */
$renderer = $this->container->get('renderer');
$view = Views::getView('test_view');
$view->setDisplay();
// Enable checkbox 'token replacement', add token into href in text header.
$string = '<a href="[site:url]">Added Site URL token in href</a>';
$view->displayHandlers->get('default')->overrideOption('header', [
'area' => [
'id' => 'area',
'table' => 'views',
'field' => 'area',
'content' => [
'value' => $string,
],
'tokenize' => TRUE,
],
]);
// Execute the view.
$this->executeView($view);
$build = $view->display_handler->handlers['header']['area']->render();
$replaced_token = \Drupal::token()->replace('[site:url]');
$desired_output = str_replace('[site:url]', $replaced_token, $string);
$this->assertEquals(check_markup($desired_output), $renderer->renderRoot($build), 'Global token assessed in href');
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment