diff --git a/modules/contrib/token/tests/src/Functional/TokenCurrentPageTest.php b/modules/contrib/token/tests/src/Functional/TokenCurrentPageTest.php index 2770cfec6..b76609657 100644 --- a/modules/contrib/token/tests/src/Functional/TokenCurrentPageTest.php +++ b/modules/contrib/token/tests/src/Functional/TokenCurrentPageTest.php @@ -44,26 +44,27 @@ function testCurrentPageTokens() { $this->drupalCreateContentType(['type' => 'page']); $node = $this->drupalCreateNode(['title' => 'Node title', 'path' => ['alias' => '/node-alias']]); + $query = ['foo' => 'bar']; $tokens = [ '[current-page:title]' => 'Node title', - '[current-page:url]' => $node->toUrl('canonical', ['absolute' => TRUE])->toString(), - '[current-page:url:absolute]' => $node->toUrl('canonical', ['absolute' => TRUE])->toString(), - '[current-page:url:relative]' => $node->toUrl()->toString(), + '[current-page:url]' => $node->toUrl('canonical', ['absolute' => TRUE, 'query' => $query])->toString(), + '[current-page:url:absolute]' => $node->toUrl('canonical', ['absolute' => TRUE, 'query' => $query])->toString(), + '[current-page:url:relative]' => $node->toUrl('canonical', ['query' => $query])->toString(), '[current-page:url:alias]' => '/node-alias', '[current-page:url:args:value:0]' => 'node-alias', '[current-page:url:args:value:1]' => NULL, - '[current-page:url:unaliased]' => $node->toUrl('canonical', ['absolute' => TRUE, 'alias' => TRUE])->toString(), + '[current-page:url:unaliased]' => $node->toUrl('canonical', ['absolute' => TRUE, 'alias' => TRUE, 'query' => $query])->toString(), '[current-page:url:unaliased:args:value:0]' => 'node', '[current-page:url:unaliased:args:value:1]' => $node->id(), '[current-page:url:unaliased:args:value:2]' => NULL, '[current-page:page-number]' => 1, - '[current-page:query:foo]' => 'bar', + '[current-page:query:foo]' => $query['foo'], '[current-page:query:bar]' => NULL, // Deprecated tokens '[current-page:arg:0]' => 'node', '[current-page:arg:1]' => 1, '[current-page:arg:2]' => NULL, ]; - $this->assertPageTokens("/node/{$node->id()}", $tokens, [], ['url_options' => ['query' => ['foo' => 'bar']]]); + $this->assertPageTokens("/node/{$node->id()}", $tokens, [], ['url_options' => ['query' => $query]); } } diff --git a/modules/contrib/token/token.tokens.inc b/modules/contrib/token/token.tokens.inc index 1d0874398..10c0fcc93 100755 --- a/modules/contrib/token/token.tokens.inc +++ b/modules/contrib/token/token.tokens.inc @@ -758,7 +758,9 @@ function token_tokens($type, array $tokens, array $data = [], array $options = [ case 'url': $bubbleable_metadata->addCacheContexts(['url.path']); try { - $url = Url::createFromRequest($request)->setOptions($url_options); + $url = Url::createFromRequest($request) + ->setOptions($url_options) + ->setOption('query', $request->query->all()); } catch (\Exception $e) { // Url::createFromRequest() can fail, e.g. on 404 pages. @@ -815,7 +817,9 @@ function token_tokens($type, array $tokens, array $data = [], array $options = [ if ($url_tokens = \Drupal::token()->findWithPrefix($tokens, 'url')) { $url = NULL; try { - $url = Url::createFromRequest($request)->setOptions($url_options); + $url = Url::createFromRequest($request) + ->setOptions($url_options) + ->setOption('query', $request->query->all()); } catch (\Exception $e) { // Url::createFromRequest() can fail, e.g. on 404 pages.